Переадресация нескольких портов на один порт с помощью nginx

Я хочу, чтобы прокси передавал все запросы, поступающие из ряда портов, в один порт. Я могу прокси передать один порт другому, например, так:

server {
    listen 3333;
    server_name test.in *.test.in;

    location / {
        proxy_pass  http://10.1.1.2:5479/;
        include /etc/nginx/proxy_params;
    }
}

Поэтому, когда я пытаюсь проверить test.in:3333, он перенаправляется на 10.1.1.2:5479.

Таким же образом мне нужно прокси передать эти:

test.in 4440 to 10.1.1.2:5479
test.in 4441 to 10.1.1.2:5479  
test.in 4442 to 10.1.1.2:5479   

Как я могу это сделать?

2 ответа

Решение

Вы должны быть в состоянии сделать это, настроив несколько server блоки, аналогичные тому, что в вашем примере, прослушивают разные порты (4440, 4441 и 4442) и имеют идентичный раздел конфигурации proxy_pass.

Например:

server {
    listen 4440;

    location / {
        proxy_pass  http://10.1.1.2:5479/;
        include /etc/nginx/proxy_params;
    }
}
server {
    listen 4441;

    location / {
        proxy_pass  http://10.1.1.2:5479/;
        include /etc/nginx/proxy_params;
    }
}
server {
    listen 4442;

    location / {
        proxy_pass  http://10.1.1.2:5479/;
        include /etc/nginx/proxy_params;
    }
}

Это также работает...

server {
    listen 4442;
    listen 4441;
    listen 4443;
    listen 4444;

    location / {
        proxy_pass  http://10.1.1.2:5479/;
        include /etc/nginx/proxy_params;
    }
}
Другие вопросы по тегам