- 文档首页
负载均衡
最佳实践
后端服务器获取客户端源IP
后端服务器获取客户端源IP
本文为您介绍后端服务器如何获取访问 ALB 的客户端源 IP 地址。
基本原理
- ALB 的监听器(HTTP监听器、HTTPS监听器)通过配置后端服务器,可以使用 X-Forwarded-For 的方式获取客户端的真实 IP 地址。
- 真实的客户端 IP 会被 ALB 放在 HTTP 头部的 X-Forwarded-For 字段,字段中的第一个地址就是客户端真实 IP 。具体格式如下:X-Forwarded-For: 来访者真实IP, 代理服务器1-IP, 代理服务器2-IP, ...
配置步骤
操作系统
本文以 CentOS 7.6 为例,您也可以按需替换为 CentOS 7.9、veLinux 1.0(CentOS兼容版)等CentOS 7系镜像。
Web应用服务器类型
请您根据后端服务器配置的 Web应用服务器类型选择适当的配置步骤。本文为您介绍以下两种Web服务器:
- Nginx:高性能的 HTTP 和反向代理的轻量级 Web服务器,本文以 Nginx 1.17.0 为例。
- Apache:性能稳定的 Web网页服务器,本文以 Apache 2.4.6 为例。
配置Nginx服务器
- 依次执行以下命令,安装http_realip_module。
- yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
- wget https://nginx.org/download/nginx-1.17.0.tar.gz
- tar zxvf nginx-1.17.0.tar.gz
- ./configure --prefix=/path/server/nginx --with-http_stub_status_module --without-http-cache --with-http_ssl_module --with-http_realip_module
- vi /path/server/nginx/conf/nginx.conf
- 按i进入编辑模式,在以下 server 配置信息后添加新的配置字段和信息。
说明
- 您可以将代理服务器的网段添加到 set_real_ip_from <IP_cidr>,以便获取代理服务器的IP地址。例如,添加 ALB 的IP地址段(100.64.0.0/10是 ALB的保留地址,其他用户无法分配到该网段内,不会存在安全风险)。
- /path/server/nginx/sbin/nginx
- 执行以下命令,查看 Nginx 的访问日志,您可以获取真实的客户端 IP。
- cat /path/server/nginx/logs/access.log
配置Apache服务器
- 执行以下命令,打开 httpd.conf 文件。
- vi /etc/httpd/conf/httpd.conf
- 按i进入编辑模式,修改日志格式并在文件末尾添加相关配置信息。
说明
- 您可以将代理服务器的网段添加到 RemoteIPInternalProxy <IP_cidr>,以便获取代理服务器的IP地址。例如,添加 ALB 的 IP 地址段(100.64.0.0/10是 ALB 的保留地址,其他用户无法分配到该网段内,不会存在安全风险)。
- 执行以下命令,查看 Apache 的访问日志,您可以获取真实的客户端 IP。
- cat /etc/httpd/logs/access_log
最近更新时间:2026.08.06 14:30:31