码迷,mamicode.com
首页 > 其他好文 > 详细

nginx转发及后端服务器获取真实client的IP

时间:2015-07-26 06:16:42      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:nginx ip



    针对nginx的模块介绍可以查阅wiki:http://wiki.nginx.org/Modules

    常用模块:HTTP Core

                     Proxy

                     Rewrite

                     Upstream

 

原理:
squid,varnish以及nginx等,在做反向代理的时候,因为要代替客户端去访问服务器,所以,当请求包经过反向代理后,在代理服务器这里这个IP数据包的IP包头做了修改,最终后端web服务器得到的数据包的头部的源IP地址是代理服务器的IP地址,这样一来,后端服务器的程序给予IP的统计功能就没有任何意义,所以在做代理或集群的时候必须解决这个问题,这里,我以nginx做集群或代理的时候如何给后端web服务器保留(确切的说是传递)客户端的真实IP地址。


首先,在前端nginx上需要做如下配置:

location / {
proxy_pass http://192.168.100.100;
proxy_set_hearder host $host;
proxy_set_header X-Real_IP $remoute_addr;
};


在后端192.168.100.100的apache服务器上配置文件进行如下修改。

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

改为

LogFormat "%{X-Real-IP}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

即可。

本文出自 “秋天的童话” 博客,请务必保留此出处http://wushank.blog.51cto.com/3489095/1678370

nginx转发及后端服务器获取真实client的IP

标签:nginx ip

原文地址:http://wushank.blog.51cto.com/3489095/1678370

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!