本文共 758 字,大约阅读时间需要 2 分钟。
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。
转载地址:http://zcqen.baihongyu.com/