我在swarm模式下使用traefik作为docker服务。 Traefik接受一些标签来配置如何处理docker容器并为其创建代理。
我可以在泊坞窗服务中定义标签traefik.frontend.entryPoints=https
以覆盖Traefik defaultEntryPoints
,但用户需要使用https
发出请求。我想公开入口点http
和https
,但如果用户使用http
发出请求,则Traefik会将其重定向到https
。
是否可以使用entryPoints.http.redirect
作为docker标签强制重定向某些特定服务?我不想在traefik.toml
文件中设置它,因为它将应用于所有服务,我想要它只是一些服务,而不是所有服务。
此致
答案 0 :(得分:2)
我在选择的问题上有些挣扎(是正确的),所以这里有更多信息。
如果您遵循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"
我希望这会有所帮助!
答案 1 :(得分:0)
由于this merge被引入traefik version 1.5,因此现在可以做到:
labels:
- "traefik.frontend.redirect.entryPoint=https"