首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Traefik基本路径

Traefik基本路径
EN

Stack Overflow用户
提问于 2020-06-14 02:09:10
回答 3查看 3.4K关注 0票数 0

我试图密码保护应用程序的特定路径,但我似乎遗漏了一些东西,而traefik文档并没有帮助:

从码头粘贴-合成:

traefik:

代码语言:javascript
复制
command:
  - "--log.level=INFO"
  - "--providers.docker=true"
  - "--providers.docker.exposedbydefault=false"
  - "--entrypoints.web.address=:80"
  - "--entrypoints.websecure.address=:443"
  - "--entrypoints.web.http.redirections.entryPoint.to=websecure"
  - "--entrypoints.web.http.redirections.entryPoint.scheme=https"
  - "--certificatesresolvers.letsencrypt.acme.httpchallenge=true"
  - "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web"
  - "--certificatesresolvers.letsencrypt.acme.email=email@email.com"
  - "--certificatesresolvers.letsencrypt.acme.storage=/etc/traefik/acme.json"

服务:

代码语言:javascript
复制
labels:
  - "traefik.enable=true"
  - "traefik.http.routers.service.middlewares=service"
  - "traefik.http.routers.service.rule=Host(`domain.example.com`)"
  - "traefik.http.middlewares.service.headers.stsSeconds=31536000"
  - "traefik.http.middlewares.service.headers.forceSTSHeader=true"
  - "traefik.http.middlewares.service.headers.stsIncludeSubdomains=true"
  - "traefik.http.middlewares.service.headers.stsPreload=true"
  - "traefik.http.middlewares.service.headers.referrerPolicy=no-referrer"
  - "traefik.http.middlewares.service.headers.browserXssFilter=true"
  - "traefik.http.middlewares.service.headers.customRequestHeaders.X-Forwarded-Proto=https"
  - "traefik.http.routers.service.tls.certresolver=letsencrypt"

如果我添加了以下标签,则basic auth正在工作,但它在整个网站上都启用了:

  • "traefik.http.middlewares.service-auth.basicauth.usersfile=/etc/traefik/auth"
  • "traefik.http.routers.service.middlewares=service,服务-auth“

我尝试添加第二个路由器,但这似乎不起作用:

  • "traefik.http.routers.service-admin.rule=Host(domain.example.com) && PathPrefix(/somepath)"
  • "traefik.http.middlewares.service-auth.basicauth.usersfile=/etc/traefik/auth"
  • "traefik.http.routers.service-admin.middlewares=service-auth"

我遗漏了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-06-14 16:26:05

我设法用一些“受过教育”的猜测弄明白了这一点。似乎标签的顺序和它们之间的间隔起着至关重要的作用。添加第二个路由器(没有服务)确实是实现这一目标的正确方法,但分离路由器和中间件代码块非常重要:

代码语言:javascript
复制
  - "traefik.enable=true"

  - "traefik.http.routers.service.rule=Host(`example.example.com`)"
  - "traefik.http.routers.service-admin.rule=Host(`example.example.com`) && PathPrefix(`/somepath`)"
  - "traefik.http.routers.service.tls.certresolver=letsencrypt"
  - "traefik.http.routers.service-admin.tls.certresolver=letsencrypt"
  - "traefik.http.routers.service.middlewares=service"
  - "traefik.http.routers.service-admin.middlewares=service-admin"

  - "traefik.http.middlewares.service.headers.stsSeconds=31536000"
  - "traefik.http.middlewares.service.headers.forceSTSHeader=true"
  - "traefik.http.middlewares.service.headers.stsIncludeSubdomains=true"
  - "traefik.http.middlewares.service.headers.stsPreload=true"
  - "traefik.http.middlewares.service.headers.referrerPolicy=no-referrer"
  - "traefik.http.middlewares.service.headers.browserXssFilter=true"
  - "traefik.http.middlewares.service.headers.customRequestHeaders.X-Forwarded-Proto=https"
  - "traefik.http.middlewares.service-admin.basicauth.usersfile=/etc/traefik/auth"

注:所使用的traefik版本为2.2.1。

票数 3
EN

Stack Overflow用户

发布于 2020-06-14 09:35:33

我认为你错配置了第二个路由器,试着这样做

代码语言:javascript
复制
"traefik.http.routers.service-admin.rule=Host(domain.example.com) && PathPrefix(/somepath)"
"traefik.http.middlewares.service-admin.basicauth.usersfile=/etc/traefik/auth"
"traefik.http.routers.service-admin.middlewares=service-admin"
"traefik.http.routers.service-admin.service=$yourservice"
票数 1
EN

Stack Overflow用户

发布于 2022-05-20 08:19:35

我只是遇到了同样的问题,解决方案似乎与给出的路由priority有关,参见https://doc.traefik.io/traefik/routing/routers/#priority

要考虑的routes是由priority通过traefik命令的。默认情况下,priority是由路由的rule长度决定的。这就是为什么被接受的答案奏效的原因。管理路径的规则更长。

我建议手动设置这种情况的高度优先级,因为如果在原始路由中添加更多的主机或其他表达式,traefik基本上会忽略管理路由,因为它有一个短的rule

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62367624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档