%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /etc/ansible/roles/web/templates/nginx/
Upload File :
Create Path :
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 %}

Zerion Mini Shell 1.0