![使用 nginx 将多个端口转发到单个端口](https://linux22.com/image/870279/%E4%BD%BF%E7%94%A8%20nginx%20%E5%B0%86%E5%A4%9A%E4%B8%AA%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%E5%88%B0%E5%8D%95%E4%B8%AA%E7%AB%AF%E5%8F%A3.png)
我想将来自一系列端口的所有请求代理传递到单个端口。我能够将单个端口代理传递到另一个端口,如下所示:
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;
}
}