Nginx学习二

本文介绍了Nginx中proxy_set_header的用法,包括http_host与host的区别,并详细讲解了如何在反向代理场景下设置Host头。同时,文章还探讨了在多级代理中如何获取客户端真实IP,以及Nginx服务器性能优化配置,如sendfile、tcp_nopush和tcp_nodelay的使用。
摘要由CSDN通过智能技术生成

文章目录

一、proxy_set_header

1.1、 h t t p _ h o s t 与 http\_host与 http_hosthost区别

1、在使用Nginx做反向代理的时候,proxy_set_header功能可以设置反向代理后的http header中的host,

那么常用的几个设置中$proxy_host, h o s t , host, host,http_host又都表示什么意思呢?
Nginx的官网文档中说下面这两条是做反代时默认的,所以$proxy_host 自然是 proxy_pass后面跟着的host了

proxy_set_header Host       $proxy_host;
proxy_set_header Connection close;

如果客户端发过来的请求的header中有’HOST’这个字段时,$http_host和$host都是原始的’HOST’字段比如请求的时候HOST的值是www.csdn.net 那么反代后还是www.csdn.ne

1.1.1、 不设置 proxy_set_header Host 时,浏览器直接访问 nginx,获取到的 Host 是 proxy_pass 后面的值,即 $proxy_host 的值,

参考http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_set_header

server {
   
    listen 8090;
    server_name _;
    location / {
   
        proxy_pass http://172.31.5.0:5000;
    }
}

1.1.2、 设置 proxy_set_header Host $host 时,浏览器直接访问 nginx,获取到的 Host 是 $host 的值,没有端口信息
server {
   
    listen 8090;
    server_name _;
    location / {
   
        proxy_set_header Host $host;
        proxy_pass http://172.31.5.0:5000;
    }
}
1.1.3、2.3 设置 proxy_set_header Host h o s t : host: host:proxy_port 时,浏览器直接访问 nginx,获取到的 Host 是 h o s t : host: hos
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值