nginx docker-compose创建范围不是www.example.com的网桥网络172.17.0.0/16

dsf9zpds  于 2022-11-21  发布在  Nginx
关注(0)|答案(2)|浏览(140)

我正在尝试从正在运行的nginx容器(\nginx_status端点限制为127.0.0.1,172.17.0.0/16)获取指标docker exec nginx curl 127.0.0.1/nginx_status.是好的当我运行ELK metricbeat容器并将nginx设置为要监视的主机时错误获取metricset nginx的数据。stubstatus:获取状态时出错:进行http请求时出错:获取“http://nginx/nginx状态”:拨号TCP 172.27.0.6:8080:连接:连接被拒绝。nginx容器是从一个不同的组合文件创建的,而不是metricbeat。它们运行在不同的桥网络中。现在我检查了两个网络,发现它完全在不同的IP地址范围上。

"Scope": "local",
    "Driver": "bridge",
    "EnableIPv6": false,
    "IPAM": {
        "Driver": "default",
        "Options": null,
        "Config": [
            {
                "Subnet": "192.168.16.0/20",
                "Gateway": "192.168.16.1"
            }
        ]
    },
    "Internal": false,
    "Attachable": true,
    "Ingress": false,
    "ConfigFrom": {
        "Network": ""
    },

另一个网桥网络已打开

"IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "192.168.32.0/20",
                    "Gateway": "192.168.32.1"
                }
            ]
        },

这对我来说是一个惊喜。我现在完全糊涂了,想知道发生了什么。这些是我当前的设置

server {
        listen 127.0.0.1;
        location /nginx_status {
        stub_status on;
        access_log off;
        allow 127.0.0.1;
        allow 172.17.0.0/16;
        deny all;
    }
}

1.我如何才能可靠地设置nginx服务器块???
1.我在想,docker只使用172.17.0.0/16范围。这是docker-compose特有的吗?

1l5u6lss

1l5u6lss1#

docker-compose将使用以下任何一项:

172.17.0.0/16   
 172.18.0.0/16      
 172.19.0.0/16

你可能需要读一点理论(我从来没有过,我实际上是在课堂上睡觉时,它是在学校说教...)
所以答案可能是

172.16.0.0/12

因为这段文字来自上面的来源^^^
172.16.0.0/12 用于专用内部网络。此空间中的IP地址不应出现在公共Internet上。
例如,这是postgres容器中pg_hba.conf的一部分

host    all             all             172.16.0.0/12           password

这和你遇到的问题很相似

qmb5sa22

qmb5sa222#

我们可以通过使用用户定义的桥来指定docker-compose.yml内的桥网络。我希望这是你正在寻找的。

version: "2.1"
services:
  nginx:
    image: ghcr.io/linuxserver/nginx
    container_name: nginx
    volumes:
      - ./config:/config
    ports:
      - 443:443
    restart: always
    networks:
      br-uplink:
        ipv4_address: 192.168.11.2

networks:
  br-uplink:
    driver: bridge
    name: br-uplink
    ipam:
      config:
        - subnet: "192.168.11.0/24"
          gateway: "192.168.11.1"

相关问题