后端服务器通过alb获取客户端真实ip
后端服务器通过ALB获取客户端真实IP_负载均衡(SLB)-阿里云帮助中心
- URL: 原文
- Added At: 2025-05-30 04:16:57
- Link To Text
TL;DR
本文介绍了如何通过阿里云应用型负载均衡ALB获取客户端真实IP。通过检查ALB监听配置,并配置后端服务器(Nginx, Apache, IIS)以记录HTTP头部的X-Forwarded-For字段,即可获取客户端IP。文章还提供了详细的操作步骤、常见问题解答(如100开头的IP访问、与其他产品配合)以及相关安全建议,并附有相关文档链接。
Summary
好的,这是根据你提供的文本内容生成的Markdown列表格式总结:
-
文章主题:介绍如何通过阿里云应用型负载均衡ALB获取客户端真实IP。
-
获取方法:通过HTTP头部的X-Forwarded-For字段获取客户端真实IP。
- X-Forwarded-For格式:
X-Forwarded-For: <客户端真实IP, 代理服务器1-IP, 代理服务器2-IP, ...>
获取的第一个IP地址为客户端真实IP。
- 操作步骤:
- 步骤一:检查ALB监听配置
- 登录ALB控制台,选择地域和目标实例。
- 在监听页签,确认已开启通过X-Forwarded-For头字段获取客户端IP功能(默认开启)。
- 步骤二:配置后端服务器:根据服务器类型进行配置,包含Nginx, Apache和IIS三种。
- Nginx配置:
- 检查是否安装http_realip_module模块 (Nginx 1.0.4+ 支持)。
- 修改Nginx配置文件,确保记录X-Forwarded-For的值。
http { log_format main '$remote_addr- $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; }
- 重新加载Nginx配置文件。
- Apache配置:
- 检查是否安装remoteip_module模块 (Apache 2.4.0+ 支持)。
- 修改Apache配置文件,增加%{X-Forwarded-For}i,用于记录X-Forwarded-For信息。 ```shell
LogFormat "%{X-Forwarded-For}i %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%{X-Forwarded-For}i %h %l %u %t \"%r\" %>s %b" common ```
- 重启Apache服务。
- IIS配置:
- 下载并解压F5XForwardedFor文件。
- 将F5XFFHttpModule.dll和F5XFFHttpModule.ini拷贝到IIS进程有读取权限的目录。
- 在IIS管理器中注册模块。
- 配置IIS日志,记录X-Forwarded-For字段信息。
- 重启IIS服务器。
- Nginx配置:
- 步骤三:验证配置:通过查看对应服务器的日志文件进行验证。
- Nginx日志:检查
/var/log/nginx/access.log
,$http_x_forwarded_for
字段的第一个IP地址应为客户端真实IP。 - Apache日志:检查
/var/log/httpd/access_log
,%{X-Forwarded-For}i
字段的第一个IP地址应为客户端真实IP。 - IIS日志:在IIS日志文件路径中,检查
X-Forwarded-For
字段对应的第一个IP地址是否为客户端真实IP。
- Nginx日志:检查
- 步骤一:检查ALB监听配置
- 常见问题:
- 100开头的IP访问:负载均衡系统进行健康检查,IP地址段为100.64.0.0/10,需要配置安全组放行规则。
- 与WAF/CDN/GA配合:这些产品默认透传X-Forwarded-For字段,无需额外配置。可以通过在其他产品中指定header字段记录客户端真实IP避免XFF伪造。
- 安全性加固:验证和过滤 XFF 头部,使用防火墙和访问控制列表,使用SSL/TLS加密。
- ACK场景:在ACK集群中使用负载均衡时,获取方式相同,具体操作有部分差异,请参考相关文档。
- 相关文档:
- CLB七层监听:后端服务器通过 CLB 七层监听获取客户端真实 IP。
- CLB四层监听:后端服务器通过 CLB 四层监听获取客户端真实 IP。
- NLB:通过 NLB 获取客户端真实 IP。