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

Har*_*ari 6 nginx reverse-proxy

我想代理将来自一系列端口的所有请求传递到单个端口。我能够代理将单个端口传递给另一个端口,如下所示:

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

    location / {
        proxy_pass  http://10.1.1.2:5479/;
        include /etc/nginx/proxy_params;
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,当我尝试 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   
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Har*_*ari 14

它也工作...

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

    location / {
        proxy_pass  http://10.1.1.2:5479/;
        include /etc/nginx/proxy_params;
    }
}
Run Code Online (Sandbox Code Playgroud)


jkt*_*123 6

您应该能够通过设置多个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;
    }
}
Run Code Online (Sandbox Code Playgroud)