Docker compose 添加授权和;traefik反向代理的原始标头
我使用Docker对Traefik进行了一个非常简单的设置&让我们加密以将传入请求代理到API服务 除了客户机因为CORS而无法向API发出请求之外,所有这些都正常运行 如何添加来源、内容类型和授权标头,以确保它们到达代理后面运行的节点API,并确保响应标头中保留访问控制允许来源? 我的traefik.toml文件:Docker compose 添加授权和;traefik反向代理的原始标头,docker-compose,traefik,Docker Compose,Traefik,我使用Docker对Traefik进行了一个非常简单的设置&让我们加密以将传入请求代理到API服务 除了客户机因为CORS而无法向API发出请求之外,所有这些都正常运行 如何添加来源、内容类型和授权标头,以确保它们到达代理后面运行的节点API,并确保响应标头中保留访问控制允许来源? 我的traefik.toml文件: debug = false logLevel = "ERROR" defaultEntryPoints = ["https","h
debug = false
logLevel = "ERROR"
defaultEntryPoints = ["https","http"]
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[retry]
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "<hostname-here>"
watch = true
exposedByDefault = false
[acme]
email = "<your-email-here>"
storage = "acme.json"
entryPoint = "https"
onHostRule = true
[acme.httpChallenge]
entryPoint = "http"
这些文档意味着您可以添加自定义标题
traefik.frontend.headers.customResponseHeaders=EXPR在将响应转发给客户端之前,将头附加到容器返回的每个响应。
格式:标题:值| |标题2:值2
但是我怎么知道动态值(比如授权令牌)的值呢
编辑:
我尝试添加如下自定义标题:
-“traefik.frontend.headers.customResponseHeaders=访问控制允许原点:”
但这并没有附加到响应头中 我在nodejs应用程序中根据请求的来源有条件地解析CORS,试图将主机名列为白名单,但Traefik没有正确设置来源。我用Traefik删除了条件主机名和白名单主机名
完成此操作后,CORS工作正常,我上面的标签完好 入口点>路由器>中间件>服务 我认为您应该首先创建中间件,然后将其连接到特定路由器: 通过将以下标签添加到我的服务中,我将标题添加到响应中:
...
- "traefik.http.routers.frontend.entrypoints=http"
#creating middleware for headers
- "traefik.http.middlewares.frontend.headers.customresponseheaders.Access-Control-Allow-Methods=POST, GET, PUT, OPTIONS, DELETE"
- "traefik.http.middlewares.frontend.headers.customresponseheaders.Access-Control-Allow-Origin=*"
- "traefik.http.middlewares.frontend.headers.customresponseheaders.Access-Control-Allow-Headers=x-requested-with, Content-Type,Authorization"
#attach middleware to the frontend router
- "traefik.http.routers.frontend.middlewares=frontend"
潜在相关(在v2中):
...
- "traefik.http.routers.frontend.entrypoints=http"
#creating middleware for headers
- "traefik.http.middlewares.frontend.headers.customresponseheaders.Access-Control-Allow-Methods=POST, GET, PUT, OPTIONS, DELETE"
- "traefik.http.middlewares.frontend.headers.customresponseheaders.Access-Control-Allow-Origin=*"
- "traefik.http.middlewares.frontend.headers.customresponseheaders.Access-Control-Allow-Headers=x-requested-with, Content-Type,Authorization"
#attach middleware to the frontend router
- "traefik.http.routers.frontend.middlewares=frontend"