MENU

如何在 ELB 访问日志中捕获客户端 IP 地址?

August 15, 2019 • Read: 2851 • aws亚马逊

问题

我正在对我的 Web 服务器使用 Elastic Load Balancing,我可以在访问日志中看到我的负载均衡器的 IP 地址。如何改为捕获客户端 IP 地址?,我的环境是nginx

具有 HTTP/HTTPS 侦听器的 Application Load Balancers 和 Classic Load Balancer (NGINX)

  1. 在首选文本编辑器中打开 NGINX 配置文件。典型位置是 /etc/nginx/nginx.conf
  2. 在 LogFormat 部分中,添加 $http_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"';
        access_log  /var/log/nginx/access.log  main;
        ...
    }
    
  3. 保存所做更改。
  4. 如下所示重新加载 NGINX 配置文件。请务必使用适当的配置文件路径。

    nginx -s reload

  5. 打开 NGINX 访问日志。位置因配置而异。
  6. 验证客户端 IP 地址现在是否记录在 X-Forwarded-For 标头下。

参考https://aws.amazon.com/cn/premiumsupport/knowledge-center/elb-capture-client-ip-addresses/

兼总条贯 知至知终