【发布时间】:2018-08-07 16:14:19
【问题描述】:
我正在考虑将 Apache 替换为我的 Web 项目(Kestrel / .Net Core)的 Traefik。阅读文档后,关于 Traefik 的一些事情我仍然不清楚:
1/ Traefik 是自动处理 LetsEncrypt 证书更新还是需要手动或通过外部脚本完成?从文档中说这是在添加新主机或重启时执行的,但是在 Traefik 运行 3 个月而没有添加任何重启/新主机后会发生什么?
2/ 当 Docker 后端无法访问时,如何提供自定义静态 HTML 页面?我可以从文档中看到如何设置特定的错误页面,但是当给定的后端不可用时,我看不到如何将流量重定向到它。
3/ 当需要更新 Docker 后端时,在执行 Docker 停止/重启之前,是否需要在 Traefik 上执行一些步骤?
4/ 似乎我无法同时运行 2 个 docker 后端,请参阅下面的配置文件,如果我取消注释第二个后端 (api.mydomain.io),那么第一个变得不可用了。我在这里遗漏了什么吗?
version: '3'
services:
reverse-proxy:
image: traefik # The official Traefik docker image
command: --docker # Enables the web UI and tells Træfik to listen to docker
ports:
- "80:80" # The HTTP port
- "443:443" # The HTTPS port
- "8080:8080" # The Web UI (enabled by --api)
networks:
- proxy
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- $PWD/traefik.toml:/etc/traefik/traefik.toml
- $PWD/acme.json:/acme.json
- /root/mydomain_prod/cert/:/certs/
- /root/mydomain_prod/503.html:/503.html
container_name: traefik-reverse-proxy
##############################
# Front - www.mydomain.io
##############################
mydomain-front:
image: mydomain-front
labels:
- traefik.enable=true
- traefik.backend=mydomain-front
- traefik.frontend.rule=Host:traefik.mydomain.io
- traefik.port=8084
networks:
- internal
- proxy
container_name: mydomain-front
##############################
# API - api.mydomain.io
# Note: If I uncomment this one, then www.mydomain.io won't work anymore
##############################
#mydomain-api:
# image: mydomain-api
# labels:
# - traefik.enable=true
# - traefik.backend=mydomain-api
# - traefik.frontend.rule=Host:api.mydomain.io
# - traefik.port=8082
# networks:
# - internal
# - proxy
# container_name: mydomain-api
非常感谢,
弗洛
【问题讨论】:
标签: traefik kestrel-http-server