我在集群模式下将traefik用作docker服务。
Traefik接受一些标签来配置它将如何处理docker容器并为其创建代理。
我可以在docker服务中定义标签traefik.frontend.entryPoints=https
来覆盖Traefik defaultEntryPoints
,但是用户将需要使用https
发出请求。我想公开入口点http
和https
,但是如果用户使用http
发出请求,Traefik会将其重定向到https
。
是否可以使用entryPoints.http.redirect
作为docker标签来强制某些特定服务的重定向?我不想在traefik.toml
文件中设置它,因为它将应用于所有服务,我希望仅将其应用于某些服务,而不是全部。
问候
最佳答案
我在选择的问题(确实是正确的)上有些挣扎,所以这里有更多信息。
如果您遵循Traefik文档中的official Let'Encrypt tutorial,则最终会完成以下配置:
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
在
entryPoints.http
中,存在entryPoints.http.redirect
规则,该规则告诉Traefik实现对https的重定向。如果您选择应该实现重定向的服务,则首先需要禁用此全局行为:
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
现在,您可以将标签应用于您要重定向的服务:
labels:
...
- "traefik.frontend.redirect.entryPoint=https"
我希望这有帮助!
关于docker - Traefik http使用docker标签重定向到https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45018204/