server { listen 80{% if 'default' in nginx_vhost and nginx_vhost.default %} default_server{% endif %}; listen [::]:80{% if 'default' in nginx_vhost and nginx_vhost.default %} default_server{% endif %}; server_name {{ nginx_vhost.hostnames | join(' ') }}; {% if 'extra_directives' in nginx_vhost %} {{ nginx_vhost.extra_directives | indent(4) }} {% endif %} {% for path, location in nginx_vhost.locations.items() %} location {{ path }} { include snippets/proxy-nobuff.conf; proxy_set_header Host $host; include snippets/proxy-forward-headers.conf; # for websockets proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_pass {{ location.proxy_pass }}; {% if 'proxy_redirect' in location %} {% for entry in location.proxy_redirect %} proxy_redirect {{ entry.redirect }} {{ entry.replacement }}; {% endfor %} {% endif %} {% if 'proxy_ssl' in location %} {% for prop in (location.proxy_ssl | list | sort) %} proxy_ssl_{{ prop }} {{ location.proxy_ssl[prop] }}; {% endfor %} {% endif %} {% if 'extra_directives' in location %} {{ location.extra_directives | indent(8) }} {% endif %} } {% endfor %} }