使用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日志

posted @ 2022-02-15 16:09  lucky_tomato  阅读(3794)  评论(0编辑  收藏  举报