%PDF- %PDF-
| Direktori : /etc/ansible/roles/web/templates/nginx/ |
| Current File : //etc/ansible/roles/web/templates/nginx/nginx_site_map.conf.j2 |
{# defined personal composite setting for site: #}
{# site id (!!! variables must be personal and not affect other sites in the group) #}
{% set ID = item['CompositeNginxID'] %}
{# defined domains in config file: #}
{% set cDomains = item['CompositeDomains'] %}
{% set cDomainsCounter = cDomains|length %}
{# defined include uri for site: #}
{% set cIncludeUri = item['CompositeIncludeUri'] %}
{% set cIncludeUriCounter = cIncludeUri|length %}
{# defined exclude uri for site: #}
{% set cExcludeUri = item['CompositeExcludeUri'] %}
{% set cExcludeUriCounter = cExcludeUri|length %}
{# exclude params in requests #}
{% set cExcludeParams = item['CompositeExcludeParams'] %}
{% set cExcludeParamsCounter = cExcludeParams|length %}
{# set map variable names #}
{% set vDomain = 'config_domain_'+ID %}
{% set vIncUri = 'is_include_uri_'+ID %}
{% set vExlUri = 'not_exclude_uri_'+ID %}
{% set vExlPrm = 'not_exclude_params_'+ID %}
{% set vFinalTest = '' %}
{% set vSite = 'is_site_composite_'+ID %}
# {{ ansible_managed }}
##############################################
#
# server: {{ item.ServerName }}
# site: {{ item.SiteName }}
# storage: {{ item.CompositeStorage }}
# site_var: {{ vSite }}
# id: {{ ID }}
# domains: {{ cDomainsCounter }}
# include_uri: {{ cIncludeUriCounter }}
# exclude_uri: {{ cExcludeUriCounter }}
# exclude_params: {{ cExcludeParamsCounter }}
##############################################
{% if cDomainsCounter > 0 -%}
# test domain name for site
map $host ${{ vDomain }} {
hostnames;
default "0";
{% for domain in cDomains -%}
"{{ domain }}" "1";
{% endfor %}
}
{% set vFinalTest = vFinalTest+'${'+vDomain+'}' %}
{% endif %}
{% if cIncludeUriCounter > 0 -%}
# test include uri for site
map $uri ${{ vIncUri }} {
default "0";
{% for uri in cIncludeUri -%}
"~*{{ uri }}" "1";
{% endfor %}
}
{% set vFinalTest = vFinalTest+'${'+vIncUri+'}' %}
{% endif %}
{% if cExcludeUriCounter > 0 -%}
# test exclude uri for site
map $uri ${{ vExlUri }} {
default "1";
{% for uri in cExcludeUri -%}
"~*{{ uri }}" "0";
{% endfor %}
}
{% set vFinalTest = vFinalTest+'${'+vExlUri+'}' %}
{% endif %}
{% if cExcludeParamsCounter > 0 -%}
# exclude params
map $args ${{ vExlPrm }} {
default "1";
{% for arg in cExcludeParams -%}
"~{{ arg }}" "0";
{% endfor %}
}
{% set vFinalTest = vFinalTest+'${'+vExlPrm+'}' %}
{% endif %}
{# create final map, if vFinalTest is not empty #}
{% if vFinalTest != '' -%}
# variable ${{ vSite }} used in site config
map "{{ vFinalTest }}" ${{ vSite }} {
default "1";
~0 "0";
}
{% else %}
map "$host" ${{ vSite }} {
default "1";
}
{% endif %}