{{ ansible_managed | comment }} {% if item.value.upstreams is defined and item.value.upstreams %} {% for upstream in item.value.upstreams %} upstream {{ item.value.upstreams[upstream].name }} { {% if item.value.upstreams[upstream].lb_method is defined and item.value.upstreams[upstream].lb_method | length %} {{ item.value.upstreams[upstream].lb_method }}; {% endif %} {% if item.value.upstreams[upstream].zone_name is defined and item.value.upstreams[upstream].zone_name %} zone {{ item.value.upstreams[upstream].zone_name }} {{ item.value.upstreams[upstream].zone_size }}; {% endif %} {% for server in item.value.upstreams[upstream].servers %} server {{ item.value.upstreams[upstream].servers[server].address }}{{(":" + item.value.upstreams[upstream].servers[server].port | string) if item.value.upstreams[upstream].servers[server].port is defined}} weight={{ item.value.upstreams[upstream].servers[server].weight | default("1") }} {{ item.value.upstreams[upstream].servers[server].health_check | default("") }}; {% endfor %} {% if item.value.upstreams[upstream].sticky_cookie %} sticky cookie srv_id expires=1h path=/; {% endif %} {% if item.value.upstreams[upstream].custom_options is defined and item.value.upstreams[upstream].custom_options | length %} {% for inline_option in item.value.upstreams[upstream].custom_options %} {{ inline_option }} {% endfor %} {% endif %} } {% endfor %} {% endif %} {% if item.value.proxy_cache is defined and item.value.proxy_cache %} {% if item.value.proxy_cache.proxy_cache_path is defined and item.value.proxy_cache.proxy_cache_path %} {% for proxy_cache_path in item.value.proxy_cache.proxy_cache_path %} proxy_cache_path {{ proxy_cache_path.path }} keys_zone={{ proxy_cache_path.keys_zone.name }}:{{ proxy_cache_path.keys_zone.size }} levels={{ proxy_cache_path.levels }} max_size={{ proxy_cache_path.max_size }} inactive={{ proxy_cache_path.inactive }} use_temp_path={{ proxy_cache_path.use_temp_path | ternary("on", "off") }}; {% endfor %} {% if item.value.proxy_cache.proxy_cache_background_update is defined and item.value.proxy_cache.proxy_cache_background_update%} proxy_cache_background_update {{ item.value.proxy_cache.proxy_cache_background_update | ternary("on", "off") }}; {% endif %} {% if item.value.proxy_cache.proxy_cache_lock is defined and item.value.proxy_cache.proxy_cache_lock %} proxy_cache_lock {{ item.value.proxy_cache.proxy_cache_lock | ternary("on", "off") }}; {% endif %} {% if item.value.proxy_cache.proxy_cache_min_uses is defined and item.value.proxy_cache.proxy_cache_min_uses %} proxy_cache_min_uses {{ item.value.proxy_cache.proxy_cache_min_uses }}; {% endif %} {% if item.value.proxy_cache.proxy_cache_revalidate is defined and item.value.proxy_cache.proxy_cache_revalidate %} proxy_cache_revalidate {{ item.value.proxy_cache.proxy_cache_revalidate | ternary("on", "off") }}; {% endif %} {% if item.value.proxy_cache.proxy_cache_use_stale is defined and item.value.proxy_cache.proxy_cache_use_stale %} proxy_cache_use_stale {{ item.value.proxy_cache.proxy_cache_use_stale | join(" ") }}; {% endif %} {% if item.value.proxy_cache.proxy_ignore_headers is defined and item.value.proxy_cache.proxy_ignore_headers %} proxy_ignore_headers {{ item.value.proxy_cache.proxy_ignore_headers | join(" ") }}; {% endif %} {% if item.value.proxy_cache.proxy_temp_path is defined and item.value.proxy_cache.proxy_temp_path.path %} proxy_temp_path {{ item.value.proxy_cache.proxy_temp_path.path }} {{ item.value.proxy_cache.proxy_temp_path.level_1 | default("") }} {{ item.value.proxy_cache.proxy_temp_path.level_2 | default("") }} {{ item.value.proxy_cache.proxy_temp_path.level_3 | default("") }}; {% endif %} {% if item.value.proxy_cache.proxy_cache_valid is defined %} {% for proxy_cache_valid in item.value.proxy_cache.proxy_cache_valid %} {% if proxy_cache_valid.code is defined %} proxy_cache_valid {{ proxy_cache_valid.code }} {{ proxy_cache_valid.time | default("10m") }}; {% elif proxy_cache_valid.time is defined and proxy_cache_valid.code is not defined %} proxy_cache_valid {{ proxy_cache_valid.time }}; {% endif %} {% endfor %} {% endif %} {% endif %} {% endif %} {% if item.value.auth_request_http is defined %} auth_request {{ item.value.auth_request_http }}; {% endif %} {% if item.value.auth_request_set_http is defined %} auth_request_set {{ item.value.auth_request_set_http.name }} {{ item.value.auth_request_set_http.value }}; {% endif %} {% if item.value.custom_options is defined and item.value.custom_options | length %} {% for inline_option in item.value.custom_options %} {{ inline_option }} {% endfor %} {% endif %} {% if item.value.servers is defined %} {% for server in item.value.servers %} server { {% for listen in item.value.servers[server].listen %} listen {% if item.value.servers[server].listen[listen].ip is defined and item.value.servers[server].listen[listen].ip | length %}{{ item.value.servers[server].listen[listen].ip }}:{% endif %}{{ item.value.servers[server].listen[listen].port }}{% if item.value.servers[server].listen[listen].ssl is defined and item.value.servers[server].listen[listen].ssl %} ssl{% endif %}{% if item.value.servers[server].listen[listen].opts is defined and item.value.servers[server].listen[listen].opts | length %} {{ item.value.servers[server].listen[listen].opts | join(" ") }}{% endif %}; {% endfor %} server_name {{ item.value.servers[server].server_name | default('localhost') }}; {% if item.value.servers[server].ssl is defined and item.value.servers[server].ssl %} ssl_certificate {{ item.value.servers[server].ssl.cert }}; ssl_certificate_key {{ item.value.servers[server].ssl.key }}; {% if item.value.servers[server].ssl.trusted_cert is defined %} ssl_trusted_certificate {{ item.value.servers[server].ssl.trusted_cert }}; {% endif %} {% if item.value.servers[server].ssl.dhparam is defined %} ssl_dhparam {{ item.value.servers[server].ssl.dhparam }}; {% endif %} {% if item.value.servers[server].ssl.protocols is defined and item.value.servers[server].ssl.protocols %} ssl_protocols {{ item.value.servers[server].ssl.protocols }}; {% endif %} {% if item.value.servers[server].ssl.ciphers is defined and item.value.servers[server].ssl.ciphers %} ssl_ciphers {{ item.value.servers[server].ssl.ciphers }}; {% endif %} {% if item.value.servers[server].ssl.prefer_server_ciphers is defined and item.value.servers[server].ssl.prefer_server_ciphers %} ssl_prefer_server_ciphers on; {% endif %} {% if item.value.servers[server].ssl.session_cache is defined and item.value.servers[server].ssl.session_cache %} ssl_session_cache {{ item.value.servers[server].ssl.session_cache }}; {% endif %} {% if item.value.servers[server].ssl.session_timeout is defined and item.value.servers[server].ssl.session_timeout %} ssl_session_timeout {{ item.value.servers[server].ssl.session_timeout }}; {% endif %} {% if item.value.servers[server].ssl.disable_session_tickets is defined and item.value.servers[server].ssl.disable_session_tickets %} ssl_session_tickets off; {% endif %} {% if item.value.servers[server].ssl.stapling is defined and item.value.servers[server].ssl.stapling %} ssl_stapling on; {% endif %} {% if item.value.servers[server].ssl.stapling_verify is defined and item.value.servers[server].ssl.stapling_verify %} ssl_stapling_verify on; {% endif %} {% if item.value.servers[server].ssl.ecdh_curve is defined and item.value.servers[server].ssl.ecdh_curve %} ssl_ecdh_curve {{ item.value.servers[server].ssl.ecdh_curve }}; {% endif %} {% if item.value.servers[server].ssl.buffer_size is defined and item.value.servers[server].ssl.buffer_size %} ssl_buffer_size {{ item.value.servers[server].ssl.buffer_size }}; {% endif %} {% endif %} {% if item.value.servers[server].include_files is defined and item.value.servers[server].include_files | length %} {% for file in item.value.servers[server].include_files %} include "{{ file }}"; {% endfor %} {% endif %} {% if item.value.servers[server].proxy_hide_headers is defined %} {% for header in item.value.servers[server].proxy_hide_headers %} proxy_hide_header {{ header }}; {% endfor %} {% endif %} {% if item.value.servers[server].add_headers is defined %} {% for header in item.value.servers[server].add_headers %} add_header {{ item.value.servers[server].add_headers[header].name }} "{{ item.value.servers[server].add_headers[header].value }}"{% if item.value.servers[server].add_headers[header].always is defined and item.value.servers[server].add_headers[header].always %} always{% endif %}; {% endfor %} {% endif %} {% if item.value.servers[server].auth_basic is defined and item.value.servers[server].auth_basic %} auth_basic "{{ item.value.servers[server].auth_basic }}"; {% endif %} {% if item.value.servers[server].auth_basic_user_file is defined and item.value.servers[server].auth_basic_user_file %} auth_basic_user_file {{ item.value.servers[server].auth_basic_user_file }}; {% endif %} {% if item.value.servers[server].root is defined and item.value.servers[server].root %} root {{ item.value.servers[server].root }}; {% endif %} {% if item.value.servers[server].https_redirect is defined and item.value.servers[server].https_redirect %} return 301 https://{{ item.value.servers[server].https_redirect }}$request_uri; {% endif %} {% if item.value.servers[server].autoindex is defined and item.value.servers[server].autoindex %} autoindex on; {% endif %} {% if item.value.servers[server].try_files is defined %} try_files {{ item.value.servers[server].try_files }}; {% endif %} {% if item.value.servers[server].auth_request is defined %} auth_request {{ item.value.servers[server].auth_request }}; {% endif %} {% if item.value.servers[server].auth_request_set is defined %} auth_request_set {{ item.value.servers[server].auth_request_set.name }} {{ item.value.servers[server].auth_request_set.value }}; {% endif %} {% if item.value.servers[server].client_max_body_size is defined and item.value.servers[server].client_max_body_size %} client_max_body_size {{ item.value.servers[server].client_max_body_size }}; {% endif %} {% if item.value.servers[server].sub_filter.sub_filters is defined and item.value.servers[server].sub_filter.sub_filters | length %} {% for sub_filter in item.value.servers[server].sub_filter.sub_filters %} sub_filter {{ sub_filter }}; {% endfor %} {% endif %} {% if item.value.servers[server].sub_filter.last_modified is defined %} sub_filter_last_modified {{ item.value.servers[server].sub_filter.last_modified | ternary("on", "off") }}; {% endif %} {% if item.value.servers[server].sub_filter.once is defined %} sub_filter_once {{ item.value.servers[server].sub_filter.once | ternary("on", "off") }}; {% endif %} {% if item.value.servers[server].sub_filter.types is defined and item.value.servers[server].sub_filter.types %} sub_filter_types {{ item.value.servers[server].sub_filter.types }}; {% endif %} {% if item.value.servers[server].custom_options is defined and item.value.servers[server].custom_options | length %} {% for inline_option in item.value.servers[server].custom_options %} {{ inline_option }} {% endfor %} {% endif %} {% if item.value.servers[server].reverse_proxy is defined and item.value.servers[server].reverse_proxy %} {% for location in item.value.servers[server].reverse_proxy.locations %} location {{ item.value.servers[server].reverse_proxy.locations[location].location }} { {% if item.value.servers[server].reverse_proxy.locations[location].internal is sameas true %} internal; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].include_files is defined and item.value.servers[server].reverse_proxy.locations[location].include_files | length %} {% for file in item.value.servers[server].reverse_proxy.locations[location].include_files %} include "{{ file }}"; {% endfor %} {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_hide_headers is defined %} {% for header in item.value.servers[server].reverse_proxy.locations[location].proxy_hide_headers %} proxy_hide_header {{ header }}; {% endfor %} {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].add_headers is defined %} {% for header in item.value.servers[server].reverse_proxy.locations[location].add_headers %} add_header {{ item.value.servers[server].reverse_proxy.locations[location].add_headers[header].name }} "{{ item.value.servers[server].reverse_proxy.locations[location].add_headers[header].value }}"{% if item.value.servers[server].reverse_proxy.locations[location].add_headers[header].always is defined and item.value.servers[server].reverse_proxy.locations[location].add_headers[header].always %} always{% endif %}; {% endfor %} {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].auth_request is defined %} auth_request {{ item.value.servers[server].reverse_proxy.locations[location].auth_request }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].auth_request_set is defined %} auth_request_set {{ item.value.servers[server].reverse_proxy.locations[location].auth_request_set.name }} {{ item.value.servers[server].reverse_proxy.locations[location].auth_request_set.value }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].auth_basic is defined and item.value.servers[server].reverse_proxy.locations[location].auth_basic %} auth_basic "{{ item.value.servers[server].reverse_proxy.locations[location].auth_basic }}"; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].auth_basic_user_file is defined and item.value.servers[server].reverse_proxy.locations[location].auth_basic_user_file %} auth_basic_user_file {{ item.value.servers[server].reverse_proxy.locations[location].auth_basic_user_file }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].returns is defined %} {% for code in item.value.servers[server].reverse_proxy.locations[location].returns %} {% if item.value.servers[server].reverse_proxy.locations[location].returns[code] is defined %} return {{ item.value.servers[server].reverse_proxy.locations[location].returns[code].code }} {{ item.value.servers[server].reverse_proxy.locations[location].returns[code].url }}; {% else %} return {{ item.value.servers[server].reverse_proxy.locations[location].returns[code].url }}; {% endif %} {% endfor %} {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_connect_timeout is defined and item.value.servers[server].reverse_proxy.locations[location].proxy_connect_timeout %} proxy_connect_timeout {{ item.value.servers[server].reverse_proxy.locations[location].proxy_connect_timeout }}; {% endif %} proxy_pass {{ item.value.servers[server].reverse_proxy.locations[location].proxy_pass }}; {% if item.value.servers[server].reverse_proxy.locations[location].rewrites is defined %} {% for rewrite in item.value.servers[server].reverse_proxy.locations[location].rewrites %} rewrite {{ rewrite }}; {% endfor %} {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_read_timeout is defined and item.value.servers[server].reverse_proxy.locations[location].proxy_read_timeout %} proxy_read_timeout {{ item.value.servers[server].reverse_proxy.locations[location].proxy_read_timeout }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_send_timeout is defined and item.value.servers[server].reverse_proxy.locations[location].proxy_send_timeout %} proxy_send_timeout {{ item.value.servers[server].reverse_proxy.locations[location].proxy_send_timeout }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_pass_request_body is defined %} proxy_pass_request_body {{ item.value.servers[server].reverse_proxy.locations[location].proxy_pass_request_body }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_store is defined %} proxy_store {{ item.value.servers[server].reverse_proxy.locations[location].proxy_store | ternary("on", "off") }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_store_access is defined %} proxy_store_access {{ item.value.servers[server].reverse_proxy.locations[location].proxy_store_access }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].allows is defined %} {% for allow in item.value.servers[server].reverse_proxy.locations[location].allows %} allow {{ allow }}; {% endfor %} {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].denies is defined %} {% for deny in item.value.servers[server].reverse_proxy.locations[location].denies %} deny {{ deny }}; {% endfor %} {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_set_header is defined %} {% for header in item.value.servers[server].reverse_proxy.locations[location].proxy_set_header %} proxy_set_header {{ item.value.servers[server].reverse_proxy.locations[location].proxy_set_header[header].name }} {{ item.value.servers[server].reverse_proxy.locations[location].proxy_set_header[header].value }}; {% endfor %} {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_http_version is defined %} proxy_http_version {{ item.value.servers[server].reverse_proxy.locations[location].proxy_http_version }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].websocket is defined and item.value.servers[server].reverse_proxy.locations[location].websocket %} proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].try_files is defined %} try_files {{ item.value.servers[server].reverse_proxy.locations[location].try_files }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_ssl is defined and item.value.servers[server].reverse_proxy.locations[location].proxy_ssl %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_ssl.cert is defined %} proxy_ssl_certificate {{ item.value.servers[server].reverse_proxy.locations[location].proxy_ssl.cert }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_ssl.key is defined %} proxy_ssl_certificate_key {{ item.value.servers[server].reverse_proxy.locations[location].proxy_ssl.key }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_ssl.trusted_cert is defined %} proxy_ssl_trusted_certificate {{ item.value.servers[server].reverse_proxy.locations[location].proxy_ssl.trusted_cert }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_ssl.server_name is defined %} proxy_ssl_server_name {{ item.value.servers[server].reverse_proxy.locations[location].proxy_ssl.server_name | ternary("on", "off") }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_ssl.name is defined %} proxy_ssl_name {{ item.value.servers[server].reverse_proxy.locations[location].proxy_ssl.name }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_ssl.protocols is defined %} proxy_ssl_protocols {{ item.value.servers[server].reverse_proxy.locations[location].proxy_ssl.protocols }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_ssl.ciphers is defined %} proxy_ssl_ciphers {{ item.value.servers[server].reverse_proxy.locations[location].proxy_ssl.ciphers }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_ssl.verify is defined %} proxy_ssl_verify {{ item.value.servers[server].reverse_proxy.locations[location].proxy_ssl.verify | ternary("on", "off") }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_ssl.verify_depth is defined %} proxy_ssl_verify_depth {{ item.value.servers[server].reverse_proxy.locations[location].proxy_ssl.verify_depth }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_ssl.session_reuse is defined %} proxy_ssl_session_reuse {{ item.value.servers[server].reverse_proxy.locations[location].proxy_ssl.session_reuse | ternary("on", "off") }}; {% endif %} {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_redirect is defined %} proxy_redirect {{ item.value.servers[server].reverse_proxy.locations[location].proxy_redirect | ternary(item.value.servers[server].reverse_proxy.locations[location].proxy_redirect, "off") }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_cache is defined %} proxy_cache {{ item.value.servers[server].reverse_proxy.locations[location].proxy_cache }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_cache_valid is defined %} {% for proxy_cache_valid in item.value.servers[server].reverse_proxy.locations[location].proxy_cache_valid %} {% if proxy_cache_valid.code is defined %} proxy_cache_valid {{ proxy_cache_valid.code }} {{ proxy_cache_valid.time | default("10m") }}; {% elif proxy_cache_valid.time is defined and proxy_cache_valid.code is not defined %} proxy_cache_valid {{ proxy_cache_valid.time }}; {% endif %} {% endfor %} {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_cache_background_update is defined %} proxy_cache_background_update {{ item.value.servers[server].reverse_proxy.locations[location].proxy_cache_background_update | ternary("on", "off") }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_cache_lock is defined %} proxy_cache_lock {{ item.value.servers[server].reverse_proxy.locations[location].proxy_cache_lock | ternary("on", "off") }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_cache_min_uses is defined %} proxy_cache_min_uses {{ item.value.servers[server].reverse_proxy.locations[location].proxy_cache_min_uses }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_cache_revalidate is defined %} proxy_cache_revalidate {{ item.value.servers[server].reverse_proxy.locations[location].proxy_cache_revalidate | ternary("on", "off") }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_cache_use_stale is defined %} proxy_cache_use_stale {{ item.value.servers[server].reverse_proxy.locations[location].proxy_cache_use_stale | join(" ") }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_temp_path is defined %} proxy_temp_path {{ item.value.servers[server].reverse_proxy.locations[location].proxy_temp_path.path }} {{ item.value.servers[server].reverse_proxy.locations[location].proxy_temp_path.level_1 | default("") }} {{ item.value.servers[server].reverse_proxy.locations[location].proxy_temp_path.level_2 | default("") }} {{ item.value.servers[server].reverse_proxy.locations[location].proxy_temp_path.level_3 | default("") }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_ignore_headers is defined %} proxy_ignore_headers {{ item.value.servers[server].reverse_proxy.locations[location].proxy_ignore_headers | join(" ") }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].client_max_body_size is defined and item.value.servers[server].reverse_proxy.locations[location].client_max_body_size %} client_max_body_size {{ item.value.servers[server].reverse_proxy.locations[location].client_max_body_size }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_cookie_path is defined %} proxy_cookie_path {{ item.value.servers[server].reverse_proxy.locations[location].proxy_cookie_path.path }} {{ item.value.servers[server].reverse_proxy.locations[location].proxy_cookie_path.replacement }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].proxy_buffering is defined %} proxy_buffering {{ item.value.servers[server].reverse_proxy.locations[location].proxy_buffering | ternary("on", "off") }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].sub_filter.sub_filters is defined and item.value.servers[server].reverse_proxy.locations[location].sub_filter.sub_filters | length %} {% for sub_filter in item.value.servers[server].reverse_proxy.locations[location].sub_filter.sub_filters %} sub_filter {{ sub_filter }}; {% endfor %} {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].sub_filter.last_modified is defined %} sub_filter_last_modified {{ item.value.servers[server].reverse_proxy.locations[location].sub_filter.last_modified | ternary("on", "off") }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].sub_filter.once is defined %} sub_filter_once {{ item.value.servers[server].reverse_proxy.locations[location].sub_filter.once | ternary("on", "off") }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].sub_filter.types is defined and item.value.servers[server].reverse_proxy.locations[location].sub_filter.types %} sub_filter_types {{ item.value.servers[server].reverse_proxy.locations[location].sub_filter.types }}; {% endif %} {% if item.value.servers[server].reverse_proxy.locations[location].custom_options is defined and item.value.servers[server].reverse_proxy.locations[location].custom_options | length %} {% for inline_option in item.value.servers[server].reverse_proxy.locations[location].custom_options %} {{ inline_option }} {% endfor %} {% endif %} {% if (item.value.servers[server].reverse_proxy.health_check_plus is defined) and item.value.servers[server].reverse_proxy.health_check_plus %} health_check; {% endif %} } {% endfor %} {% endif %} {% if item.value.servers[server].web_server is defined %} {% for location in item.value.servers[server].web_server.locations %} location {{ item.value.servers[server].web_server.locations[location].location }} { {% if item.value.servers[server].web_server.locations[location].html_file_location is defined %} root {{ item.value.servers[server].web_server.locations[location].html_file_location }}; {% endif %} {% if item.value.servers[server].web_server.locations[location].html_file_name is defined %} index {{ item.value.servers[server].web_server.locations[location].html_file_name }}; {% endif %} {% if item.value.servers[server].web_server.locations[location].autoindex | default(false) %} autoindex on; {% endif %} {% if item.value.servers[server].web_server.locations[location].try_files is defined %} try_files {{ item.value.servers[server].web_server.locations[location].try_files }}; {% endif %} {% if item.value.servers[server].web_server.locations[location].include_files is defined and item.value.servers[server].web_server.locations[location].include_files | length %} {% for file in item.value.servers[server].web_server.locations[location].include_files %} include "{{ file }}"; {% endfor %} {% endif %} {% if item.value.servers[server].web_server.locations[location].custom_options is defined and item.value.servers[server].web_server.locations[location].custom_options | length %} {% for inline_option in item.value.servers[server].web_server.locations[location].custom_options %} {{ inline_option }} {% endfor %} {% endif %} {% if item.value.servers[server].web_server.locations[location].proxy_hide_headers is defined %} {% for header in item.value.servers[server].web_server.locations[location].proxy_hide_headers %} proxy_hide_header {{ header }}; {% endfor %} {% endif %} {% if item.value.servers[server].web_server.locations[location].add_headers is defined %} {% for header in item.value.servers[server].web_server.locations[location].add_headers %} add_header {{ item.value.servers[server].web_server.locations[location].add_headers[header].name }} "{{ item.value.servers[server].web_server.locations[location].add_headers[header].value }}"{% if item.value.servers[server].web_server.locations[location].add_headers[header].always is defined and item.value.servers[server].web_server.locations[location].add_headers[header].always %} always{% endif %}; {% endfor %} {% endif %} {% if item.value.servers[server].web_server.locations[location].returns is defined %} {% for code in item.value.servers[server].web_server.locations[location].returns %} {% if item.value.servers[server].web_server.locations[location].returns[code] is defined %} return {{ item.value.servers[server].web_server.locations[location].returns[code].code }} {{ item.value.servers[server].web_server.locations[location].returns[code].url }}; {% else %} return {{ item.value.servers[server].web_server.locations[location].returns[code].url }}; {% endif %} {% endfor %} {% endif %} {% if item.value.servers[server].web_server.locations[location].auth_basic is defined and item.value.servers[server].web_server.locations[location].auth_basic %} auth_basic "{{ item.value.servers[server].web_server.locations[location].auth_basic }}"; {% endif %} {% if item.value.servers[server].web_server.locations[location].auth_basic_user_file is defined and item.value.servers[server].web_server.locations[location].auth_basic_user_file %} auth_basic_user_file {{ item.value.servers[server].web_server.locations[location].auth_basic_user_file }}; {% endif %} {% if item.value.servers[server].web_server.locations[location].auth_request is defined %} auth_request {{ item.value.servers[server].web_server.locations[location].auth_request }}; {% endif %} {% if item.value.servers[server].web_server.locations[location].auth_request_set is defined %} auth_request_set {{ item.value.servers[server].web_server.locations[location].auth_request_set.name }} {{ item.value.servers[server].web_server.locations[location].auth_request_set.value }}; {% endif %} {% if item.value.servers[server].web_server.locations[location].sub_filter.sub_filters is defined and item.value.servers[server].web_server.locations[location].sub_filter.sub_filters | length %} {% for sub_filter in item.value.servers[server].web_server.locations[location].sub_filter.sub_filters %} sub_filter {{ sub_filter }}; {% endfor %} {% endif %} {% if item.value.servers[server].web_server.locations[location].sub_filter.last_modified is defined %} sub_filter_last_modified {{ item.value.servers[server].web_server.locations[location].sub_filter.last_modified | ternary("on", "off") }}; {% endif %} {% if item.value.servers[server].web_server.locations[location].sub_filter.once is defined %} sub_filter_once {{ item.value.servers[server].web_server.locations[location].sub_filter.once | ternary("on", "off") }}; {% endif %} {% if item.value.servers[server].web_server.locations[location].sub_filter.types is defined and item.value.servers[server].web_server.locations[location].sub_filter.types %} sub_filter_types {{ item.value.servers[server].web_server.locations[location].sub_filter.types }}; {% endif %} } {% endfor %} {% if item.value.servers[server].web_server.http_demo_conf %} sub_filter_once off; sub_filter 'server_hostname' '$hostname'; sub_filter 'server_address' '$server_addr:$server_port'; sub_filter 'server_url' '$request_uri'; sub_filter 'remote_addr' '$remote_addr:$remote_port'; sub_filter 'server_date' '$time_local'; sub_filter 'client_browser' '$http_user_agent'; sub_filter 'request_id' '$request_id'; sub_filter 'nginx_version' '$nginx_version'; sub_filter 'document_root' '$document_root'; sub_filter 'proxied_for_ip' '$http_x_forwarded_for'; {% endif %} {% endif %} {% if item.value.servers[server].returns is defined %} {% for return in item.value.servers[server].returns %} location {{ item.value.servers[server].returns[return].location }} { return {{ item.value.servers[server].returns[return].code }}{% if item.value.servers[server].returns[return].value is defined %} {{ item.value.servers[server].returns[return].value }}{% endif %}; } {% endfor %} {% endif %} {% if item.value.servers[server].error_page is defined %} # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root {{ item.value.servers[server].error_page }}; } {% endif %} {% if item.value.servers[server].access_log is defined %} {% for access_log in item.value.servers[server].access_log %} access_log {{ access_log.location }} {{ access_log.name }}; {% endfor %} {% endif %} {% if item.value.servers[server].error_log is defined %} error_log {{ item.value.servers[server].error_log.location }} {{ item.value.servers[server].error_log.level }}; {% endif %} } {% endfor %} {% endif %}