%PDF- %PDF-
Direktori : /etc/ansible/roles/web/templates/nginx/ |
Current File : //etc/ansible/roles/web/templates/nginx/http_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('') %} {% 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' %} {% set nginx_srv = '_' %} {%- else -%} {% set nginx_proxy = 'http://127.0.0.1:8887' %} {% set nginx_listen = '' %} {% set nginx_srv = site_name+' www.'+site_name %} {%- endif %} {# defined options that different in cluster/non-cluster cases #} {% if cluster_web_configure == 'disable' -%} {% set nginx_port = nginx_server_http_port %} {% set nginx_proxy_ip = '$remote_addr' %} {% set nginx_proxy_host = '$host:'+nginx_server_http_port|string %} {% set nginx_proxy_vhost = '$host' %} {% set nginx_proxy_scheme = '$scheme' %} {% set nginx_proxy_https = '' %} {%- else -%} {% set nginx_port = nginx_server_internal_port %} {% set nginx_proxy_ip = '$http_x_real_ip' %} {% set nginx_proxy_host = '$http_host' %} {% set nginx_proxy_vhost = '$http_x_forwarded_host' %} {% set nginx_proxy_scheme = '$http_x_forwarded_scheme' %} {% set nginx_proxy_https = '$http_https' %} {%- endif %} ############################################################### # configuration for http-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; 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 cluster_web_configure == 'disable' -%} # Redirect to ssl if need if (-f {{ site_root }}/.htsecure) { return 301 https://$host$request_uri; } {% else %} # erase mod_zip header more_clear_headers 'X-Archive-*'; {% 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";} {% if item['HTTPSCertType'] == 'letsencrypt' %} include bx/conf/letsencrypt-challenge-tokens.conf; {% endif %} # 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; }