用nginx做前端,后端apache能获得真实IP的方法
2012-05-16 11:05
716 查看
利用nginx做前段缓存的方法在张宴的blog(http://blog.s135.com/nginx_cache/)上已经有说明,不过我们要做些改变,设置为只缓存图片;CSS之类的,避免伪静态被误缓存.现在附上我的nginx配置:(我只贴了server部份,nginx的初始配置请在张宴blog里抄)
这样就几乎就可以用了,不过还是有些不完美.因为在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/ 上面也有安装方法
安装完成后会有如下信息:
图中的/usr/lib/apache/mod_rpaf-2.0.so 就是模块位置,要记住,不同的OS安装位置可能不一样.
最后在apache的配置文件的最后中加入
重启httpd,收工.
原帖:http://justchen.com/511.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | server { listen 80; server_name arm.im www.arm.im; location ~ \.(jpg|jpeg|gif|bmp|png|css|js|flv|xml)$ { # proxy_next_upstream http_502 http_504 error timeout invalid_header; proxy_cache cache_one; proxy_cache_valid 200 304 12h; proxy_cache_valid 302 1m; proxy_cache_key $host$uri$is_args$args; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://50.22.xx.xx; } location / { proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://50.22.xx.xx; } } |
实际上proxy_set_header X-Forwarded-For $remote_addr;这就已经把客户端的真实IP包在http的包头了.只是前端的apache没做处理.这时,需要在前端apache中安装一个模块"rpaf".rpaf的最新版本在这http://stderr.net/apache/rpaf/ 上面也有安装方法
wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz tar zxf mod_rpaf-0.6.tar.gz cd mod_rpaf-0.6 apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
安装完成后会有如下信息:
图中的/usr/lib/apache/mod_rpaf-2.0.so 就是模块位置,要记住,不同的OS安装位置可能不一样.
最后在apache的配置文件的最后中加入
LoadModule rpaf_module /usr/lib/apache/mod_rpaf-2.0.so(须要注意位置是在SSH中安装好后提示的位置) RPAFenable On RPAFsethostname On RPAFproxy_ips 173.208.xx.xx (请写你的nginx前端地址) RPAFheader X-Forwarded-For
重启httpd,收工.
原帖:http://justchen.com/511.html
相关文章推荐
- Nginx做前端时,后端Apache获得真实IP的做法
- nginx前端负载,后端apache获取真实IP设置
- 使用Nginx做前端服务器时让Apache得到真实IP的方法
- Nginx前端设置反向代理,后端Apache如何获取访客的真实IP,结合PHP
- Nginx 负载均衡 后端服务器获取前端用户真实IP
- nginx前端,tomcat后端服务器获取客户的真实IP,包括tomcat访问日志获取真实IP的配置
- varnish前端让后端nginx获取客户真实ip
- nginx做负载时后端apache.nginx日志真实client ip
- varnish前端让后端nginx获取客户真实ip
- Apache, Nginx获得nginx代理后的真实用户Ip
- 前端Nginx,后端Apache获取用户真实IP地址
- 前端Nginx,后端Apache获取用户真实IP地址
- Nginx反向代理Apache的情况下让Apache获得真实IP
- 前端nginx时,让后端tomcat记录真实IP
- Nginx和Apache共存环境下apache获得真实IP
- X-Forwarded-For 负载均衡 7 层 HTTP 模式获取来访客户端真实 IP 的方法(IIS/Apache/Nginx/Tomcat)
- nginx做前端,后端web服务器无法获取真正客户机的ip,解决方法
- Nginx 负载均衡 后端服务器获取前端用户真实IP
- nginx与apache限制ip并发访问 限制ip连接的设置方法
- apache2.2 做后端,增加真实ip到日志中