使用slb后nginx.apache获取真实ip

前提是在slb设置中开启了“获取真实ip”的功能。

如果只是需要在程序中获取真实ip 那么只要在程序中获取 HTTP_X_FORWARDED_FOR 的值基本就可以了,不需要下面的操作。

下面的操作可以实现nginx或者apache日志中记录用户真实ip或者在apache、nginx中禁止某些ip 用户访问等。

nginx

nginx作为slb获取真实ip是使用 http_realip_module,默认一键安装包安装的nginx没有安装这个模块需要重新重新编译nginx并加装。

以一键安装包为例

重新编译nginx增加 --with-http_realip_module

wget http://soft.phpwind.me/top/nginx-1.0.12.tar.gz

tar zxvf nginx-1.0.12.tar.gz

cd nginx-1.0.12

./configure --user=www --group=www --prefix=/alidata/server/nginx --with-http_stub_status_module --without-http-cache --with-http_ssl_module --with-http_realip_module

make

make install

kill -USR2 `cat /alidata/server/nginx/logs/nginx.pid`

kill -QUIT `cat /alidata/server/nginx/logs/ nginx.pid.oldbin`

修改nginx.conf

vi /alidata/server/nginx/conf/nginx.conf

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

fastcgi_buffer_size 64k;

fastcgi_buffers 4 64k;

fastcgi_busy_buffers_size 128k;

fastcgi_temp_file_write_size 128k;

下面增加

set_real_ip_from ip地址;(这个ip地址首先不是slb提供的公网ip,具体ip多少可以看一下之前nginx日志,如果有多个都要写上。)

set_real_ip_from ip地址;(这个ip地址首先不是slb提供的公网ip,具体ip多少可以看一下之前nginx日志,如果有多个都要写上。)

real_ip_header X-Forwarded-For;

重启nginx

/alidata/server/nginx/sbin/nginx -s reload

apache

安装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

/alidata/server/httpd/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

修改apache配置 /alidata/server/httpd/conf/httpd.conf

在最末尾添加

LoadModule rpaf_module modules/mod_rpaf-2.0.so

RPAFenable On

RPAFsethostname On

RPAFproxy_ips ip地址

RPAFheader X-Forwarded-For

//RPAFproxy_ips ip地址(这个ip地址首先不是slb提供的公网ip,具体ip多少可以看一下apache日志,通常会有2个 都要写上)

添加完成后重启apache

/alidata/server/httpd/bin/apachectl restart

具体案例

LoadModule rpaf_module modules/mod_rpaf-2.0.so

RPAFenable On

RPAFsethostname On

RPAFproxy_ips 10.242.230.65 10.242.230.131

RPAFheader X-Forwarded-For

(0)

相关推荐

  • nginx做负载CDN加速获取端真实ip

    nginx做负载CDN加速获取端真实ip 在不用cdn的情况下,nginx做负载获取真实ip时,nginx配置如下: Java代码 proxy_set_header Host $host; proxy ...

  • 告诉你jsp获取浏览者真实IP地址方法

    我们知道在JSP里,获取网页客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客 ...

  • java如何实现获取客户端ip地址?

    java实现获取客户端ip第一步:我们先来定义一个工具类,专门用于封装ip相关的方法类.package com.example.review.util; import org.apache.commo ...

  • win7系统怎么利用ASP获取服务器IP地址?

    win7系统浏览器打开的网页想要看查看服务器ip地址,网络上浏览的网页都是放在服务器上的,该怎么获取服务器ip地址呢?下面我们就来看看用ASP获取服务器IP地址的方法,请看下文详细介绍. 1.打开II ...

  • 如何重新获取电脑ip地址?

    现在电脑想连接到另台路由器上网,可是怎么也连接不上去!!在这里能是自己的电脑抓取了原来的ip地址没有放弃,所以路由器不认可这个ip是我的,当然不会让你连接上来!怎么办? 操作方法 01 1,想连接上网 ...

  • 最新百度网盘如何获取真实链接

    前期小编也介绍了几个如何获取网盘的真实链接但是现在都失效了,今天给大家带来一个最新的网盘真实链接获取的方法. 操作方法 01 首先打开网页登陆到你的账号,然后我们到登陆到地址是如下图,打开后就登录到你 ...

  • 高手教你怎样把自己的真实IP地址隐藏起来

    操作方法 01 装机教程下载专栏为您提供xp系统安装教程,win7系统优化教程,ghost系统之家(www.520ghost.com)装机教程是您学习装机教程的最好选择. 我们在上网冲浪的时候IP外泄 ...

  • 将win7改为代理服务器来隐藏自己电脑的真实ip的方法

    在现在网络发达病毒肆意传播黑客攻击的现在一直都存在,如果将我们的ip地址暴漏在网络中的话,很有可能是会遭到木马程序的攻击以及被恶意远程监控的,所以我们可以通过将计算机改为代理服务器从而来隐藏自己电脑的 ...

  • 查找应用软件连接域名真实IP修改Hosts的方法

    我使用的是一个名为DNSQuerySniffer的嗅探工具,该工具能够实时显示本地电脑的DNS查询记录,对于每一个DNS解析查询,显示以下信息:主机名,端口号,查询ID,请求类型,请求响应时间,响应代 ...