1
在配置Nginx反向代理到服务端时,如果Nginx配置端口不是80端口,容易出现上面的问题,比如访问http://5g.139130.com:8080/地址,由于用户还没登录,则重定向到http://5g.139130.com:8080/login,但浏览器上看到的地址却是http://5g.139130.com/login,跟我们预期的不一致,nginx的配置信息如下:

server {
    listen       8080;
    server_name  5g.139130.com;
    access_log /var/log/nginx/logs/$server_name-$year-$month-$day.log  json;
    location / {
        proxy_read_timeout    20;
        proxy_connect_timeout  5;
        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://127.0.0.1:8080;
    }
}

主要的问题出现在proxy_set_header Host $host; 这一句配置,没有把实际的8080端口传递给服务端,导致服务端认为端口为80,所以重定向时,直接跳转到http://5g.139130.com/login,解决的方法如下:

 proxy_set_header Host $host:$server_port;

加上实际端口号$server_port即可。

打赏
支付宝 微信
上一篇 下一篇