docker容器里面的nginx服务器怎么获取客户端访问的真实ip
在Docker容器中运行的Nginx服务器可以通过配置Nginx的real_ip_header和set_real_ip_from指令来获取客户端的真实IP地址。具体步骤如下:
- 在Nginx配置文件中添加以下指令:
# 设置代理服务器IP地址
set_real_ip_from 172.17.0.0/16;
# 设置真实IP的HTTP头
real_ip_header X-Forwarded-For;
其中,set_real_ip_from指令设置代理服务器的IP地址范围,可以使用Docker的默认网段172.17.0.0/16,也可以根据实际情况进行修改。real_ip_header指令设置真实IP的HTTP头,可以使用常见的X-Forwarded-For头。
- 重新加载Nginx配置文件:
docker exec <container_name> nginx -s reload
其中,<container_name>是Nginx容器的名称。
- 在Nginx日志中查看客户端的真实IP地址。
在Nginx日志中,可以看到客户端的真实IP地址已经被正确地记录下来了。例如:
172.17.0.1 - - [01/Jan/2021:00:00:00 +0000] "GET /index.html HTTP/1.1" 200 1234 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" "1.2.3.4"
其中,172.17.0.1是Nginx服务器的IP地址,1.2.3.4是客户端的真实IP地址
原文地址: https://www.cveoy.top/t/topic/cpQw 著作权归作者所有。请勿转载和采集!