获取客户端源IP
- NLB将访问请求转发至后端服务器时,以下场景访问请求的源地址(即客户端地址)不会被替换,您可以登录后端服务器,执行 cat /var/log/nginx/access.log命令,查看访问日志,获取客户端的源IP地址。
- 在NLB将访问请求转发至后端服务器的过程中,以下场景访问请求的源地址(即客户端地址)会被替换,若后端服务器需要获取客户端真实的IP地址,就需要使用Proxy Protocol协议。
NLB与后端服务器使用Proxy Protocol的过程如下:
- NLB向后端服务器发送一个包含客户端的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协议,单击确定按钮,完成操作。
步骤二:启用后端服务的Proxy Protocol
- 执行以下命令,打开Nginx配置文件nginx.conf。
- vi /etc/nginx/nginx.conf
- 按i进入编辑模式,根据以下内容修改Proxy Protocol的配置。
- 按 Esc键退出编辑模式,然后输入:wq保存退出。
- 输入https://您的自有域名,显示后端服务器部署的应用页面,则说明Proxy Protocol协议配置完成。
步骤四:获取客户端源IP地址
- 执行 cat /var/log/nginx/access.log命令,查看访问日志,可以获取客户端的源IP地址。
- 携带IPv4客户端源IP地址的Proxy Protocol v2协议的报文头格式如下所示:
- 携带IPv6客户端源IP地址的Proxy Protocol v2协议的报文头格式如下所示:
最近更新时间:2026.08.06 16:54:00