blob: 0f7ef00b5934456dd28cb5f047015830a02accc6 [file] [log] [blame]
Dmitry Stremkovskiy6484afa2017-08-22 17:07:06 +03001{%- from "nginx/map.jinja" import server with context -%}
2stream {
3 {% for stream_name, stream_item in server.stream.iteritems() %}
4 upstream {{ stream_name }}_upstream {
5 {%- if stream_item.least_conn is defined %}
6 least_conn;
7 {%- endif %}
8 {%- if stream_item.least_time is defined %}
9 least_time {{ stream_item.get('least_time', 'connect') }};
10 {%- endif %}
11 {%- if stream_item.hash is defined %}
12 hash {{ stream_item.get('hash', '$remote_addr') }};
13 {%- endif %}
14 {% for backend_name, backend_item in stream_item.get('backend', {}).iteritems() %}
15 server {{ backend_item.get('address', '127.0.0.1') }}:{{ backend_item.get('port', '31337') }} {{ backend_item.get('opts', '') }};
16 {%- endfor %}
17
18 }
19 {% set host = stream_item.get('host', {}) %}
20 server {
21 {% if host.bind is defined %}
22 listen {{ host.get('bind') }}:{{ host.get('port', '31337') }} {{ host.get('protocol', '') }};
23 {%- else %}
24 listen {{ host.get('port', '31337') }} {{ host.get('protocol', '') }};
25 {%- endif %}
26
27 proxy_pass {{ stream_name }}_upstream;
28
29 }
30 {% endfor %}
31}