1004
阿里云
获取来访真实IP的方法__最佳实践_负载均衡-阿里云
负载均衡服务通过以下方式获取来访的真实 IP 地址:
- 4 层负载均衡(TCP协议)服务可以直接在后端 ECS 上获取来访者真实 IP 地址,无需进行额外的配置。
- 7 层负载均衡(HTTP协议)服务需要对应用服务器进行配置,然后使用 X-Forwarded-For 的方式获取访问者真实 IP。
本文针对 7 层(HTTP协议)负载均衡服务,介绍了如何配置以下常见应用服务器,从而可获取来访者真实 IP。
- IIS 6
- IIS 7
- Apache
- Nginx
IIS 6 配置方案
配置 IIS 6 服务器,通过 IIS 6 日志获取来访者真实 IP 地址,您需要完成如下操作:
- 下载 F5XForwardedFor.dll 插件,下载地址为 下载 F5XForwardedFor 插件。
- 安装 F5XForwardedFor.dll 插件:
- 根据自己的服务器操作系统版本,将 x86Release 或者 x64Release 目录下的 F5XForwardedFor.dll 文件拷贝到某个目录,这里假设为 C:ISAPIFilters,确保 IIS 进程对该目录有读取权限。
- 打开 IIS 管理器,找到当前开启的网站。
- 右键单击该网站,然后单击 属性,打开属性页。
- 在属性页上,打开 “ISAPI 筛选器”,然后单击 添加 按钮,打开 “添加窗口”。
- 在添加窗口中,筛选器名称 填写 “F5XForwardedFor”,可执行文件 填写F5XForwardedFor.dll 的完整路径,然后点击 确定。
- 重启 IIS 服务器,等待配置生效。
IIS 7 配置方案
配置 IIS 7 服务器,通过 F5XForwardedFor 模块获取来访者真实IP,您需要完成如下操作:
- 下载插件 F5XForwardedFor 模块,下载地址为 F5XForwardedFor 下载地址。
安装插件 F5XForwardedFor 模块:
- 根据服务器操作系统版本将 x86Release 或者 x64Release 目录下的 F5XFFHttpModule.dll 文件和 F5XFFHttpModule.ini 文件拷贝到某个目录,这里假设为 C:F5XForwardedFor,确保 IIS 进程对该目录有读取权限。
打开 IIS 管理器,双击 模块。
在 模块 窗口,单击 配置本机模块。
在弹出框中单击 注册。
添加下载的 DLL 文件,以下图片提供了两个示例。
添加完成后,在 “配置本机模块” 窗口的列表中勾选添加的模块,并单击 确定。
在“ISAPI 和 CGI 限制”窗口中,添加这两个 DLL,并将 限制 改为 “允许”:
重启 IIS 服务器,等待配置生效。
Apache 配置方案
运行以下命令,安装 Apache 的第三方模块 mod_rpaf:
wget https://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
tar zxvf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
/alidata/server/httpd/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
修改 Apache 的配置文件 /alidata/server/httpd/conf/httpd.conf,在最末尾添加以下配置信息:
LoadModule rpaf_module modules/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname On
RPAFproxy_ips <IP地址>
RPAFheader X-Forwarded-For
注意:
RPAFproxy_ips <IP地址>
这行中,IP 地址不是负载均衡提供的公网 IP,您可以查看 Apache 日志确定具体 IP 地址,通常会有2个,都需要提供。以下代码提供了一个具体示例。LoadModule rpaf_module modules/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 10.242.230.65 10.242.230.131
RPAFheader X-Forwarded-For
运行以下命令重启 Apache:
/alidata/server/httpd/bin/apachectl restart
Nginx配置方案
配置 Nginx 服务器,通过使用 http_realip_module 获取来访真实 IP,您需要完成以下操作:
加装
--with-http_realip_module
:wget https://soft.phpwind.me/top/nginx-1.0.12.tar.gz
tar zxvf nginx-1.0.12.tar.gz
cd nginx-1.0.12
./configure --user=www --group=www --prefix=/alidata/server/nginx --with-http_stub_status_module --without-http-cache --with-http_ssl_module --with-http_realip_module
make
make install
kill -USR2 `cat /alidata/server/nginx/logs/nginx.pid`
kill -QUIT `cat /alidata/server/nginx/logs/ nginx.pid.oldbin`
打开 nginx.conf 配置文件:
vi /alidata/server/nginx/conf/nginx.conf
在以下配置信息后添加新的配置字段和信息:
fastcgi connect_timeout 300;
fastcgi send_timeout 300;
fastcgi read_timeout 300;
fastcgi buffer_size 64k;
fastcgi buffers 4 64k;
fastcgi busy_buffers_size 128k;
fastcgi temp_file_write_size 128k;
需要添加的配置字段和信息为:
set_real_ip_from <IP 地址>;
real_ip_header X-Forwarded-For;
注意:
set_real_ip_from <IP 地址>
中的 IP 地址不是负载均衡提供的公网 IP,您需要查看 Nginx 日志确定具体 IP 地址,如果有多个 IP 地址,都需要提供。重启 Nginx 服务器:
/alidata/server/nginx/sbin/nginx -s reload
最后更新:2016-12-14 16:21:38
上一篇:
健康检查异常的排查思路__最佳实践_负载均衡-阿里云
下一篇:
配置不同会话保持规则__最佳实践_负载均衡-阿里云
Condition__DataType_API 参考_表格存储-阿里云
获取联系人模板编号__附录_API文档_域名-阿里云
ImageResultsRequest__SDK·接口介绍_内容检测API文档_阿里绿网-阿里云
云小蜜首次对外开放,阿里云的智能客服机器人有何新特点?
推荐码的使用规则___推荐码_代金券及推荐码_财务-阿里云
产品概述__产品简介_消息服务-阿里云
7.4 查询SQL优化__第七章 性能优化和诊断_使用手册_分析型数据库-阿里云
哪些云服务支持RAM?__常见问题_产品使用问题_访问控制-阿里云
恢复备份集到实例__备份恢复_API 参考_云数据库 RDS 版-阿里云
步骤4:验证配置生效__快速入门(网站业务)_DDoS 高防IP-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云