使用带负载均衡器的PHP获取客户端IP(X-Forwarded-For Header)

时间:2015-10-26 15:46:21

标签: php http-headers load-balancing clientip

以下是我的情况:我的PHP网站设置为<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="16dp"> <TextView android:id="@+id/workshopTitle1" android:layout_width="300dp" android:layout_height="wrap_content" android:text="Hoe ondersteunt het OSB bij plannen/monitoren van CE's T&amp;R" android:textSize="14sp" android:textColor="#000"/> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_alignParentRight="true" android:src="@drawable/ic_chevron_right" android:layout_centerVertical="true"/> </RelativeLayout> 和F5负载均衡器。我需要检索正在访问服务器的客户端IP地址。

正如在此方案中所预期的那样,IIS 7返回负载均衡器的IP地址,而不是实际的客户端PC。通常,我知道$_SERVER['REMOTE_ADDR']将是返回实际客户端PC IP地址的变量,但无论出于何种原因,它都是空的。换句话说,返回$_SERVER['HTTP_X_FORWARDED_FOR']标题不会返回任何内容 - 我该怎么做?

1 个答案:

答案 0 :(得分:0)

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

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

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

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

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

注意:X-Forwarded-For标头仅适用于具有SSL卸载功能的HTTP和HTTPS通信。

全局设置其他X-Forwarded-For标头

在LoadMaster用户界面(UI)的主菜单中,选择“系统配置”>“其他选项”>“ L7配置”>“其他L7标头”>“ X-Forwarded-For”。

设置每个虚拟服务的其他X-Forwarded-For标头

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

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

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

导航到将使用X-Forwarded-For日志记录的站点,然后单击“日志记录和打开功能”。

点击选择字段...选项

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

按如下所示配置字段:

字段名称:X-Forwarded-For

源类型:请求标头

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

单击确定两次。

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

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

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

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