如何最好地configurationIIS7日志logging来捕获“HTTP_X_FORWARDED_FOR”头

我们有IIS7服务器坐在一个nginx反向代理之后。

反向代理发送标准的“HTTP_X_FORWARDED_FOR”头与访客IP地址,但IIS7日志logging只loggingnginx服务器的IP地址(这是有道理的,但它不是我想要的)。

我怎样才能告诉IIS7,而不是logging“HTTP_X_FORWARDED_FOR”头(或另外logging)?

(注:我是一个Linuxpipe理员,而不是一个窗口,所以明确的指示和链接真诚赞赏)

这不是内置于IIS,但有一个模块可以安装,将执行此function。 它被称为ARR帮助程序,但它将适用于IIS前面的任何代理:

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

现在有一个IIS7模块,可以让你logging自定义标题。

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

虽然这个问题是用iis-7标记的,但是在X-Forwarded-For和IIS上search时,这是最受欢迎的,所以我想我会继续为IIS 8.5提供这些信息。

IIS 8.5和更高版本

IIS 8.5引入了增强日志loggingfunction,可轻松让pipe理员loggingHTTP请求标头,如X-Forwarded-For。 这个答案是从链接页面改编的。

  1. 打开IISpipe理器

  2. 在“ 连接”窗格中select站点或服务器,然后双击“ 日志logging” 。 请注意,增强日志logging仅适用于站点级日志logging – 如果您在“ 连接”窗格中select服务器,则“ W3C日志logging字段”对话框的“ 自定义字段”部分将被禁用。

  3. 在“ 日志文件”下的“ 格式”字段中,select“ W3C” ,然后单击“ select字段…”

  4. 在“ W3C日志logging字段”对话框中,单击“ 添加字段…” 。 请注意,增强日志logging仅适用于站点级日志logging – 如果您在“ 连接”窗格中select了服务器,则“ 添加字段…”将被禁用。

  5. 在“ 添加自定义字段”对话框中,input字段名称,例如c-ip-original以标识日志文件中的自定义字段。 请注意,字段名称不能包含空格。

  6. 源types列表中select请求标题

  7. Source中inputX-FORWARDED-FOR

  8. 点击OK

  9. 点击OK

  10. 在“ 操作”窗格中单击“ 应用 ”以应用新configuration。

一旦configuration了自定义字段,IIS将创build新的文本日志文件,在文件名后附加“_x”以指示该文件包含自定义字段。

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