106 lines
2.2 KiB
Django/Jinja
106 lines
2.2 KiB
Django/Jinja
{% set __listen = item.listen | default(['80']) %}
|
|
{% set __listen_ssl = item.listen_ssl | default(['443']) %}
|
|
{% set __location = item.location | default({}) %}
|
|
#
|
|
# {{ ansible_managed }}
|
|
#
|
|
|
|
#
|
|
# HTTP
|
|
#
|
|
server {
|
|
{% for port in __listen %}
|
|
listen {{ port }};
|
|
{% endfor %}
|
|
server_name {{ item.name | join(' ') }};
|
|
{% if item.root is defined %}
|
|
root {{ item.root }};
|
|
{% else %}
|
|
root {{ nginx_root }}/{{ item.name[0] }}/public;
|
|
{% endif %}
|
|
{% block template_index %}
|
|
index {{ item.index | default('index.html index.htm') }};
|
|
{% endblock %}
|
|
|
|
{% if item.more is defined and item.more is iterable %}
|
|
{% for line in item.more %}
|
|
{{ item.more }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
|
|
location / {
|
|
{% block template_try_files %}
|
|
try_files $uri $uri/ =404;
|
|
{% endblock %}
|
|
}
|
|
|
|
{% block template_upstream_location %}
|
|
{% endblock %}
|
|
{% block template_custom_location %}
|
|
{% endblock %}
|
|
|
|
location ~ /\.ht {
|
|
deny all;
|
|
}
|
|
|
|
location = /favicon.ico {
|
|
expires 30d;
|
|
access_log off;
|
|
log_not_found off;
|
|
}
|
|
|
|
location ~* \.(txt|js|css|png|jpe?g|gif|ico|svg)$ {
|
|
expires 30d;
|
|
log_not_found off;
|
|
}
|
|
|
|
{% if __location is iterable and __location | length > 0 %}
|
|
# --> Custom locations
|
|
{% for location, opts in __location.iteritems() %}
|
|
location {{ location }} {
|
|
{% for opt in opts %}
|
|
{{ opt }}
|
|
{% endfor %}
|
|
}
|
|
{% endfor %} # <-- Custom locations
|
|
{% endif %}
|
|
|
|
{% if item.use_access_log is defined and item.use_access_log %}
|
|
access_log {{ nginx_log_dir }}/{{ item.name[0] }}_access.log combined;
|
|
{% else %}
|
|
access_log off;
|
|
{% endif %}
|
|
{% if item.use_error_log is defined and item.use_error_log %}
|
|
error_log {{ nginx_log_dir }}/{{ item.name[0] }}_error.log {{ nginx_error_log_level }};
|
|
{% else %}
|
|
error_log off;
|
|
{% endif %}
|
|
}
|
|
|
|
{#
|
|
ssl on;
|
|
ssl_certificate {{ nginx_ssl_dir }}/{{ item.name }}/{{ item.name }}.crt;
|
|
ssl_certificate_key {{ nginx_ssl_dir }}/{{ item.name }}/{{ item.name }}.key;
|
|
include /etc/nginx/helpers/ssl-{{ item.ssl.template | default('strong') }};
|
|
#}
|
|
|
|
|
|
# HTTPS
|
|
#server {
|
|
#}
|
|
|
|
{% if item.redirect_from is defined and item.redirect_from is iterable %}
|
|
#
|
|
# Redirect from
|
|
#
|
|
server {
|
|
{% for port in __listen %}
|
|
listen {{ port }};
|
|
{% endfor %}
|
|
server_name {{ item.redirect_from | join(' ') }};
|
|
return 301 $scheme://{{ item.name[0] }}$request_uri;
|
|
}
|
|
{% endif %}
|
|
|
|
# vim:filetype=nginx
|