针对七层服务(HTTP/HTTPS协议),需要对应用服务器进行配置,然后使用X-Forwarded-For的方式获取来访者的真实IP地址。
真实的来访者IP会被负载均衡放在HTTP头部的X-Forwarded-For字段,格式如下:
X-Forwarded-For: 来访者真实IP, 代理服务器1-IP, 代理服务器2-IP, ...
当使用此方式获取来访者真实IP时,获取的第一个地址就是来访者真实IP。
配置Apache服务器
例如在CentOS 7.5环境下,可以执行如下命令执行安装:
yum install httpd
LoadModule remoteip_module modules/mod_remoteip.so RemoteIPHeader X-Forwarded-For RemoteIPInternalProxy 100.125.0.0/16
将代理服务器的网段添加到 RemoteIPInternalProxy <IP_address>,如负载均衡的IP地址段 100.125.0.0/16(100.125.0.0/16 是负载均衡服务保留地址,其他用户无法分配到该网段内,不会存在安全风险)和高防IP地址段。多个IP地址段用逗号分隔。
独享型负载均衡需要添加ELB实例关联的VPC子网网段。
LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
systemctl restart httpd
配置Nginx服务器
例如在CentOS 7.5环境下,可以执行如下命令执行安装:
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel wget http://nginx.org/download/nginx-1.17.0.tar.gz tar zxvf nginx-1.17.0.tar.gz cd nginx-1.17.0 ./configure --prefix=/path/server/nginx --with-http_stub_status_module --without-http-cache --with-http_ssl_module --with-http_realip_module make make install
vi /path/server/nginx/conf/nginx.conf
set_real_ip_from 100.125.0.0/16; real_ip_header X-Forwarded-For;
将代理服务器的网段添加到 set_real_ip_from <IP_address>,如负载均衡的IP地址段 100.125.0.0/16(100.125.0.0/16是负载均衡服务保留地址,其他用户无法分配到该网段内,不会存在安全风险)和高防IP地址段。多个IP地址段用逗号分隔。
/path/server/nginx/sbin/nginx
cat /path/server/nginx/logs/access.log
配置Tomcat服务器
本教程中的Tomcat的安装路径为“/usr/tomcat/tomcat8/”。
ps -ef|grep tomcat netstat -anpt|grep java
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%{X-FORWARDED-FOR}i %l %u %t %r %s %b %D %q %{User-Agent}i %T" resolveHosts="false" />
cd /usr/tomcat/tomcat8/bin && sh startup.sh
其中“/usr/tomcat/tomcat8/”为Tomcat安装路径,请根据实际情况替换。
如图中红框所示获取到的非100.125网段的IP地址,即为获取到的源IP地址。
cat localhost_access_log..2020-09-10.txt
其中“localhost_access_log..2020-09-10.txt”为当天日志路径,请根据实际情况替换。
配置Windows IIS服务器
本教程以Windows Server 2012配置IIS7为例介绍,其他版本操作可能略有不同。
https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=1038
针对四层服务(TCP/UDP协议),有两种方式可以获取客户端的真实IP。
如果后端服务器和客户端使用同一台服务器,且开启“获取客户端IP”,则后端服务器会根据报文源IP为本地IP判定该报文为本机发出的报文,无法将应答报文返回给ELB,最终导致回程流量不通。
您可以使用?方式二(TCP协议):配置TOA插件获取。获取源IP。
针对四层(TCP协议)服务,需要配置TOA插件获取。配置TOA插件请参考TOA插件配置。
实例 云端的虚拟计算资源,可理解为轻量应用服务器,包括 CPU、操作系统、网络、...
12月2日,由中国信息通信研究院(以下简称“中国信通院”)、工业互联网产业联盟...
通过SDRS创建保护实例时,生产站点资源为用户手动创建的已有资源,SDRS会自动创...
很多客户在选择我们的 带宽租用 之后,有的客户会问到带宽租用了之后空间不够用...
本文比较并总结遍历数组的四种方式: for 循环: for(let index = 0 ;index some...
1、背景介绍 本文着重从问题定位的角度来介绍如何定位嵌入式软件系统中的问题,...
公司简介 我们网鱼网咖成立于1998年,致力于打造多人游戏空间,为顾客提供极致的...
我是一名大三的学生,专业是计算机科学与技术,最近在学习linux,听了狂神的服务...
本文作者 李雨前,阿里云弹性计算技术专家,有 5 年的大规模集群资源管理调度实...
香港虚拟主机 有什么用?香港 虚拟主机 其实和其他国内虚拟主机在使用上没有任何...