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;
}