已发现 mDNS 服务但无法访问

已发现 mDNS 服务但无法访问

我在连接 Raspberry Pi 上的服务时遇到了一些问题。我希望:1 个 Raspberry Pi 运行多个服务(如 openhab、mosquitto、nagios 等)。这些服务中的每一个都在单独的 docker 容器中运行。为了将所有内容整合在一起,计划使用 nginx 反向代理和 avahi 在本地网络中提供这些服务。因此 avahi 在本地网络中公开了不同的子域(如 openhab.raspberrypi.local,...)。

到目前为止一切顺利,实际状态是这样的。所有容器运行顺利,avahi 将必要的子域暴露给网络,子域由潜在客户记录,但如果我想连接到这些服务,则没有任何响应,没有跟踪路由起作用,并且(子)域甚至似乎不存在。我不知道如何调试它。

我创建了一个最小示例来解决这个问题,如下所示。如果我在新安装的 Raspberry 上运行它,我期望能够从本地网络连接到网页“example.pink-core.local”。

在我的 Mac 上,该服务被正确发现: mDNS发现

但如果我想连接它,我会得到: Chrome 结果

如果我将示例页面的端口直接暴露到另一个端口,就可以访问,因此容器就可以启动并运行。

有人能帮助我找到正确的方向吗?

例如:avahi 部分指向来自https://github.com/gvuyk/rpi-avahi

version: '3'
services:
  nginx:
    image: alexanderkrause/rpi-nginx-proxy
    restart: always
    container_name: nginx-proxy
    labels:
      - com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy
    volumes:
      - nginx_certs:/etc/nginx/certs:ro
      - nginx_vhosts:/etc/nginx/vhosts.d
      - nginx_html:/usr/share/nginx/html
      - /var/run/docker.sock:/tmp/docker.sock:ro
    ports:
      - "80:80"
      - "443:443"

  avahi:
    build: avahi
    restart: always
    container_name: avahi
    network_mode: host
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro

  example:
    image: hypriot/rpi-busybox-httpd
    restart: always
    container_name: example
    depends_on:
      - nginx
    environment:
      VIRTUAL_HOST: "example.pink-core"
      AVAHISERVICES: '[{"name": "example.pink-core","type": "_http._tcp","port": 80}]'
    ports:
      - "8080:80" #<-- For debugging, direct connection with ip:8080 works 
volumes:
  nginx_certs:
  nginx_vhosts:
  nginx_html:

相关内容