您的位置:首页 > 运维架构 > Nginx

对nginx中proxy_set_header的介绍

2019-08-13 22:53 1176 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_41536539/article/details/99486071

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。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: