0

这是我的情况:我设置了一个 PHP 网站IIS 7和一个 F5 负载均衡器。我需要检索正在访问服务器的客户端 IP 地址。

正如在这种情况下所预期的那样,$_SERVER['REMOTE_ADDR']返回负载均衡器的 IP 地址,而不是实际的客户端 PC。通常,我知道这$_SERVER['HTTP_X_FORWARDED_FOR']将是返回实际客户端 PC IP 地址的变量,但无论出于何种原因,这里都是空的。换句话说,返回X-Forwarded-For标头什么都不返回——我在这里做什么?

4

1 回答 1

0

如何添加 X-Forwarded-For 标头并配置 IIS 日志记录

X-Forwarded-For (XFF) HTTP 标头字段是一种标准方法,用于识别通过 Kemp LoadMaster 或任何代理连接到服务器的客户端的原始 IP 地址。

Kemp LoadMaster 允许我们在使用不透明的 Layer7 时通过插入 X-Forwarded-For 标头将客户端的 IP 地址提供给目标 Real Server。

插入 X-Forwarded-For 标头允许 Real Server 在其日志中记录客户端源 IP 地址。

使用 LoadMaster 添加 X-Forwarded-For 标头可以作为全局设置或作为每个虚拟服务设置来完成。有关如何添加标题的步骤,请参阅下面的相关部分。

注意:添加 X-Forwarded-For 标头仅适用于具有 SSL 卸载的 HTTP 和 HTTPS 流量。

全局设置附加的 X-Forwarded-For 标头

在 LoadMaster 用户界面 (UI) 的主菜单中,选择 System Configuration > Miscellaneous Options > L7 Configuration > Additional L7 Header > X-Forwarded-For。

为每个虚拟服务设置额外的 X-Forwarded-For 标头

在 LoadMaster WUI 的主菜单中,选择虚拟服务 > 查看/修改服务。单击相关虚拟服务上的修改。展开高级属性部分。在添加 HTTP 标头下拉列表中,选择 X-Forwarded-For (No Via) 或 X-Forwarded-For (+ Via)。

在 Microsoft Server 2012 上配置自定义 IIS 日志记录字段

在 IIS 8.5 及更高版本中,可以添加自定义日志字段来记录 X-Forwarded-For 标头,以在不使用透明度时记录客户端的源 IP 地址。

导航到将使用 X-Forwarded-For 日志记录的站点,然后单击 Logging and Open Feature。

单击选择字段... 选项

单击添加字段... 选项。

如下所示配置字段:

字段名称:X-Forwarded-For

源类型:请求标头

源名称:X-Forwarded-For(语法重要)

单击确定两次。

单击日志记录选项页面右上角的应用。

现在,通过导航到虚拟服务并点击几次刷新来生成一些日志流量。

转到高级日志文件的位置并打开新创建的日志文件。

默认位置是 C:\inetpub\logs\LogFiles\W3SVC1。

于 2020-10-09T12:21:10.283 回答