当前位置: > Linux服务器 > nginx >

Nginx中proxy_set_header的两个使用方法

时间:2015-04-22 22:46来源:linux.it.net.cn 作者:IT

1、proxy_set_header Host $host;

作用:当后端单台web服务器上也配置有多个虚拟主机时,需要使用该Header来区分反向代理哪个主机名。

实验测试:

A、未加入proxy_set_header Host $host;

①、前端用作方向代理的Nginx服务器nginx.conf的配置:

②、后端用作web服务器的Nginx服务器的nginx.conf的配置:

③、测试结果

B、加入proxy_set_header Host $host;

①、加入位置为前端用作方向代理的Nginx服务器:

其他的不变

②、测试结果

2、proxy_set_header X-Forwarded-For $remote_addr;

作用:如果后端Web服务器上的程序需要获取用户IP,从该Header头中获取

(默认Nginx在前端做反向代理时,如果不添加改参数,用户的访问IP是记录在前端的Nginx反向代理服务器的日志中,而后端的服务器只能记录前端nginx服务器的IP访问情况,不利于以后的日志访问分析)

注:要想在后端对应的服务器上记录用户的访问IP,需要对后端的日志格式进行调整以便进行配合

A、Apache的日志格式设置:

B、Nginx的日志格式设置:

Nginx设置的前后日志对比:

10.0.0.21 – – [31/Aug/2014:22:58:26 +0800] “GET / HTTP/1.0″200 26 “-””check_http/v1.4.16 (nagios-plugins 1.4.16)” “-”
10.0.0.21 – – [31/Aug/2014:23:01:43 +0800] “GET / HTTP/1.0″304 0 “-””Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)” “10.0.0.1″

(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容