关于nginx参数proxy_redirect的设置

在配置nginx反向代理时,发现内网9012端口发布到互联网58.211.24.24:9004后,访问页面出现错误,端口被更改为9012。通过添加proxy_redirect参数或修改proxy_set_header的Host设置,成功解决了端口被改变的问题,确保了互联网用户能正常访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公司有反向代理需求,并发布到互联网。将内网nginx的9012端口发布到互联网58.211.24.24:9004端口。

刚开始这么配置

server {
        listen       9012;
        server_name  xxx.xxx.net;
        access_log  logs/sales.host.access.log  main;
        error_log  logs/sale_error.log;
        error_log  logs/sale_error.log  notice;
        error_log  logs/sale_error.log  info;
        location / {
        proxy_buffering off;
        proxy_pass      http://salesCluster;
        proxy_set_header        Host $host:9012;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        REMOTE-HOST $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        client_max_body_size    60m;
        proxy_read_timeout      600s;
        proxy_connect_timeout   30s;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

从互联网访问,58.211.24.24:9004/index,发现页面加载不了,一片空白。

用chrome浏览器查看后台的访问原地址,发现index页面变成58.211.24.24:9012/index,端口被改变了,变成了nginx的内网地址,问题肯定出在这里。

这里我找到了两种办法解决:

1.用proxy_redirect参数修改被代理服务器返回的响应头。

加一行:proxy_redirect          http://58.211.24.24:9012   http://58.211.24.24:9004;

2.直接修改proxy_set_header   

将proxy_set_header        Host $host:9012;  修改为

proxy_set_header        Host $host:9004;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值