Traefik http使用docker标签重定向到https

时间:2017-07-10 17:25:14

标签: docker traefik

我在swarm模式下使用traefik作为docker服务。 Traefik接受一些标签来配置如何处理docker容器并为其创建代理。

我可以在泊坞窗服务中定义标签traefik.frontend.entryPoints=https以覆盖Traefik defaultEntryPoints,但用户需要使用https发出请求。我想公开入口点httphttps,但如果用户使用http发出请求,则Traefik会将其重定向到https

是否可以使用entryPoints.http.redirect作为docker标签强制重定向某些特定服务?我不想在traefik.toml文件中设置它,因为它将应用于所有服务,我想要它只是一些服务,而不是所有服务。

此致

2 个答案:

答案 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"