Docker网桥和nginx允许ip

前端之家收集整理的这篇文章主要介绍了Docker网桥和nginx允许ip前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我们有一个包含几个docker容器的docker bridge.主docker是一个Nginx服务器,充当web主机并将所有数据转发给其他容器.

现在要求连接仅限于指定的ip地址列表.为此,我编辑了Nginx服务器文件

server {
        allow 127.0.0.0/8;
        deny all;
        ...

哪个应该允许环回127.0.0.1连接.

然而这失败了,看看access.log显示了原因:
所有行都以:

    172.25.0.1 - - [10/Apr/2018:08:22:46 +0000] "GET

172.25.0.1是docker bridge网关;因此,码头工人“忘记”外部的ips,我不能再过滤掉了.

我怎样才能过滤ips?或者将源ips转发到docker?

最佳答案
这是预期的,也是docker网络工作的方式.默认情况下,您最终会在docker主机上看到类似于虚拟网络的内容.从外部转发的连接将通过docker0和NAT到达每个容器.

为了解决这个问题,简单的答案是在Nginx容器上使用主机网络.
即 – docker run命令的–network host选项.见:host networking

另外,请阅读docker网络文档.在那里解释得更彻底.
https://docs.docker.com/network/

猜你在找的Nginx相关文章