Docker 获取停靠站点以在Traefik反向代理后运行

Docker 获取停靠站点以在Traefik反向代理后运行,docker,docker-compose,traefik,Docker,Docker Compose,Traefik,我已经按照中的说明将Traefik v1.7.6安装为Docker容器 一切正常,可通过以下网址访问该网站: 我想添加一个UniFi控制器容器以在这个反向代理后面运行,但需要配置方面的帮助 接下来,我可以创建一个功能容器并访问此站点: 端口8443是UniFi运行的本机web管理端口,但这正是我需要帮助的地方 据我所知,我应该能够通过Traefik访问此站点,并被引导到后端的适当8443端口。其次,使用Let’s Encrypt的好处已经失去,因为它只向端口443上的子域提供证书 这是我的doc

我已经按照中的说明将Traefik v1.7.6安装为Docker容器

一切正常,可通过以下网址访问该网站:

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

接下来,我可以创建一个功能容器并访问此站点:

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

据我所知,我应该能够通过Traefik访问此站点,并被引导到后端的适当8443端口。其次,使用Let’s Encrypt的好处已经失去,因为它只向端口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


根据我自己的经验,代理UniFi控制器一直是一件痛苦的事情,因为它使用了一个烘焙的、自签名的证书。通常,您必须指示代理在连接到后端时忽略无效证书

我建议您需要的是
unsecureskipverify
选项,它必须在
traefik.toml
中启用

unsecureskipverify:如果设置为true,则后端将接受无效的SSL证书。 注意:这将禁用对中间人攻击的检测,因此只能在安全的后端网络上使用。 -


根据你的问题,我假设
https://unifi.hostname.com/
没有按预期工作。在尝试连接到该地址时,您的Traefik日志中是否有任何内容?如果将浏览器指向该URL,会发生什么情况?导致“坏网关”响应,但确实具有有效证书。可以工作,但没有有效的证书。这可能是人们需要下载并尝试的东西-这些东西可能相当复杂。我在上面添加了一个悬赏。如果UniFi在Docker容器中运行,用户可以使用一个卷用真实的卷覆盖自签名证书吗?@halfer不,它已经深入到包中(java IIRC)哦,这很公平。不过,Traefik可以配置为在有效证书上接收加密连接,然后它到UniFi的连接在后端可能不安全,只要Traefik和UniFi之间的路径不易被截获。@halfer:)这就是上面的unsecureskipverify指令的原因。就个人而言,我使用traefik->oauth_proxy(纯文本)->UniFi Controller(自签名)添加另一层身份验证