Files @ 9ca9c3ada58a
Branch filter:

Location: majic-ansible-roles/roles/php_website/templates/nginx_site.j2 - annotation

branko
MAR-181: Use Debian-provided Prosody package for testing optional parameter:

- Still properly tests the role, while at the same time making it
possible to use custom apt repository for Debian Buster (due to
Prosody project dropping all repository archives for it).
server {
    # HTTP (plaintext) configuration.
    listen 80;
    server_name {{ fqdn }};

    # Redirect plaintext connections to HTTPS
    return 301 https://$host$request_uri;
}

server {
    # Base settings.
    root {{ home }}/htdocs/;
    index {{ index }};
    server_name {{ fqdn }};

    # HTTPS (TLS) configuration.
    listen 443 ssl;
    listen [::]:443 ssl;
    ssl_certificate_key /etc/ssl/private/{{ fqdn }}_https.key;
    ssl_certificate /etc/ssl/certs/{{ fqdn }}_https.pem;

    # Set-up HSTS header for preventing downgrades for users that visited the
    # site via HTTPS at least once.
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";

    {% for config in additional_nginx_config -%}
    # {{ config.comment }}
    {{ config.value }}
    {% endfor -%}

    {% if rewrites -%}
    # Generic URL rewrites.
    {% for rewrite in rewrites -%}
    rewrite {{ rewrite }};
    {% endfor -%}
    {% endif %}

    {% if deny_files_regex -%}
    # Deny access to user-specified files.
    {% for regex in deny_files_regex -%}
    location ~ {{ regex }} {
        deny all;
    }
    {% endfor -%}
    {% endif %}

    # Interpret PHP files via FastCGI.
    location ~ {{ php_file_regex }} {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/{{ fqdn }}.sock;
    }

    # Serve the files.
    location ~ /(.+) {
	try_files $uri $uri/{% if php_rewrite_urls %} @php_rewrite{% else %} =404{% endif %};
    }

    {% if php_rewrite_urls -%}
    # Apply URL rewrites.
    location @php_rewrite {
    {% for rewrite in php_rewrite_urls %}
    rewrite {{ rewrite }};
    {% endfor -%}
    }
    {% endif -%}

    {% if environment_indicator -%}
    # Show environment indicator on HTML pages.
    sub_filter_types text/html;
    sub_filter_once on;
    sub_filter "</body>" "<div id='website-environment' style='background-color: {{ environment_indicator.background_colour }}; width: 100%; text-align: center; position: fixed; bottom: 5px; color: {{ environment_indicator.text_colour }}; font-weight: bold; z-index: 999999;'>{{ environment_indicator.text }}</div></body>";
    {% endif -%}

    access_log /var/log/nginx/{{ fqdn }}-access.log;
    error_log /var/log/nginx/{{ fqdn }}-error.log;
}