%PDF- %PDF-
| Direktori : /proc/self/root/etc/ansible/roles/web/templates/nginx/ |
| Current File : //proc/self/root/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;
}