请问如何获取用户访问的真实IP。单位是用深信服AD做负载的,was开启access日志后,发现来访地址都是AD上的虚拟IP地址,有什么办法获取用户真实的IP?
收起建议可以尝试下WAS从HTTP请求头中的 X-Forwarded-For 中获取客户端真实IP,步骤参考如下:
1.应用程序服务器 > <server_name> > Web 容器传输链 > HttpQueueInboundDefault > HTTP 入站通道(HTTP_2)>定制属性,添加accessLogFormat属性值,内容如下:
名称:accessLogFormat
值:%{X-Forwarded-For}i %h %i %u %t "%r" %s %b
备注:accessLogFormat值根据实际需要定制,相关参数解释参数连接如下:
https://www.ibm.com/support/knowledgecenter/zh/SSEQTP_8.5.5/com.ibm.websphere.base.iseries.doc/ae/rrun_chain_httpcustom.html#accesslogformat
2.应用程序服务器 > <server_name> > Web 容器传输链 > HttpQueueInboundDefault > HTTP 入站通道(HTTP_2)页下方点击 “启用记录 ”,同时选中 “使用特定于链的记录 ”
填写访问日志文件路径、访问日志最大大小、最大历史记录文件数等值,参考如下:
访问日志文件路径:${SERVER_LOG_ROOT}/was_http_access.log
访问日志最大大小: 10
最大历史记录文件数: 10
3.重启server ,访问应用,查看was_http_access.log日志中内容是否为需要的值。