Можно ли заскриптовать несложную логику прямо в конфиге?

Alexander Simakov xdr.box на gmail.com
Пн Апр 17 11:37:25 UTC 2017


Добрый день!

Подскажите, пожалуйста, как наиболее оптимальным
способом решить следующую задачу:

NGINX используется качестве прокси для входящих
из интернета HTTPS и WebSocket-соединений.

Запросы приходят на домены вида NNNN.example.com,
где NNNN - некое число. Для каждого NNNN по очень
простому алгоритму вычисляется внутренний IP-адрес
на который нужно пробросить данное соединение.

Вот пример конфигурации:

==8<==
server {
    listen 443;
    server_name NNNN.example.com;

    location / {
        proxy_pass http://IP_ADDR_FOR_NNNN/;
    }

    location /ws/ {
        proxy_pass http://IP_ADDR_FOR_NNNN/ws/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}
==8<==

Сейчас я вынужден программно генерировать большие
статические файлы-портянки в которых порядка 1000
таких секций.

Подскажите, можно ли в данном примере как-то заскриптовать
логику получения IP-адреса по NNNN и иметь один компактный
и универсальный файл? Или, может, как-то предвычислить для
NGINX хеш { NNNN -> IP_ADDR_FOR_NNNN } и использовать его
в конфиге?

Спасибо.

С уважением,
Александр Симаков
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20170417/2df9a05c/attachment.html>


Подробная информация о списке рассылки nginx-ru