- 文档首页
负载均衡
最佳实践
获取客户端源IP地址
四层监听器获取客户端源IP
四层监听器获取客户端源IP
本文将介绍四层监听器如何通过Proxy Protocol协议获取访问负载均衡服务的客户端源IP地址。
- CLB将访问请求转发至后端服务器时,以下场景访问请求的源地址(即客户端地址)不会被替换,您可以登录后端服务器,执行 cat /var/log/nginx/access.log命令,查看访问日志,获取客户端的源IP地址。
- 在CLB将访问请求转发至后端服务器的过程中,以下场景访问请求的源地址(即客户端地址)会被替换,若后端服务器需要获取客户端真实的IP地址,就需要使用Proxy Protocol协议。
说明
- 仅四层(TCP、UDP)监听器支持Proxy Protocol协议。
- 如果四层监听器接入了Web应用防火墙(Web Application Firewall,简称 WAF),客户端请求通过WAF时,WAF会对客户端IP地址进行转换,从而导致后端服务器无法直接获取客户端的源IP地址。
此时,您可以参考通过负载均衡(CLB)4 层监听器接入云WAF实例配置HTTP Header字段,使WAF携带客户端源IP传递给后端服务器。 CLB与后端服务器使用Proxy Protocol的过程如下:
- CLB向后端服务器发送一个包含客户端的IP地址、端口号的Proxy Protocol报文。
- 后端服务器接收并解析Proxy Protocol报文,获取客户端的客户端的IP地址、端口号。
- 启用Proxy Protocol协议功能前,请确保后端服务器部署的服务支持Proxy Protocol v2协议。
nginx 1.13.11及以上版本支持Proxy Protocol v2协议,本文以Nginx1.20.1为例进行介绍。
- 选择监听器页签,单击目标监听器右侧的编辑监听器按钮,开启Proxy Protocol协议的开关。
- 连续三次单击下一步按钮,然后单击确定按钮,完成操作。
步骤二:启用后端服务的Proxy Protocol
- 执行以下命令,打开Nginx配置文件nginx.conf。
- vi /etc/nginx/nginx.conf
- 按i进入编辑模式,根据以下内容配置Proxy Protocol v2协议获取客户端源地址的功能。
- 按 Esc键退出编辑模式,然后输入:wq保存退出。
- 输入http://您的自有域名,显示后端服务器部署的应用页面,则说明Proxy Protocol协议配置完成。
- 执行 cat /var/log/nginx/access.log命令,查看访问日志,可以获取客户端的源IP地址。
- 携带IPv4客户端源IP地址的Proxy Protocol v2协议的报文头格式如下所示:
- 携带IPv6客户端源IP地址的Proxy Protocol v2协议的报文头格式如下所示:
最近更新时间:2026.08.06 14:30:31