我有一个由我们的托管服务提供商管理的 F5 Big-IP。它专用于我们的私有 VLAN 等。效果很好:)
我们要求他们添加一个 X-Forwarded-For HTTP-Header 字段。他们已经做到了,我们现在可以在代码中访问它。惊人的 :)
但是..对于我们的 IIS 日志,它仍然是 F5 机器的 IP。我想有人告诉我,我们需要对 IIS 服务器应用 ISAPI 过滤器(畏缩!)。
- 有人可以证实这一点吗?
- 如果#1 == 是,是否有文件/说明如何在 Windows 2008 机器上为我们的 IIS7 Web 服务器执行此操作。
我发布了一个 ISAPI 过滤器来与我们的 BIG-IP 一起工作,并且刚刚更新了它以完全支持 x86 和 x64。看看我不久前写的博客文章。只需将随附的 F5XForwardedFor.dll 复制到您的服务器并在您的虚拟站点的 ISAPI 部分中引用它。
http://devcentral.f5.com/weblogs/joe/archive/2005/09/23/1492.aspx
这在 IIS Microsoft 社区的这个线程中进行了讨论。似乎有一个帮手可以为 IIS 做到这一点(特别声明可以与 Microsoft ARR 一起使用,但它应该适用于任何反向代理或负载平衡器)。
虽然这个问题被标记为 iis-7,但这是在 X-Forwarded-For 上搜索时最热门的问题,所以我想我会继续为 IIS 8.5 提供这些信息。
IIS 8.5 和更高版本 IIS 8.5 引入了增强的日志记录功能,该功能允许管理员轻松记录 HTTP 请求标头,例如 X-Forwarded-For。该答案改编自链接页面。
打开IIS 管理器。
在Connections窗格中选择站点或服务器,然后双击Logging。请注意,增强的日志记录仅适用于站点级别的日志记录 - 如果您在“连接”窗格中选择服务器,则W3C 日志记录字段对话框的“自定义字段”部分将被禁用。
在Log File下的Format字段中,选择W3C,然后单击Select Fields...。
在W3C 日志记录字段对话框中,单击添加字段...。请注意,增强的日志记录仅适用于站点级别的日志记录 - 如果您在“连接”窗格中选择了服务器,则添加字段...将被禁用。
在“添加自定义字段”对话框中,输入字段名称,
c-ip-original
以标识日志文件中的自定义字段。请注意,字段名称不能包含空格。在源类型列表中选择请求标头。
输入Source。
X-FORWARDED-FOR
_单击确定。
单击确定。
单击“操作”窗格中的“应用”以应用新配置。
配置自定义字段后,IIS 将创建新的文本日志文件,并在文件名后附加“_x”以指示该文件包含自定义字段。
请注意,从所有自定义字段收集的数据总大小不能超过 65,536 字节。如果总数超过 65,536 字节,则 IIS 将截断数据。