【问题标题】:How to forward incoming request to 80 port on host to x port where x is the incoming request parameter如何将传入请求转发到主机上的 80 端口到 x 端口,其中 x 是传入请求参数
【发布时间】:2019-11-28 22:48:12
【问题描述】:
我的主机有 5 个服务在 5 个不同的端口(5000-5004)上运行。我的主机不接受除 80 以外的任何端口上的远程连接。所以我需要在端口 80 上运行一些服务,该服务可以通过传入请求(例如http://1.1.1.1:80?5000)接受并将其转发到请求中提到的端口(此处为 5000)。是否可以通过 Nginx 或者我需要任何其他负载均衡器?
【问题讨论】:
标签:
nginx
load-balancing
reverse-proxy
nginx-reverse-proxy
nginx-config
【解决方案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 包含 "?" 之后的任何内容。
当然,这是一个基本示例,您应该将代理传递所需的所有参数添加到您的服务中。另一种方法是将 args 映射到名为 port 的变量上,并将代理映射到该端口。