2

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

我可以traefik.frontend.entryPoints=https在 docker 服务中定义一个标签来覆盖 Traefik defaultEntryPoints,但用户需要使用https. 我想公开入口点,http并且https,但是如果用户使用 发出请求http,Traefik 会将其重定向到https.

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

问候

4

3 回答 3

2

我对选定的问题(这是正确的)有点挣扎,所以这里有更多信息。

如果您遵循 Traefik 文档中的Let'Encrypt官方教程,您最终会得到以下配置:

[entryPoints]
  [entryPoints.http]
  address = ":80"
    [entryPoints.http.redirect]
    entryPoint = "https"
  [entryPoints.https]
  address = ":443"
  [entryPoints.https.tls]

其中entryPoints.httpentryPoints.http.redirect一条规则告诉 Traefik 实现对 https 的重定向。

如果您要挑选应该实现重定向的服务,您首先需要禁用此全局行为:

[entryPoints]
  [entryPoints.http]
  address = ":80"
  [entryPoints.https]
  address = ":443"
  [entryPoints.https.tls]

此时,您可以将标签应用于要重定向的服务:

labels:
  ...
  - "traefik.frontend.redirect.entryPoint=https"

我希望这有帮助!

于 2019-09-11T11:24:15.210 回答
0

由于在traefik 版本 1.5中引入了这种合并,现在可以执行以下操作:

labels:
- "traefik.frontend.redirect.entryPoint=https"
于 2019-01-13T07:56:22.657 回答
-1

仍然是一个悬而未决的问题 -> 现在不可能。

https://github.com/containous/traefik/issues/541

于 2017-08-11T11:21:37.887 回答