Nginx下的端口转发实现

1.端口转发是什么
简单的理解就是由一个端口转向至另一个端口

2.为什么需要端口转发
当前需求是:LNMP安装在实体机VPS上,VPS上还装了Docker,Docker里面的业务需要外网访问,所以想到的解决方案就是通过Nginx转发。

3.如何实现端口转发
LNMP环境下,先添加主机

lnmp vhost add

按流程添加好后在/usr/local/nginx/conf/vhost目录下会生成对应的网站conf文件,vi或者使用你熟悉的编辑器编辑此conf文件。
类似如下格式:

server {
listen 80;
server_name 199188.xyz;
access_log logs/199188.xyz.log;
error_log logs/199188.xyz.error.log;

#将所有请求转发给demo_pool池的应用处理
location / {

   proxy_set_header Host $host;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_pass http://19188.xyz:12345;

}
}

其中80为需要监听的端口,把网站地址改为你自己的网站地址。proxy_pass http://19188.xyz:12345;这行里面的地址改为你需要转发的地址,可以带端口。

然后

service nginx restart

完成了。

4.转发至docker中的业务只需将上述proxy_pass后面的地址改为docker的地址和端口就好
查看Docker下容器的IP

docker ps

运行后可以看到对应的IP和端口。按上述第三步修改即可