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

标签 docker traefik

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

我可以在docker服务中定义标签traefik.frontend.entryPoints=https来覆盖Traefik defaultEntryPoints,但是用户将需要使用https发出请求。我想公开入口点httphttps,但是如果用户使用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/

相关文章:

javascript - Docker-compose 找不到模块

postgresql - 允许 Docker 容器访问在本地主机上运行的 Postgres

node.js - Docker 中的远程调试 Node 应用程序

kubernetes - Traefik-ingress 仪表板返回 404

sql-server - 路由到在默认端口上通过 Docker 运行的不同 SQL Server 实例

websocket - Traefik 2 和 bitwarden rs 协议(protocol)在通知/集线器上

node.js - PRISMA:身份验证 token 无效:未提供 'Authorization' header

docker - 无法登录到标准Neo4j Docker容器-在外部禁用身份验证表单?

traefik - 使用 LetsEncrypt 和多个 Docker 后端部署 Traefik

reverse-proxy - Traefik v2 作为没有 docker 的反向代理