全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 5182|回复: 19
打印 上一主题 下一主题

[nginx] 用nginx做前端,后端apache能获得真实IP的方法

[复制链接]
跳转到指定楼层
1#
发表于 2011-4-24 14:45:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
之前发了个贴求助,结果还是发现求人不如求自已,最终还是搞定了,现在整理了下放出来.原文地址:http://isfate.com/511.html
利用nginx做前段缓存的方法在张宴的blog(http://blog.s135.com/nginx_cache/)上已经有说明,不过我们要做些改变,设置为只缓存图片;CSS之类的,避免伪静态被误缓存.现在附上我的nginx配置:
  1. server
  2.         {
  3.        listen           80;
  4.        server_name      arm.im        www.arm.im;

  5.     location ~ \.(jpg|jpeg|gif|bmp|png|css|js|flv|xml)$
  6.       {
  7.           #  proxy_next_upstream http_502 http_504 error timeout invalid_header;
  8.              proxy_cache cache_one;
  9.              proxy_cache_valid  200 304 12h;
  10.              proxy_cache_valid  302 1m;
  11.              proxy_cache_key $host$uri$is_args$args;
  12.              proxy_set_header Host  $host;
  13.              proxy_set_header X-Forwarded-For  $remote_addr;
  14.              proxy_pass http://50.22.xx.xx;
  15.       }
  16.         location  /
  17.                 {
  18.          proxy_set_header Host  $host;
  19.          proxy_set_header X-Forwarded-For  $remote_addr;
  20.          proxy_pass http://50.22.xx.xx;
  21.                 }
  22.         }
复制代码
这样就几乎就可以用了,不过还是有些不完美.因为在Apache那端的IP是nginx的IP.所以需要把nginx把客户的真实IP以某种方式发送给apache.
实际上proxy_set_header X-Forwarded-For $remote_addr;这就已经把客户端的真实IP包在http的包头了.只是前端的apache没做处理.这时,需要在前端apache中安装一个模块”rpaf”.rpaf的最新版本在这http://stderr.net/apache/rpaf/ 上面也有安装方法
  1. wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
  2. tar zxf mod_rpaf-0.6.tar.gz
  3. cd mod_rpaf-0.6
  4. apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
复制代码
安装完成后会有如下信息:

图中的/usr/lib/apache/mod_rpaf-2.0.so 就是模块位置,要记住,不同的OS安装位置可能不一样.
最后在apache的配置文件的最后中加入
  1. LoadModule rpaf_module /usr/lib/apache/mod_rpaf-2.0.so(请留意,这里要与安装位置一样,不然找不到模块)
  2. RPAFenable On
  3. RPAFsethostname On
  4. RPAFproxy_ips 173.208.xx.xx  (请写你的nginx前端地址)
  5. RPAFheader X-Forwarded-For
复制代码
重启httpd.收工

看贴不回的MJJ,用上了不加分的MJJ

[ 本帖最后由 Gpuer 于 2011-4-24 14:55 编辑 ]

评分

参与人数 4威望 +50 收起 理由
imnpc + 10 赞一个!
xiasl + 15 弹鸡鸡········
外焦里嫩 + 10 加分。
稀饭 + 15 对你表示无奈............................ ...

查看全部评分

2#
发表于 2011-4-24 14:48:49 | 只看该作者
收藏.暂时用不到。
3#
发表于 2011-4-24 14:50:48 | 只看该作者
技术贴收一下。
4#
发表于 2011-4-24 14:58:04 | 只看该作者
要好好收藏下。
5#
发表于 2011-4-24 15:11:19 | 只看该作者
技术贴收一下。
6#
发表于 2011-4-24 15:12:01 | 只看该作者
帮顶
7#
发表于 2011-4-24 15:13:44 | 只看该作者
路过
8#
发表于 2011-4-24 15:15:30 | 只看该作者
不用定义做缓存的内存和硬盘大小?
9#
发表于 2011-4-24 15:16:54 | 只看该作者
好,
10#
 楼主| 发表于 2011-4-24 15:36:01 | 只看该作者
原帖由 walkman660 于 2011-4-24 15:15 发表
不用定义做缓存的内存和硬盘大小?

我只贴了server部份,详细的在张宴blog里有说明
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-3 20:46 , Processed in 0.065638 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表