问题
在Nginx-proxy Docker容器内部(下面有更多信息),我总是看到每个连接都有相同的IP地址:172.18.0.1(这是Nginx-proxy网络网关).例如:
Nginx.1 | www.my-site.tld 172.18.0.1 - - [28/Nov/2017:17:22:21 +0000] "GET /some/path HTTP/2.0" 200 46576 "https://www.my-site.tld/some/path" "Mozilla/5.0 (Linux; Android 4.4.2; PSP5507DUO Build/KVT49L) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/61.0.3163.100 YaBrowser/17.10.0.446.00 Mobile Safari/537.36"
无论我是从外部网络,本地机器,还是从服务器(主机)本身发出请求,IP地址始终为172.18.0.1.
我需要的是看到真正的客户端IP.
试图解决
我搜索了很多,并尝试了不同的解决方案,但没有一个适合我.我尝试了以下方法:
>禁用firewalld(当然,在这种情况下什么都不起作用)
iptables是空的);
>使用–userland-proxy = false(没有运气);
>使用–net = host(根本不是解决方案,也不起作用).
相关链接:
> https://github.com/jwilder/nginx-proxy/issues/130
> https://github.com/jwilder/nginx-proxy/issues/133
那么,有什么想法吗?似乎是iptables路由问题或内部Docker错误.无论如何,它肯定与Docker有关,因为以下显示正确的远程用户IP:
[root@server]# nc -lv 12345
[user@remote-client]$nc -vz MY.IP.ADDRESS.HERE 12345
很奇怪!
现在我将提供有关系统的完整信息,请耐心等待.