【发布时间】:2019-10-25 12:56:46
【问题描述】:
我正在使用 NLog 进行日志记录。我需要记录打开网站的用户的 IP 地址。
为此,我使用了 NLog 的 aspnet-request-ip 属性。文档在这里:https://github.com/NLog/NLog/wiki/AspNet-Request-IP-Layout-Renderer
我在 NLog 配置中的布局现在如下所示:
layout='"${longdate:universalTime=true}","${level}",${aspnet-request-ip},"${message}"'
问题是 - 记录的 IP 地址是托管网站的机器的 IP。但我需要打开/请求网站的用户的 IP。我需要记录从哪个 IP 请求/打开网站。
我该怎么做?或者为什么aspnet-request-ip 记录的是主机 IP 地址,而不是用户/客户端 IP 地址?
【问题讨论】:
-
中间有负载均衡器吗?
-
@Julian 是的。但是负载均衡器不会将原始请求信息传递给服务器吗?所以你认为我的问题是由于负载均衡器造成的?
-
我认为
CheckForwardedForHeader属性是用于获取客户端IP,即使有负载均衡器或网关?如何使用该属性?喜欢这个${aspnet-request-ip:CheckForwardedForHeader=true}? -
确实如此。我添加了一个答案来解释一下。
标签: asp.net asp.net-mvc nlog