我们的 IIS7 服务器位于 nginx 反向代理后面。
反向代理正在发送带有访问者 IP 地址的标准“HTTP_X_FORWARDED_FOR”标头,但 IIS7 日志记录仅记录 nginx 服务器的 IP 地址(这很有意义,但这不是我想要的)。
我如何告诉 IIS7 记录“HTTP_X_FORWARDED_FOR”标头(或另外记录它)?
(注意:我是 Linux 管理员,不是 Windows 管理员,因此非常感谢明确的说明和链接)
答案1
此功能未内置于 IIS 中,但您可以安装一个模块来执行此功能。它称为 ARR 助手,但它适用于 IIS 前面的任何代理:
答案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)。此答案改编自链接页面。
打开IIS 管理器。
在連接窗格,然后双击日志记录。请注意,增强日志记录仅适用于站点级日志记录 - 如果您在連接窗格,然后自定义字段部分W3C 日志字段对话框已被禁用。
在里面格式下的田野日志档案, 选择W3C然后点击选择字段...。
在里面W3C 日志字段对话框中,点击添加字段...。请注意,增强日志记录仅适用于站点级日志记录 - 如果您在連接窗格,然后添加字段...被禁用。
在里面添加自定义字段对话框中,输入字段名称例如
c-ip-original
在日志文件中识别自定义字段。请注意,字段名称不能包含空格。选择请求标头在里面源类型列表。
输入
X-FORWARDED-FOR
来源。点击好的。
点击好的。
点击申请在里面操作窗格应用新配置。
配置自定义字段后,IIS 将创建新的文本日志文件,并在文件名后附加“_x”,以表明该文件包含自定义字段。
请注意,从所有自定义字段收集的数据总大小不能超过 65,536 字节。如果总数超过 65,536 字节,则 IIS 将截断数据。