Traefik - 如何添加自定义 header "Cache-Control"

Traefik - how to add custom header "Cache-Control"

我使用 Traefik 2.4 + Docker + Varnish。

我想让我的开发环境禁用 Varnish 缓存,我可以使用 headers:

Cache-control: no-cache
Pragma: no-cache

所以在我的 docker-compose 代理文件中,我使用了:

  varnish:
    labels:
      - "traefik.http.routers.api_store_varnish.rule=Host(`${APP_ENV:-dev}.${APP_NAME:-api-store}.${DOMAIN_EXTENSION:-local}`, `api_store`)"
      - "traefik.http.routers.api_store_varnish.tls=true"
      - "traefik.http.services.api_store_varnish.loadbalancer.server.port=80"
      - "traefik.http.middlewares.no-cache.headers.Cache-Control=no-cache"
      - "traefik.http.middlewares.no-cache.headers.Pragma=no-cache"
      - "traefik.http.routers.api_store_varnish.middlewares=no-cache@docker"

我查看了文档 https://doc.traefik.io/traefik/middlewares/overview/ and https://doc.traefik.io/traefik/middlewares/headers/,但目前,我的容器处于 404 状态并且没有显示在我的 Traefik 仪表板中。

处理 headers 的正确方法是什么?

我认为您的标签有问题。检查文档,他们会让你做这样的事情:

labels:
...
- "traefik.http.middlewares.testHeader.headers.customrequestheaders.Cache-Control=no-cache"
- "traefik.http.middlewares.testHeader.headers.customrequestheaders.Pragma=no-cache"

任何更改,在中间件名称和您的 header 名称之间添加那些 customrequestheaders