Dmitry Stremkovskiy | 6484afa | 2017-08-22 17:07:06 +0300 | [diff] [blame] | 1 | {%- from "nginx/map.jinja" import server with context -%} |
| 2 | stream { |
| 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 | } |