1.场景
公司内网有多台服务器的http服务要映射到公司外网静态IP,如果用路由的端口映射来做,就只能一台内网服务器的80端口映射到外网80端口,其他服务器的80端口只能映射到外网的非80端口。非80端口的映射在访问的时候要域名加上端口,比较麻烦。
2.方法:nginx反向代理转发
- 在浏览器中输入git.dingxiufeng.cn能访问到内网机器192.168.31.100的3000端口,输入cloud.dingxiufeng.cn能访问到内网机器192.168.31.101的80端口。
server
{
listen 80;
server_name git.dingxiufeng.cn;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.31.100:3000;
}
access_log logs/git.dingxiufeng.cn_access.log;
}
server
{
listen 80;
server_name cloud.dingxiufeng.cn;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.31.101:80;
}
access_log logs/cloud.dingxiufeng.cn.log;
}