{% if 'custom' in nginx_vhost %} {{ nginx_vhost.custom | trim | indent(4) }} {% else %} {% if 'extra_directives' in nginx_vhost %} {{ nginx_vhost.extra_directives | trim | indent(4) }} {% endif %} {% for path, location in nginx_vhost.locations.items() %} location {{ path }} { {% if 'proxy_pass' in location %} 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 %} {% elif 'return' in location %} return {{ location.return }}; {% elif 'custom' in location %} {{ location.custom | trim | indent(8) }} {% else %} {% if 'root' in location %} root {{ location.root }}; {% elif 'alias' in location %} alias {{ location.alias }}; {% endif %} {% if 'index' in location %} index {{ location.index }}; {% endif %} {% if 'autoindex' in location %} autoindex on; {% if 'format' in location.autoindex %} autoindex_format {{ nginx_vhost.autoindex.format }}; {% endif %} {% endif %} {% endif %} {% if 'extra_directives' in location %} {{ location.extra_directives | trim | indent(8) }} {% endif %} } {% endfor %} {% endif %}