如何解决Traefik 反向代理 Ubooquity 失败
我一直在为这个问题挠头一段时间。只是探索 docker 和 web dev。
设置仅限本地网络的 Web 域。我希望能够通过 name.home(plex.home、ebook.home 等)访问我的所有服务
我已经撞墙了。当我输入 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”.
还在挖掘!
解决方法
你能分享你的 traefik 配置吗?
web 入口点的配置是什么?您是否指定了 2203 端口? 根据{{3}},它应该看起来像
## Static configuration
[entryPoints]
[entryPoints.web]
address = ":2203"
PI:您不需要在 docker 文件中公开 2203 端口,因为您的 ubooquity 容器与 traefik 位于同一网络中
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。