全球加速 GA-GA获取客户端源IP:通过Proxy Protocol协议获取客户端源IP

时间:2025-06-06 17:51:10

通过Proxy Protocol协议获取客户端源IP

本节以终端节点类型为EIP,后端服务使用Nginx为例,介绍如何开启Proxy Protocol功能,并查看已获取的客户端源IP。

  1. 提交工单,开启Proxy Protocol功能。
  2. 在后端服务器上开启Proxy Protocol功能。

    Nginx的http{}和stream{}模块均可以接收Proxy Protocol,在http{}模块或stream{}模块中添加相应处理Proxy Protocol的端口。

    http {
        #...
        server {
            listen 8080 proxy_protocol;    #在8080端口,开启解析proxy protocol。
            #...
        }
    }
    
    stream {
        #...
        server {
            listen 8090 proxy_protocol;    #在8090端口,开启解析proxy protocol。
            #...
        }
    }
  3. 获取客户端源IP。

    开启Proxy Protocol后,Nginx会将客户端源IP保存在变量proxy_protocol_addr中,可以将其保存在日志中。

    http {
        #...
        log_format  main  '[$time_local] $proxy_protocol_addr : $proxy_protocol_port $host "$request" '
        '$status $body_bytes_sent "$http_referer" '
        '"$http_user_agent" "$http_x_forwarded_for"';
    }
    
    stream {
        #...
        log_format  main  '[$time_local] $proxy_protocol_addr : $proxy_protocol_port $host "$request" '
        '$status $body_bytes_sent "$http_referer" '
        '"$http_user_agent" "$http_x_forwarded_for"';
    }
  4. 查看日志,获取客户端源IP。

support.huaweicloud.com/bestpractice-ga/ga_04_0006.html