Nginx反向代理之proxy_set_header指令
该指令可以更改Nginx服务器接收到的客户端请求的请求头信息,然后 将新的请求头发送给代理的服务器
proxy_set_header是什么意思呢?
这里涉及到客户端,代理服务器,被代理的服务器
一般都是客户端先向代理服务器发送请求,代理服务器获取请求之后,能够获取到请求头的信息
客户端在发送请求的时候,会携带一些头信息
语法:proxy_set_header field value;
其中field是头信息的属性名,而value是该属性名所对应的属性值
它的默认值是:
proxy_set_header Host $proxy_host;
proxy_set_header Connection close;
它的存储位置在:
http、server、location 三个位置当中
需要注意的是,如果想要看到结果,必须在被代理的服务器上来获取添 加的头信息。
被代理服务器:[192.168.200.146]
server {
listen 8080;
server_name localhost;
default_type text/plain;
return 200 $http_username;
}
代理服务器: [192.168.200.133]
server {
listen 8080;
server_name localhost;
location /server {
proxy_pass
http://192.168.200.146:8080/;
proxy_set_header username TOM;
}
}
具体配置流程:第一步,打开146这台服务器,这是一台被代理服务器
使用 vim ../conf/nginx.conf //打开配置资料
在配置文件中添加server模块,使用$http_username,可以获取请求头中的username内容,
之后修改代理服务器,133是代理服务器的内容,不配置proxy_set_header的效果
检验语法,重载配置
代理服务器配置server内容并没有呈现相关内容
之后在133中进行设置,添加proxy_set_header请求头指令(下面,设置proxy_set_header指令的意义是将Tom指令发送给客户端)
重新刷新之后就可以在浏览器中看到了Tom了,代理传递请求头的使用常用到