【问题标题】:Traefik Reverse Proxy Ubooquity failureTraefik 反向代理 Ubooquity 失败
【发布时间】:2021-02-12 06:11:05
【问题描述】:

我一直在为这个问题摸不着头脑。只是探索 docker 和 web dev。

设置仅本地网络的 Web 域。我希望能够通过 name.home(plex.home、ebook.home 等)访问我的所有服务

我遇到了 ubooquity 的难题。当我输入 url http://ebook.home:2203/ubooquity/admin 时,一切都很好,页面加载完美。当我输入ebook.home 时,它无法加载所有元素,看起来只是显示了 html。

这是我的作曲

version: '3'
services:
  ubooquity:
    image: ghcr.io/linuxserver/ubooquity
    networks:
      - traefik-public
      - ubooquity
    ports:
      - 2202:2202
      - 2203:2203
    deploy:
      labels:
        - "traefik.enable=true"
        - "traefik.docker.network=traefik-public"
        #- "traefik.http.services.ubooquity.loadbalancer.server.port=888" # required by swarm but not used.        
        - "traefik.http.routers.ubooquity.entrypoints=web"
        - "traefik.http.routers.ubooquity.rule=Host(`ebook.home`)"
        #- "traefik.http.routers.ubooquity.rule=Host(`ebook.home`) && PathPrefix(`/admin`)"
        #- "traefik.port=2202"
        
        - "traefik.http.services.ubooquity.loadbalancer.server.port=2203"
        
        #redirect base URL to url/admin
        - "traefik.http.middlewares.ubooquity-addprefix.addprefix.prefix=/ubooquity/admin"
        #attach the middleware to the router
        - "traefik.http.routers.ubooquity.middlewares=ubooquity-addprefix@docker"        
networks:
  traefik-public:
    external: true
  ubooquity:
     external: true


这里发生了什么,我该如何纠正这个问题? 谢谢!

编辑:Traefik 配置

version: '3'

services:
  reverse-proxy:
    image: traefik:v2.3.4
    command:
      - "--providers.docker.endpoint=unix:///var/run/docker.sock"
      - "--providers.docker.swarmMode=true"
      - "--providers.docker.exposedbydefault=false"
      - "--providers.docker.network=traefik-public"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.websecure.address=:443"
      - "--entrypoints.ubooquity-admin.address=:2203"
      - "--providers.docker"
      - "--api.insecure" # Don't do that in production
    ports:
      - 80:80
      - 443:443
    volumes:
      # So that Traefik can listen to the Docker events
      - /var/run/docker.sock:/var/run/docker.sock:ro
    networks:
      - traefik-public
    deploy:
      labels:
        - "traefik.enable=true"
        - "traefik.http.services.traefik.loadbalancer.server.port=888" # required by swarm but not used.
        - "traefik.http.routers.traefik.rule=Host(`traefik.home`)"
        - "traefik.http.routers.traefik.entrypoints=web"
        #- "traefik.http.routers.traefik.tls.certresolver=letsencryptresolver"
        - "traefik.http.routers.traefik.service=api@internal"
        #- "traefik.http.routers.traefik.middlewares=traefik-auth"
        #- "traefik.http.middlewares.traefik-auth.basicauth.users=admin:$$apr1$$8EVjn/nj$$GiLUZqcbueTFeD23SuB6x0"
      placement:
        constraints:
          - node.role == manager

networks:
  traefik-public:
    external: true
    attachable: true

卷曲输出

:~$ curl -v ebook.home
*   Trying 192.xxx.x.xx:80...
* TCP_NODELAY set
* Connected to ebook.home (192.xxx.x.xxx) port 80 (#0)
> GET / HTTP/1.1
> Host: ebook.home
> User-Agent: curl/7.68.0
> Accept: */*
>

编辑#2: 看起来我的反向代理工作正常,这可能是 Ubooquity 问题。在失败页面上打开控制台时,它会看到多个与未加载 css 文件有关的错误。

The stylesheet http://ebook.home/ubooquity/admin-res/roboto.css was not loaded because its MIME type, “text/html”, is not “text/css”.

还在挖!

【问题讨论】:

    标签: docker docker-swarm traefik


    【解决方案1】:

    你能分享你的 traefik 配置吗?

    网络入口点的配置是什么?你指定2203端口了吗? 根据treafik doc,应该是这样的

    ## Static configuration
    [entryPoints]
      [entryPoints.web]
        address = ":2203"
    

    PI:您无需在 docker 文件中公开 2203 端口,因为您的 ubooquity 容器与 traefik 位于同一网络中

    【讨论】:

    • 谢谢!一般来说,我对 docker/web dev 还是很陌生,我发现很难在网上找到解释。我最相关的经验是使用虚拟化虚拟机。我对入口点的理解是所有流量都流向它们,然后 traefik 将其重定向到容器?所以我的请求转到 ebook.home:80 然后 traefik 中间件应该通过负载均衡器转发到 ebook.home:2203 并且我的添加前缀后缀为 /ubooquity/admin
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-07
    • 1970-01-01
    • 1970-01-01
    • 2021-11-14
    • 2018-09-28
    • 2020-06-30
    • 2017-04-06
    相关资源
    最近更新 更多