{% set __listen = item.listen | default(['80']) %} {% set __listen_ssl = item.listen_ssl | default(['443']) %} {% set __location = item.location | default({}) %} # # {{ ansible_managed }} # {% if item.upstreams is defined and item.upstreams is iterable %} {% for upstream in item.upstreams %} upstream {{ upstream.name }} { server {{ upstream.server }}; {% if upstream.params is defined and upstream.params is iterable %} {% for param in upstream.params %} {{ param }} {% endfor %} {% endif %} } {% endfor %} {% endif %} # # 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 %} {{ line }} {% 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