获取真实ip地址

前端是nginx,后端是apache,apache默认只能获取前端代理ip的地址,但是有时候需要获取真实地址,这个时候,我们只需要在后端apache上添加rpaf模块,并加以配置即可。

wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz

tar -xzvf mod_rpaf-0.6.tar.gz

cd mod_rpaf-0.6/

/usr/local/apache/bin/apxs  -i -c -n mod_rpaf-2.0.slo mod_rpaf-2.0.c

添加apache配置

vi  /usr/local/apache/conf/httpd.conf

Include conf/extra/httpd-rpaf.conf

vi /usr/local/apache/conf/extra/httpd-rpaf.conf

LoadModule rpaf_module        modules/mod_rpaf-2.0.so

RPAFenable On

RPAFsethostname On

RPAFproxy_ips 127.0.0.1 10.8.0.110 # 代理服务器的ip地址(记得做相应修改)

RPAFheader X-Forwarded-For

检查配置是否有错,并重启生效

# /usr/local/apache/bin/apachectl -t

# /usr/local/apache/bin/apachectl restart

排错:

1.检查模块是否加载成功

httpd -M

2.查看前端是否有配置对

3.看看是否忘记切换成apache引擎(在面板-->系统配置里面改)

附录:

查看httpd编译参数

查看 apache/build/config.nice 这个文件即可

时间: 2024-08-04 03:39:45

获取真实ip地址的相关文章

获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址

/** * 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址; * @Title: getIpAddress * @Description: TODO(这里用一句话描述这个方法的作用) * @param @param request * @param @return * @param @throws IOException 参数 * @return String 返回类型 * @throws */ public String getIpAddress(HttpServletR

【转载】JSP 获取真实IP地址的代码

JSP 获取真实IP地址的代码 在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的. 但是在通过了 Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了.如果使用了反向代理软件,用 request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或 192.168.1.110,而并不是客户端的真实IP. 经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的

JSP 获取真实IP地址的代码

[转载]JSP 获取真实IP地址的代码 JSP 获取真实IP地址的代码 在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的. 但是在通过了 Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了.如果使用了反向代理软件,用 request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或 192.168.1.110,而并不是客户端的真实IP. 经过代理以后,由于在客户端和服务之间增加

C#获取真实IP地址实现方法

通常来说,大家获取用户IP地址常用的方法是: 1 string IpAddress = ""; 2 if((HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]!=null 3 && HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] !=String.Empty)

C#如何获取真实IP地址

大家获取用户IP地址常用的方法是 C# 代码   复制 string IpAddress = ""; if((HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]!=null && HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] !=String.Empty) )

ASP如何获取真实IP地址

大家都知道,在ASP中可以使用Request.ServerVariables("REMOTE_ADDR")来取得客户端的IP地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的IP地址,而不是真正的客户端IP地址.要想透过代理服务器取得客户端的真实IP地址,就要使用Request.ServerVariables("HTTP_X_FORWARDED_FOR")来读取. 不过要注意的是,并不是每个代理服务器都能用Request.ServerVariable

Java 获取真实IP地址

当项目发布在内网的时候,主机(如IP地址为192.168.10.88)访问局域网服务器的url,如http://192.168.10.142:8080/index/,用request.getRemoteAddr()获取到的主机IP地址是192.168.10.142,而不是真实的IP地址192.168.10.88.为了解决这个问题,可以采用以下方法避免该问题产生. public static String getIpAddress(HttpServletRequest request) {    

PHP 获取真实IP地址

function getClientIp($type = 0) { $type = $type ? 1 : 0; static $ip = NULL; if ($ip !== NULL) return $ip[$type]; if($_SERVER['HTTP_X_REAL_IP']){//nginx 代理模式下,获取客户端真实IP $ip=$_SERVER['HTTP_X_REAL_IP']; }elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {//客户端

tomcat 获取真实ip地址

tomcat日志记录nginx的真实ip 1.在nginx.conf设置如下 http { set_real_ip_from 10.168.38.0/24;    #通过该指令指定信任的地址,将会被替代为精确的IP地址 real_ip_header X-Forwarded-For;      #这个指令用于设置使用哪个头来替换IP地址.如果使用了X-Forwarded-For,那么该模块将会使用X-Forwarded-For头中的最后一个IP地址来替换前端代理的IP地址. } location