对nginx中proxy_set_header的介绍

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。

你可能感兴趣的:(nginx)