对nginx中proxy_set_header的介绍

本文详细解析了Nginx中proxy_set_header指令的作用,包括如何重新定义或添加请求头,解释了$host、$http_host和$proxy_host的区别与联系,并提供了具体的配置示例。

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

1.首选说明设置proxy_set_header的作用

      允许重新定义或者添加发往后端服务器的请求头

2 $host 和 $http_host 和$proxy_host的说明

      $proxy_host 自然是 proxy_pass后面跟着的host

       比如一个请求 https://zhidao.baidu.com/question/22908463.html
       Request.ServerVariables("HTTP_HOST") 可以获得HTTP_HOST请求标题:zhidao.baidu.com

      $http_host始终等于HTTP_HOST请求标题

      $host等于$http_host,小写并且没有端口号(如果存在),除非HTTP_HOST不存在或是空值。在这种情况下,$host等于server_name

3 proxy_set_header配置说明

   location /{
        proxy_pass                  http://backend; 
        proxy_set_header            Host $host;
        proxy_set_header            X-real-ip $remote_addr;
        proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    request.Header.Get("X-Real_IP"):获取用户真实ip

   假设有三次代理:request.Header.Get("X-Forwarded-For")  client1, proxy1, proxy2,以逗号隔开各个地址

注意:在nginx的配置文件中,如果当前模块中没有proxy_set_header的设置,则会从上级别继承配置。继承顺序为:http, server, location。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值