tencent cloud

负载均衡

动态与公告
产品动态
产品公告
产品简介
产品概述
产品优势
使用场景
技术原理
产品对比
使用约束
Service Regions and Service Providers
购买指南
计费概述
计费项
CLB 资源包
购买方式
欠费说明
产品属性选择
快速入门
域名化负载均衡快速入门
负载均衡快速入门
IPv6 负载均衡快速入门
CentOS 下部署 Nginx
CentOS 下部署 Java Web
操作指南
负载均衡实例
负载均衡监听器
后端服务器
健康检查
证书管理
日志管理
监控告警
访问管理
传统型负载均衡
实践教程
部署证书到负载均衡(双向认证)
负载均衡开启 Gzip 配置及检测方法说明
HTTPS 转发配置入门指南
如何获取客户端真实 IP
负载均衡配置监控告警最佳实践
产品高可用说明
均衡算法选择与权重配置示例
配置 WAF 对负载均衡的监听域名进行 Web 安全防护
配置 IAP 对负载均衡的域名和路径的web访问进行身份验证
配置 IAP 对负载均衡的域名和路径的程序化访问进行身份验证
运维指南
客户端 timewait 过多解决方案
负载均衡HTTPS服务性能测试
压力测试常见问题
CLB 证书操作权限问题
故障处理
UDP 健康检查出现异常
API 文档
History
Introduction
API Category
Instance APIs
Listener APIs
Backend Service APIs
Target Group APIs
Redirection APIs
Other APIs
Classic CLB APIs
Load Balancing APIs
Making API Requests
Data Types
Error Codes
CLB API 2017
常见问题
计费相关
负载均衡配置相关
健康检查异常排查
HTTPS 相关
WS/WSS 协议支持相关
HTTP/2 协议支持相关
默认域名阻断提示
服务等级协议
联系我们
词汇表
文档负载均衡实践教程如何获取客户端真实 IPIPv4 CLB 场景下获取客户端真实 IP

IPv4 CLB 场景下获取客户端真实 IP

PDF
聚焦模式
字号
最后更新时间: 2024-01-04 17:08:07

负载均衡获取客户端真实 IP 的说明

CLB 的四层(TCP/UDP/TCP SSL)和七层(HTTP/HTTPS)服务均支持直接在后端 CVM 上获取客户端真实 IP,无需进行额外配置。
四层负载均衡,在后端 CVM 上获取的源 IP 即为客户端 IP。
七层负载均衡,在 CLB 与后端服务之间使用短连接时,在后端 CVM 上获取的源 IP 即为客户端 IP;在 CLB 与后端服务之间使用长连接时,CLB 不再透传源 IP,您可以通过 X-Forwarded-For 或 remote_addr 字段来直接获取客户端 IP。七层负载均衡的访问日志请参见 配置访问日志到 CLS
说明:
对于四层负载均衡来说,无需在后端 CVM 上做额外配置即可获取客户端 IP。
对于其他做了 SNAT 的七层负载均衡服务,您需要在后端 CVM 上配置,然后使用 X-Forwarded-For 的方式获取客户端的真实 IP。
下文将对常见的应用服务器配置方案进行介绍。

IIS 6 配置方案

1. 下载与安装插件 F5XForwardedFor 模块,根据自己的服务器操作系统版本将x86\\Release或者x64\\Release目录下的F5XForwardedFor.dll拷贝到某个目录,这里假设为C:\\ISAPIFilters,同时确保对 IIS 进程对该目录有读取权限。
2. 打开 IIS 管理器,找到当前开启的网站,在该网站上右键选择属性,打开属性页。
3. 在属性页切换至 ISAPI 筛选器,单击添加,弹出添加窗口。
4. 在添加窗口“筛选器名称”中填写“F5XForwardedFor”,“可执行文件”填写F5XForwardedFor.dll的完整路径,单击确定
5. 重启 IIS 服务器,等待配置生效。

IIS 7 配置方案

1. 下载与安装插件 F5XForwardedFor 模块,根据自己的服务器操作系统版本将x86\\Release或者x64\\Release目录下的F5XFFHttpModule.dllF5XFFHttpModule.ini拷贝到某个目录,这里假设为C:\\x_forwarded_for,确保对 IIS 进程对该目录有读取权限。
2. 选择 IIS 服务器,双击模块功能。

3. 单击配置本机模块

4. 在弹出框中单击注册

5. 添加下载的 DLL 文件,如下图所示:

6. 添加完成后,勾选并单击确定

7. 在 “ISAPI 和 CGI 限制”添加如上两个 DLL ,并将限制设置为允许。

8. 重启 IIS 服务器,等待配置生效。

Apache 配置方案

1. 安装 Apache 第三方模块“mod_rpaf” 。
wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
tar zxvf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
/usr/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
2. 修改 Apache 配置/etc/httpd/conf/httpd.conf,在最末尾添加:
LoadModule rpaf_module modules/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname On
RPAFproxy_ips IP地址(这个 IP 地址首先不是负载均衡提供的公网 IP,具体 IP 多少可以查看 Apache 日志,通常会有2个 都要写上)
RPAFheader X-Forwarded-For
3. 添加完成后,重启 Apache。
/usr/sbin/apachectl restart

Nginx 配置方案

1. Nginx 作为服务器时,获取客户端真实 IP 使用 http_realip_module,默认安装的 Nginx 未安装此模块,需要重新编译 Nginx 增加--with-http_realip_module
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
wget http://nginx.org/download/nginx-1.17.0.tar.gz
tar zxvf nginx-1.17.0.tar.gz
cd nginx-1.17.0
./configure --prefix=/path/server/nginx --with-http_stub_status_module --without-http-cache --with-http_ssl_module --with-http_realip_module
make
make install
2. 修改 nginx.conf 文件。
vi /etc/nginx/nginx.conf
修改如下部分的配置字段和信息:
说明
其中 xx.xx.xx.xx 需要修改为上一级代理服务器 IP 或者 IP 段。
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 xx.xx.xx.xx;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
3. 重启 Nginx。
service nginx restart
4. 查看 Nginx 的访问日志,您可以获取客户端的真实 IP。
cat /path/server/nginx/logs/access.log


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈