使Dockerized站点在Traefik反向代理后面运行

TPa*_*r31 5 docker docker-compose traefik

我已按照本教程中的说明将Traefik v1.7.6安装为Docker容器。

一切正常,可以访问以下站点:https : //proxy.hostname.com

我想添加一个UniFi控制器容器以在此反向代理后面运行,但是需要有关我的配置的帮助。

遵循本教程,我能够创建一个功能容器并访问以下站点:https : //unifi.hostname.com : 8443

端口8443是UniFi运行的本机Web管理端口,但这是我需要帮助的地方。

据我了解,我应该能够通过Traefik访问此站点,网址为https://unifi.hostname.com,并被定向到后端的正确8443端口。其次,失去了使用“让我们加密”的好处,因为它仅向端口443上的子域提供证书。

这是我的docker-compose.yml文件:

version: "3.6"
services:

  unifi:
    hostname: unifi
    image: linuxserver/unifi:latest
    restart: always
    container_name: "unifi"
    volumes:
      - /docker/unifi:/config
    ports:
      - target: 3478
        published: 3478
        protocol: udp
        mode: host
      - target: 10001
        published: 10001
        protocol: udp
        mode: host
      - target: 8080
        published: 8080
        protocol: tcp
        mode: host
      - target: 8081
        published: 8081
        protocol: tcp
        mode: host
      - target: 8443
        published: 8443
        protocol: tcp
        mode: host
      - target: 8880
        published: 8880
        protocol: tcp
        mode: host
      - target: 6789
        published: 6789
        protocol: tcp
        mode: host
    networks:
      - proxy
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/New_York
    labels:
      - "traefik.enable=true"
      - "traefik.tags=frontend"
      - "traefik.frontend.passHostHeader=true"
      - "traefik.admin.backend=unifi"
      - "traefik.admin.frontend.rule=Host:unifi.hostname.com"
      - "traefik.admin.port=8443"
      - "traefik.admin.protocol=https"

networks:
  proxy:
    external: true

Run Code Online (Sandbox Code Playgroud)

小智 4

根据我自己的经验,代理 UniFi 控制器一直很痛苦,因为它使用内置的自签名证书。通常,您必须指示代理在连接到后端时忽略无效证书。

我建议您想要的是该InsecureSkipVerify选项,该选项必须在traefik.toml.

insecureSkipVerify :如果设置为 true,后端将接受无效的 SSL 证书。注意:这会禁用中间人攻击的检测,因此只能在安全后端网络上使用。- https://docs.traefik.io/configuration/commons/