<div dir="ltr"><div>Добрый день!</div><div><br></div><div>Подскажите, пожалуйста, как наиболее оптимальным</div><div>способом решить следующую задачу:</div><div><br></div><div>NGINX используется качестве прокси для входящих</div><div>из интернета HTTPS и WebSocket-соединений.</div><div><br></div><div>Запросы приходят на домены вида <a href="http://NNNN.example.com" target="_blank">NNNN.example.com</a>,</div><div>где NNNN - некое число. Для каждого NNNN по очень</div><div>простому алгоритму вычисляется внутренний IP-адрес</div><div>на который нужно пробросить данное соединение.</div><div><br></div><div>Вот пример конфигурации:</div><div><br></div><div>==8<==</div><div><div>server {</div><div>    listen 443;</div><div>    server_name <a href="http://NNNN.example.com" target="_blank">NNNN.example.com</a>;</div><div><br></div><div>    location / {</div><div>        proxy_pass <a href="http://IP_ADDR_FOR_NNNN/" target="_blank">http://IP_ADDR_FOR_NNNN/</a>;</div><div>    }</div><div><br></div><div>    location /ws/ {</div><div>        proxy_pass <a href="http://IP_ADDR_FOR_NNNN/ws/" target="_blank">http://IP_ADDR_FOR_NNNN/ws/</a>;</div><div>        proxy_http_version 1.1;</div><div>        proxy_set_header Upgrade $http_upgrade;</div><div>        proxy_set_header Connection "upgrade";</div><div>    }</div><div>}</div></div><div>==8<==<br></div><div><br></div><div>Сейчас я вынужден программно генерировать большие</div><div>статические файлы-портянки в которых порядка 1000</div><div>таких секций.</div><div><br></div><div>Подскажите, можно ли в данном примере как-то заскриптовать</div><div>логику получения IP-адреса по NNNN и иметь один компактный</div><div>и универсальный файл? Или, может, как-то предвычислить для</div><div>NGINX хеш { NNNN -> IP_ADDR_FOR_NNNN } и использовать его</div><div>в конфиге?</div><div><br></div><div>Спасибо.</div><br clear="all"><div><div class="m_121333429317486956gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>С уважением,</div><div>Александр Симаков</div></div></div></div></div></div>
</div>