使用docker部署的nginx日志获取真实用户IP
前言:今天使用docker部署Nginx,感觉还挺方便的,后来发现Nginx日志获取的IP是docker的IP,不是真实的客户端IP,分享下如何获取真实的客户端IP
1、下面图的IP是172开头的,这是属于容器分配的IP,通过把docker网桥加入到防火墙的internal区域就可以获取到真实的IP
2、查询你docker容器中网桥名称,以br-d4aaa开头的就是容器中网桥
[root@test 15:52:44 /]# ifconfig br-d4aaa1xxxx: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 192.168.0.1 netmask 255.255.0.0 broadcast 192.168.255.255 ether 02:42:6f:95:d3:cd txqueuelen 0 (Ethernet) RX packets 16 bytes 1298 (1.2 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 16 bytes 1298 (1.2 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
3、把网桥加入到防火墙的internal(内部)区域
firewall-cmd --permanent --zone=internal --change-interface=br-d4aaa1xxxx(你的容器网桥)
4、重启firewalld
systemctl stop firewalld.service
systemctl start firewalld.service
5、再次访问查看Nginx日志