F5 BIG-IP/nginx 后端IIS服务器获取客户端ip源地址

由于前端使用了F5,还有部分是nginx,对于后端的IIS服务器的请求日志源地址c-ip都是F5或者nginx服务器,对于客户端ip访问统计比较有影响。

可以使用F5官方提供的F5XForwardedFor.dll用于IIS获取客户端的源地址ip,此dll也支持前端为nginx。原理就是让iis支持对某个字段的捕捉,此字段记录的是客户端的源地址ip,是由前端F5/NGINX所定义和传递给iis的。

此字段为X-Forwarded-For,客户端访问群集地址时,由负载均衡前段插入到请求会话中转发到后端,后端web服务器若支持此字段的获取,则可获得客户端的源地址。

一、前端启用X-Forwarded-For

1、F5启用X-Forwarded-For方法:
1:Local Traffic-Profiles-Http-改"Insert XForwarded For"为Enable
2:Local Traffic-Virtual servers-点击需要改动的VS-将Type选项更改为Standard-将HTTP Profile 选项更改为Http

 

2、nginx启用X-Forwarded-For方法:

nginx.conf,在server中的location定义,类似如下:

location / {
              root   html;
              index  index.html;
              proxy_pass http://www.dearda.com;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          }

 

二、使IIS支持获取X-Forwarded-For请求字段

网站-属性-ISAPI筛选器-添加-选择 F5XForwardedFor.dll文件,筛选器名称可以填为 X-Forwarded-For。

确认此筛选器的状态为已加载,访问负载地址,再查看IIS日志,此时日志中的c-ip即为客户端的源地址ip。

 

 

 

F5XForwardedFor.dll官网下载

或者 点击这里直接下载

有32和64位,支持IIS6和IIS7