docker - 如何为子域上的 docker 服务正确配置 traefik?
问题描述
traefik 快速入门指南中关于在 whoami 子域上使用 whoami 图像的示例有效,但我无法让 jellyfin 在类似的设置中工作,我无法弄清楚有什么不同:
kevin@pihost:~/personal$ curl -H Host:jellyfin.kevinm416.com http://127.0.0.1
Bad Gateway
kevin@pihost:~/personal$ curl -H Host:whoami.kevinm416.com http://127.0.0.1
Hostname: f7820e1787fe
IP: 127.0.0.1
...
这是我的 docker-compose 文件,其中包含所有 traefik 配置:
version: "3"
volumes:
jellyfin-config:
jellyfin-cache:
services:
reverse-proxy:
image: traefik:v2.2
# Enables the web UI and tells Traefik to listen to docker
command:
- "--api.insecure=true"
- "--providers.docker"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
ports:
- "80:80"
- "443:443"
# The Web UI (enabled by --api.insecure=true)
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
whoami:
image: containous/whoami
labels:
- "traefik.http.routers.whoami.rule=Host(`whoami.kevinm416.com`)"
jellyfin:
image: jellyfin/jellyfin
network_mode: "host"
environment:
TZ: 'America/Los_Angeles'
ports:
- "8096:8096"
volumes:
- jellyfin-config:/config
- jellyfin-cache:/cache
- /home/kevin/microcenter:/microcenter:ro
labels:
- "traefik.http.routers.jellyfin.rule=Host(`jellyfin.kevinm416.com`)"
- "traefik.http.services.jellyfin.loadbalancer.server.port=8096"
restart: always
解决方案
我想可能有两个问题:
- 你还没有为你的容器指定入口点,例如
whoami
它可能是(也许你想要一个带有端口 8096 的 jellyfin 的新入口点?):
- "traefik.http.routers.whoami.entrypoints=web"
network_mode: "host"
在 jellyfin 中——traefik 应该与容器在同一个网络中(或尝试使用traefik.docker.network
设置),所以我建议删除该行。
推荐阅读
- android - 从 NFC 标签启动 Android Instant App
- python - 熊猫中的e +数字含义
- c# - 无法将 ValueObject 与另一个表列一起设置为数据库索引
- r - 从果蝇基因符号到人类基因符号的 ID 转换
- react-native - 无法在 React Native 中导航
- powershell - 如何从 Powershell 获取 SharePoint 中的元数据(列值)
- java - 在 Spring Boot 中使用一个 CacheManager 设置 TTL 缓存不同的数据
- django - 如何在 POST 中返回 DRF 表单数据
- c# - Gridview 事件订阅
- javascript - 是的,当嵌套对象内的条件时