%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/https_site_template_composite.conf.j2

# {{ ansible_managed }}
{% set site_name = item['SiteName'] %}
{% set site_root = item['DocumentRoot'] %}
{# test composite options #}
{% set nginx_composite = item['CompositeNginx']|default('disable') %}
{% set nginx_composite_storage = item['CompositeStorage']|default('') %}
{% set ID = item['CompositeNginxID']|default('') %}
{% set nginx_composite_mc_serv = item['CompositeMemcachedHost']|default('') %}
{% set nginx_composite_mc_port = item['CompositeMemcachedPort']|default('') %}
{% set nginx_ssl_type = nginx_ssl|default('ssl') %}
{% if manage_web == 'enable_composite' -%}
{% set nginx_composite = 'enable' %}
{%- elif manage_web == 'disable_composite' -%}
{% set nginx_composite = 'disable' %}
{%- endif %}
{% if ID == '' -%}
{% set nginx_composite = 'disable' %}
{%- endif %}
{# set options that depends on composite settings #}
{% if nginx_composite == 'enable' -%}
{% set nginx_include_bitrix = 'bx/conf/bitrix_general.conf' %}
{%- else -%}
{% set nginx_include_bitrix = 'bx/conf/bitrix.conf' %}
{%- endif %}
{% set vSite = '$is_site_composite_'+ID %}
{# defined options that differnet on default/first site on the server #}
{% if site_name == 'default' -%}
{% set nginx_proxy   = 'http://127.0.0.1:8888' %}
{% set nginx_listen  = 'default_server '+nginx_ssl_type %}
{% set nginx_srv     = '_' %}
{%- else -%}
{% set nginx_proxy   = 'http://127.0.0.1:8887' %}
{% set nginx_listen  = nginx_ssl_type %}
{% set nginx_srv     = site_name+' www.'+site_name %}
{%- endif %}
{% set nginx_port         = nginx_server_https_port %}
{% set nginx_proxy_ip     = '$remote_addr' %}
{% set nginx_proxy_host   = '$host:'+nginx_port|string %}
{% set nginx_proxy_vhost  = '$host' %}
{% set nginx_proxy_scheme = '$scheme' %}
{% set nginx_proxy_https  = 'YES' %}
#########################################################
# configuration for https-site:
# site_name:                 {{ site_name }}
# site_root:                 {{ site_root }}
# site_composite:            {{ nginx_composite }}
# site_composite_id:         {{ ID }}
# site_composite_var:        {{ vSite }}
# site_composite_storage:    {{ nginx_composite_storage }}
{% if nginx_composite_mc_serv != '' -%}
# site_composite_memcached:  {{ nginx_composite_mc_serv }}:{{ nginx_composite_mc_port }}
{% endif %}
# web_cluster:               {{ cluster_web_configure }}
##########################################################
server {
    listen {{ nginx_port }} {{ nginx_listen }};
    server_name {{ nginx_srv }};

    access_log /var/log/nginx/{{ site_name }}_access.log main;
    error_log  /var/log/nginx/{{ site_name }}_error.log warn;
  
  # Enable SSL connection
    {% if item['HTTPSCertType'] == 'general' %}
    include bx/conf/ssl.conf;
    {% else %}
    # CERTIFICATE ANSIBLE MANAGED BLOCK
    include bx/conf/ssl_options.conf;
    ssl_certificate {{ item['HTTPSCert'] }};
    ssl_certificate_key {{ item['HTTPSPriv'] }};
    {% if item['HTTPSCertChain'] is defined and item['HTTPSCertChain'] != '' %}
    ssl_trusted_certificate {{ item['HTTPSCertChain'] }};
    {% endif %}
    # CERTIFICATE ANSIBLE MANAGED BLOCK
    {% endif %}

 
    set $docroot		"{{ site_root }}";
    root            "{{ site_root }}";
    proxy_ignore_client_abort {{ item['proxy_ignore_client_abort']|default('off') }};
    index index.php;
  
    server_name_in_redirect off;

    set $proxyserver	"{{ nginx_proxy }}";
    proxy_set_header	X-Forwarded-For    $proxy_add_x_forwarded_for;
    proxy_set_header	X-Real-IP          {{ nginx_proxy_ip }};
    proxy_set_header	Host               {{ nginx_proxy_host }};
    proxy_set_header  X-Forwarded-Host   {{ nginx_proxy_vhost }};
    proxy_set_header  X-Forwarded-Scheme {{ nginx_proxy_scheme }};
    {% if nginx_proxy_https != '' -%}
    proxy_set_header  HTTPS {{ nginx_proxy_https }};
    {% endif %}

    {% if item.SiteName != 'default' -%}
    set $imcontenttype	"text/html; charset=utf-8";
    {% endif %}

    {% if nginx_composite == 'enable' -%}
    {% if nginx_composite_storage in ['memcached', 'memcached_cluster'] -%}
    memcached_connect_timeout 1s;
    memcached_read_timeout 1s;
    memcached_send_timeout 1s;
    memcached_gzip_flag 65536;
    set $memcached_key "/${host}${composite_key}/index@${args}.html";
    {% else -%}
    # composite variables
    set $composite_cache    "bitrix/html_pages/${host}${composite_key}/index@${args}.html";
    set $composite_file     "${docroot}/${composite_cache}";
    {% endif %}

    # config file
    set $composite_enabled  "${docroot}/bitrix/html_pages/.enabled";
    # if test pass through general tests:
    set $use_composite_cache "";
    # global site test, the same for all sites on the server
    if ($is_global_composite  = 1) {set $use_composite_cache "A";}
    # personal site tests, generated by site config
    if ({{ vSite }} = 1) {set $use_composite_cache "${use_composite_cache}B";}

    # Include parameters common to all websites
    include bx/conf/bitrix_general.conf;

    # main location with processing composite
    location / {
        {% if nginx_composite_storage in ['memcached', 'memcached_cluster'] -%}
        error_page 404 405 412 502 504 = @apache;
        {% endif %}

        if (-f $composite_enabled)     { set $use_composite_cache "${use_composite_cache}C"; }
    
        {% if nginx_composite_storage == 'files' -%}
        # test cache file exists
        if (-f $composite_file)  { set $use_composite_cache "${use_composite_cache}D"; }

        if ($use_composite_cache = "ABCD") { rewrite .* /$composite_cache last; }
        {% elif nginx_composite_storage in ['memcached', 'memcached_cluster'] -%}

        default_type text/html;
        # use mecached for keys
        if ($use_composite_cache = "ABC") { 
        add_header X-Bitrix-Composite "Nginx (memcached)";
        memcached_pass {{ nginx_composite_mc_serv }}:{{ nginx_composite_mc_port }};
        }
        {% endif -%}
        proxy_pass $proxyserver;
    }

    {% if nginx_composite_storage in ['memcached', 'memcached_cluster'] -%}
    location @apache {
        proxy_pass $proxyserver;
    }
    {% endif %}

    {%- else -%}
    # Include parameters common to all websites
    include bx/conf/bitrix.conf;

    {%endif %}

    # Include munin and nagios web
    include bx/server_monitor.conf;
}

Zerion Mini Shell 1.0