Ansible-Roles/roles/nginx/templates/nginx-stream.j2
2026-07-10 19:59:55 +03:00

77 lines
2.1 KiB
Django/Jinja

{% if item.type == 'ssl_preread' %}
# Ansible Managed: DO NOT EDIT
# Конфигурация для {{ item.stream }} (SSL preread)
{% if item.ssl_preread is defined and item.ssl_preread.server_names is defined %}
map $ssl_preread_server_name $name {
{% for mapping in item.ssl_preread.server_names %}
{% if mapping is string %}
{{ mapping }};
{% else %}
{% for hostname, target in mapping.items() %}
{{ hostname }} {{ target }};
{% endfor %}
{% endif %}
{% endfor %}
default {{ item.ssl_preread.default_target | default('https') }};
}
{% endif %}
{% if item.upstreams is defined %}
{% for upstream in item.upstreams %}
upstream {{ upstream.name }} {
{% for server in upstream.servers %}
server {{ server }};
{% endfor %}
}
{% endfor %}
{% endif %}
server {
listen {{ item.listen_port }};
{% if item.ssl_preread is defined and item.ssl_preread.ssl_preread | default(false) %}
ssl_preread on;
{% endif %}
{% if item.ssl_preread is defined and item.ssl_preread.proxy_protocol | default(false) %}
proxy_protocol on;
{% endif %}
proxy_pass $name;
{% if item.responses is defined %}
proxy_responses {{ item.responses }};
{% endif %}
{% if item.timeout is defined %}
proxy_timeout {{ item.timeout }};
{% endif %}
{% if item.connect_timeout is defined %}
proxy_connect_timeout {{ item.connect_timeout }};
{% endif %}
}
{% else %}
# Ansible Managed: DO NOT EDIT
# Конфигурация для {{ item.stream }}
upstream {{ item.stream }}_backend {
# hash $remote_addr;
{% for server in item.backends %}
server {{ server }} max_fails={{ max_fails | default(0) }};
{% endfor %}
}
server {
listen {{ item.listen_port }}{% if item.protocol == 'udp' %} udp reuseport{% endif %};
proxy_pass {{ item.stream }}_backend;
{% if item.transparent | default(false) %}
proxy_bind $remote_addr transparent;
{% endif %}
{% if item.responses is defined %}
proxy_responses {{ item.responses }};
{% endif %}
{% if item.timeout is defined %}
proxy_timeout {{ item.timeout }};
{% endif %}
{% if item.connect_timeout is defined %}
proxy_connect_timeout {{ item.connect_timeout }};
{% endif %}
}
{% endif %}