如何解决Traefik仪表板仅在http端口上
我试图在主机IP上公开我的docker服务(例如Heimdall,Plex,Tautulli等),仅出于内部目的,因此不提供域名。我希望每个服务都可以使用自己的前缀(例如192.168.0.100/heimdall、192.168.0.100/tautulli等)进行访问。
我希望将仪表板放置在单独的端口上,例如8080,但是即使在我将8080的入口点指定为 traefik ,并将 traefik 设置为入口之后服务点,它仍然到达名为http的端口80。
我的配置有问题吗?还是在traefik方面有问题?
docker-compose.yml
version: '3'
services:
traefik:
image: traefik
container_name: traefik
ports:
- "80:80"
- "8080:8080"
restart: always
volumes:
- ./traefik:/etc/traefik
- "/var/run/docker.sock:/var/run/docker.sock:ro"
traefik.yml
entryPoints:
http:
address: ":80"
traefik:
address: ":8080"
api: {}
log:
level: "DEBUG"
providers:
file:
directory: /etc/traefik/dynamic
docker:
endpoint: unix:///var/run/docker.sock
exposedByDefault: false
dashboard.yml
http:
routers:
api:
rule: PathPrefix(`/api`) || PathPrefix(`/dashboard`)
entrypoints:
- traefik
service: api@internal
解决方法
根据文档(https://docs.traefik.io/v2.2/operations/api/#insecure),这可能会有所帮助:
api:
insecure: true
它应隐式使用端口8080的特殊入口点traefik
。
您也可以检查此信息以获取有关仪表板的更多信息:https://docs.traefik.io/operations/dashboard/
编辑
我刚刚尝试过,它可以在8080端口下使用以下配置:
docker-compose.yml
version: '3'
services:
traefik:
image: traefik
container_name: traefik
restart: always
ports:
- "80:80"
- "8080:8080"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "./dockerfiles/traefik/traefik.yml:/etc/traefik/traefik.yml:ro"
labels:
- "traefik.enable=true"
- "traefik.http.routers.dashboard.rule=PathPrefix(`/api`) || PathPrefix(`/dashboard`)"
- "traefik.http.routers.dashboard.entrypoints=traefik"
- "traefik.http.routers.dashboard.service=api@internal"
traefik.yml (我在没有文件提供程序的情况下使用了您的文件):
entryPoints:
http:
address: ":80"
traefik:
address: ":8080"
api: {}
log:
level: "DEBUG"
providers:
docker:
endpoint: unix:///var/run/docker.sock
exposedByDefault: false
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。