Как перенаправить входящий запрос на порт 80 на хосте на порт x, где x - параметр входящего запроса

У моего хоста 5 служб, работающих, скажем, на 5 разных портах (5000-5004). Мой хост не принимает удаленные соединения на любом порту, кроме 80. Поэтому мне нужно запустить некоторую службу на порту 80, которая может принимать входящие запросы (например, http://1.1.1.1:80?5000) и перенаправить его на порт, указанный в запросе (здесь 5000). Возможно ли это через Nginx или мне нужен другой балансировщик нагрузки?


person Harshit Bansal    schedule 28.11.2019    source источник


Ответы (1)


server {

    listen 80;
    server_name example.com #or your ip, or your host if you prefer

    location / {

        proxy_pass http://your_service_ip.com:$args;

    }

}

$ args содержит все, что находится после "?".

Конечно, это базовый пример, вы должны добавить все параметры, необходимые для правильной передачи прокси-сервера вашим службам. Другой способ - сопоставить аргументы переменной с именем порт и прокси-сервер с этим портом.

person flaixman    schedule 28.11.2019