修改Nginx配置将知道创宇云防御传送的访客真实IP地址标识重命名的方法

一、为什么需要重命名访客真实IP标识字段

知道创宇云防御平台采用反向代理方式部署运作,使用云防御后用户请求均由云防御节点转发至源站,则源站服务器默认获取的将是云防御节点IP(非访客真实IP),如需获取访客的真实IP地址,可参考《使用知道创宇云防御获取访客真实IP的方法》配置获取。但是在某些场景下,如业务系统原先配置的IP字段名称可能是“x-client”,若修改信息涉及的代码较多,网站管理员可以通过配置Nginx对知道创宇云防御传递的值进行重命名。

二、操作说明

根据网站部署架构,这里分别介绍一下Nginx+Fastcgi_Pass、Nginx+Proxy_Pass两种架构的重命名方式。

1)Nginx+Fastcgi架构

Nginx+Fastcgi架构通常是在cgi的Fastcgi_Pass下添加一行,添加的内容为:

fastcgi_param  x-client  $HTTP_X_CONNECTING_IP;

如下图所示:

2)Nginx+Proxy_Pass架构

Nginx+Proxy_Pass架构是在相应的Server区域添加一行, 添加的内容为:

proxy_set_header x-client $http_x_connecting_ip;

如下图所示:

三、测试

这里以Nginx+Fastcgi架构重命名为例,调整后得到的结果如图所示(截图是使用phpinfo的方式测试)。

四、注意事项

上述配置中“x-client”为举例说明,在实际应用中理论上可以是任意字符串,使用过程中如果name包含下划线,需再增加一行“underscores_in_headers  on;”,否则name中的下划线默认会被忽略。