F5中开启AutoMap,并传递X-Forwarded-For值php
开启F5源地址转换"Auto Map"nginx
方式一: 在http profile中开启X-Forwarded-Forapache
方式二:在iRule中开启X-Forwarded-For服务器
when HTTP_REQUEST { HTTP::header insert "X-Forwarded-For" [IP::client_addr] }
方案一:使用ISAPI筛选器获取访客真实IP。spa
一、下载插件F5XForwardedFor.dll:http://aliyuntool.oss.aliyuncs.com/F5XForwardedFor2008.zip。插件
二、根据本身的版本将x86\Release 或者x64\Release目录下的F5XForwardedFor.dll拷贝到某个目录,假设为C:\F5XForwardedFor\,确保对IIS进程对该目录有读取权限。3d
三、确认您的服务器是否安装如下两个模块:(“ISAPI筛选器” 及 “ISAPI和CGI限制” ):若是未安装,请按如下步骤进行安装:日志
若是未安装,请按如下步骤进行安装:code
一、右键点击 ”计算机”,选择 ”管理:orm
二、选择”角色”选项,点击添加角色服务:
三、选择“ISAPI 扩展 和ISAPI筛选器”,点击下一步,进行安装。
四、添加“ISAPI筛选器”,双击“ISAPI筛选器”,点击添加:
五、填写筛选器的名称(没无特殊要求),选报DLL文件路径,点击肯定。
六、双击“ISAPI 和CGI限制”,点击添加,添加内容以下:
七、修改添加的DLL,从“不容许”修改成“容许”。
八、重启IIS服务器,等待配置生效。
方案二:使用IIS模块功能获取访客真实IP。
一、下载F5XForwardedFor模块:http://aliyunecs.oss.aliyuncs.com/x_forwarded_for.rar。
二、根据本身的服务器版本将x86\Release 或者x64\Release目录下的F5XFFHttpModule.dll和F5XFFHttpModule.ini拷贝到某个目录,假设为C:\F5XForwardedFor\,确保对IIS进程对该目录有读取权限。
三、选择"IIS服务器"选项,按图所示选择"模块"功能。
四、双击“模块”功能,点击“配置本机模块”。
五、在弹出框中点击“注册”按钮。
六、添加下载的DLL文件,以下图:
七、添加完成后,勾选并点击“肯定”。
八、把这两个DLL在 “API 和CGI限制”进行添加,并改成容许。
九、重启IIS服务器,等待配置生效。
修改配置文件httpd.conf
<IfModule log_config_module>
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" f5_forwarder LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" is-forwarded CustomLog logs/access_log combined env=!is-forwarded CustomLog logs/access_log f5_forwarder env=is-forwarded
</IfModule>
或者添加%{X-Forwarded-For}i(推荐)
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{X-Forwarded-For}i" combined
修改配置文件nginx.conf
log_format main '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"' ;
修改配置文件server.xml
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i" %{X-Forwarded-For}i" />
<?php $headers = apache_request_headers(); $real_client_ip = $headers["X-Forwarded-For"]; echo "Your IP: ",$real_client_ip; ?>