
在 Nginx 运行于 Docker 容器中的情况下, 获取客户端的真实 IP 地址可能会遇到一些挑战。这是因为 Docker 容器通常会使用网络地址转换 (NAT) 来隔离容器的网络, 将容器的内部网络映射到主机的网络接口上。
为在 Nginx 中获取客户端的真实 IP 地址, 可以采用以下几种方法:
$http_x_forwarded_for 变量来获取该值。real_ip_header X-Forwarded-For;
set_real_ip_from 172.16.0.0/12;
listen 80 proxy_protocol;
real_ip_header proxy_protocol;
set_real_ip_from 172.16.0.0/12;
通过以上方法, 可以在 Nginx 运行于 Docker 容器中的情况下, 获取客户端的真实 IP 地址, 以便进行日志记录、访问控制等操作。