幸福飞过海 - 2011年7月
https://fengqi.me/2011/07/
风起的网络记事本
-
Nginx反向代理Apache的情况下让Apache获得真实IP
https://fengqi.me/unix/52.html
2011-07-10T09:43:00+00:00
自从Nginx出现以后, 我们都喜欢让 Nginx 跑在前方处理静态文件, 然后通过 proxy 把动态请求过滤给 apache.那么就会出现个问题, 跑在后方 apache 上的应用获取到的访客IP都是Nginx所在服务器的IP , 或者是本机 127.0.0.1 .最明显就是查看 apache 的访问日志.就会见到来来去去都是内网的IP.如果你的应用有诸如, "单个IP不能重复登陆”, "单个IP注册相隔n分钟”... 之类用于IP判别的安全规则.这么就麻烦了....但还好, 你可以通过修改 nginx proxy 的参数令后端应用获取到 Nginx 发来的请求报文获取到外网的IP.proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
但这解决的问题单单只是应用上, apache 日志上所获取的ip依然还是本地.这个时候就需要配合apache的一个第三方模块"mod_rpaf"了, 官方网站: http://stderr.net/apache/rpaf/安装方法:wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
tar zxvf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
/opt/apache/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
安装完成后在httpd.conf添加如下:LoadModule mod_rpaf-2.0.so_module modules/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1 192.168.1.90 #Nginx所在服务器的IP.
RPAFheader X-Forwarded-For
重启apache, 再看apache的访客日志就是真实的用户ip了.遗留问题为, SERVER_ADDR成127.0.0.1了, 求解???
-
关闭ipv6的方法, 的确能关掉
https://fengqi.me/unix/51.html
2011-07-05T16:59:00+00:00
基于centos, 首先执行ifconfig, 如果没有ipv6就不用操作了, 如果有, 按以下步骤来:vi /etc/modprobe.conf #如果没有这个文件, 创建它并添加如下内容
alias net-pf-10 off
alias ipv6 off
options ipv6 disable=1 #网上流传的没有这一项, 少了它, 是关不掉的
vi /etc/sysconfig/network-scripts/ifcfg-eth0 #添加如下内容, 如果你有多高网卡, 自己依次修改
IPV6INIT=no
IPV6_AUTUCONF=no
vi /etc/sysconfig/network #添加如下内容
NETWORKING_IPV6=no
保存退出, 重启, 就OK了.