Nginx proxy_set_header参数设置

一、不设置 proxy_set_header Host

不设置 proxy_set_header Host 时,浏览器直接访问 nginx,获取到的 Host 是 proxy_pass 后面的值,即 $proxy_host 的值,参考
http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_set_header

# cat ngx_header.conf 
server {
    listen 8090;
    server_name _;
    location / {
        proxy_pass http://172.31.5.0:5000;
    }
}

结果如下:返回proxy_pass 后面的值
在这里插入图片描述

二、设置proxy_set_header Host $host

server {
    listen 8090;
    server_name _;
    location / {
        proxy_set_header Host $host;
        proxy_pass http://172.31.5.0:5000;
    }
}

结果如下:不再是 proxy_pass代理的ip地址了, 不包含端口
在这里插入图片描述


三、设置proxy_set_header Host $http_host

server {
    listen 8090;
    server_name _;
    location / {
        proxy_set_header Host $http_host;
        proxy_pass http://172.31.5.0:5000;
    }
}

结果如下:不再是 proxy_pass代理的ip地址了, 包含端口
在这里插入图片描述

提示: 设置 proxy_set_header Host $host 时,浏览器直接访问 nginx,获取到的 Host 是 $host 的值,没有端口信息。此时代码中如果有重定向路由,那么重定向时就会丢失端口信息,导致 404

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值