Chinaunix首页 | 论坛 | 博客
  • 博客访问: 325262
  • 博文数量: 77
  • 博客积分: 1925
  • 博客等级: 上尉
  • 技术积分: 1065
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-13 17:26
文章分类
文章存档

2012年(77)

我的朋友

分类: LINUX

2012-03-26 17:40:39

网站最前端是nginx,做的PROXY来转发请求到后端的apache上,所以获取的IP 都是NGINX PROXY 机器的IP,这对于分析和记录apache日志等很多基于IP判断的PHP程序都会出现一系列的问题,经过以下两处理便可让apache获取 正式的访问地址:
1.修改NGINX的配置文件NGINX.CONF 在里面加上

  1. proxy_set_header Host $host;
  2. proxy_set_header X-Real-IP $remote_addr;
  3. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

上面的设置能保证nginx把正确的ip转发到后端。
2.设置apache接受转发来的真实IP
说明:
下载:download/
上面的扩展能保证apache能正常接受转发来的真实IP.

  1. # tar zxvf mod_rpaf-0.6.tar.gz
  2. # cd mod_rpaf-0.6
  3. # /usr/local/www/apache/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
  4. 着在 httpd.conf中添加
  5. LoadModule rpaf_module modules/mod_rpaf-2.0.so
  6. RPAFenable On
  7. RPAFsethostname On
  8. RPAFproxy_ips 172.150.48.1 # 填写Nginx的来访IP
  9. RPAFheader X-Forwarded-For

这样就可以获取客户端访问的真实IP了。

阅读(1806) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~