使用 nginx 将多个端口转发到单个端口

使用 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   

我怎样才能做到这一点?

答案1

它也在工作...

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

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

答案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;
    }
}

相关内容