文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>如何配置NetScaler使得Apache能够记录ClientIP地..

如何配置NetScaler使得Apache能够记录ClientIP地..

时间:2010-12-20  来源:xing_jia

本人英语水平有限,如有歧义,请参见原文:http://support.citrix.com/article/CTX109350

说明:

本文档包含了关于配置Apache Web server 基于NetScaler设备指定的HTTP Header值,去记录client IP地址的方法

需求:

本例中,假设网络访问结构如下:

 

在这个拓扑结构中,Apache Server被安装在一个或多个NetScaler的后面,所有访问Apache的流量将会在通过NetScaler后才能到达。

备注:

·  本图描述了一个双臂结构的配置,不管怎样,本文其实同样也适合于单臂结构的配置

·  本文中假设NetScaler给Apache服务组正确配置了一个VIP,并通过已解析好的域名来访问

·  本功能模块在Apache V1.3和2.0上测试通过

·  本例中,10.2.3.4即为VIP地址

背景:

·    在上图描述的情境中,在网络层,发到WebServer的HTTP请求是从NetScaler的MIP地址发起的,于是其请求包中包含的原IP地址被设置为了MIP,即10.5.6.7。

·    在多数情形下,WebServer通过NetScaler的响应,也会按照源请求IP地址来将响应返回给客户端。这样,WebServer就被很好的隐藏在了内部,使其对真正的客户端不可见,客户端只能通过VIP,即10.2.3.4来访问WebServer。

·    但这同时也就造成了WebServer的log记录中,将所有的客户端地址就记录为NetScaler的MIP,即所有客户端的地址都是10.5.6.7。如果我们想基于客户端IP地址,来做一些关于账户登录信息统计、登录IP安全限制等任务时,就造成了麻烦和影响。

  这就是我们要解决的问题

解决方法:

·  配置NetScaler,开启自定义HTTP Header Inserted功能,在转发的HTTP Header中插入标识

·  配置Apache,按照预定标识,将ClientIP记录进日志

详细配置:

1.配置NetScaler,对相应的Service或者Service Group开启自定义HTTP Header Inserted功能,在转发的HTTP Header中插入标识,本例中我们将标识定为“Client-IP”

命令行方式:

> set service <Service_Name> -cip ENABLED Client-IP

图形界面方式:

 

下面是一个NetScaler配置好以后,转发给Apache的请求包内容,自定义Header已经包含其中:

GET / HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Client-IP: 10.60.1.166

2.配置Apache的Log输出,使其按照传输过来的HTTP Header中Client-IP的信息来记录访问日志

·  打开/opt/apache2/conf/httpd.conf文件,修改前最好备份一下

·  添加如下信息:

LogFormat "%{Client-IP}i %l %u %t \"%r\" %>s %b \"%{Referer}i\"\"%{User-Agent}i\"" ns-access
CustomLog <Lof_File_Path>/<Log_File_Name> ns-access

注意: 如过配置文件中已经存在该行,则你可以按需要对该行进行就该,日志文件的后续记录也将随之改变。如果是新添加此行,则将按照新格式创建一个新的日志文件

·  保存退出

·  重新启动Apache服务器

# /opt/apache2/bin/httpd –k restart

·  在所有需要的Apache服务器上重复执行以上配置

更多信息:

完整的http.conf配置和详细信息,请参考Apache HTTP server documentation,本例情形只是个例子

另外,如果想要使用更复杂的基于ClientIP的应用,请参考Custom Header Module for Apache 2.x to Process Client IP Address

相关阅读 更多 +
排行榜 更多 +
我的武侠梦手游下载

我的武侠梦手游下载

角色扮演 下载
快乐连连看下载免费版

快乐连连看下载免费版

休闲益智 下载
泛滥死者布道手机版下载

泛滥死者布道手机版下载

角色扮演 下载