如何最佳配置 IIS7 日志记录以捕获“HTTP_X_FORWARDED_FOR”标头

如何最佳配置 IIS7 日志记录以捕获“HTTP_X_FORWARDED_FOR”标头

我们的 IIS7 服务器位于 nginx 反向代理后面。

反向代理正在发送带有访问者 IP 地址的标准“HTTP_X_FORWARDED_FOR”标头,但 IIS7 日志记录仅记录 nginx 服务器的 IP 地址(这很有意义,但这不是我想要的)。

我如何告诉 IIS7 记录“HTTP_X_FORWARDED_FOR”标头(或另外记录它)?

(注意:我是 Linux 管理员,不是 Windows 管理员,因此非常感谢明确的说明和链接)

答案1

此功能未内置于 IIS 中,但您可以安装一个模块来执行此功能。它称为 ARR 助手,但它适用于 IIS 前面的任何代理:

http://blogs.iis.net/anilr/archive/2009/03/03/client-ip-not-logged-on-content-server-when-using-arr.aspx

答案2

现在有一个 IIS7 模块可以让您记录自定义标题。

如何: http://learn.iis.net/page.aspx/579/advanced-logging-for-iis-70---custom-logging/

答案3

虽然该问题带有 iis-7 标签,但这是在 X-Forwarded-For 和 IIS 上搜索时最热门的问题,因此我想我会继续为 IIS 8.5 提供此信息。

IIS 8.5 及更高版本

IIS 8.5 引入了增强日志记录此功能可让管理员轻松记录 HTTP 请求标头(例如 X-Forwarded-For)。此答案改编自链接页面。

  1. 打开IIS 管理器

  2. 連接窗格,然后双击日志记录。请注意,增强日志记录仅适用于站点级日志记录 - 如果您在連接窗格,然后自定义字段部分W3C 日志字段对话框已被禁用。

  3. 在里面格式下的田野日志档案, 选择W3C然后点击选择字段...

  4. 在里面W3C 日志字段对话框中,点击添加字段...。请注意,增强日志记录仅适用于站点级日志记录 - 如果您在連接窗格,然后添加字段...被禁用。

  5. 在里面添加自定义字段对话框中,输入字段名称例如c-ip-original在日志文件中识别自定义字段。请注意,字段名称不能包含空格。

  6. 选择请求标头在里面源类型列表。

  7. 输入X-FORWARDED-FOR来源

  8. 点击好的

  9. 点击好的

  10. 点击申请在里面操作窗格应用新配置。

配置自定义字段后,IIS 将创建新的文本日志文件,并在文件名后附加“_x”,以表明该文件包含自定义字段。

请注意,从所有自定义字段收集的数据总大小不能超过 65,536 字节。如果总数超过 65,536 字节,则 IIS 将截断数据。

相关内容