
我在我的 Ubuntu 伺服器上使用 Traefik。 Cors 對於一個網站來說運作得很好,但是當我嘗試將它用於兩個網站時,它們似乎發生了衝突。正確的語法是什麼?
這是我的 docker-compose 檔案中的內容:
服務一:
- "traefik.http.routers.service-one.middlewares=cors"
- "traefik.http.middlewares.cors.headers.accesscontrolallowmethods=GET,OPTIONS,PUT"
- "traefik.http.middlewares.cors.headers.accesscontrolalloworiginlist=https://site1.com,https://site2.com,https://site2.com"
- "traefik.http.middlewares.cors.headers.accesscontrolmaxage=100"
- "traefik.http.middlewares.cors.headers.addvaryheader=true"
服務二:
- "traefik.http.routers.service-two.middlewares=cors"
- "traefik.http.middlewares.cors.headers.accesscontrolallowmethods=GET,OPTIONS,PUT"
- "traefik.http.middlewares.cors.headers.accesscontrolalloworiginlist=https://site1.com,https://site2.com,https://site2.com"
- "traefik.http.middlewares.cors.headers.accesscontrolmaxage=100"
- "traefik.http.middlewares.cors.headers.addvaryheader=true"
答案1
您有相同的 CORS 中間件,讓我們在您的docker-compose.yml
檔案中將它們分開。
services:
service1:
labels:
- "traefik.http.routers.service-one.middlewares=cors-service1"
- "traefik.http.middlewares.cors-service1.headers.accesscontrolallowmethods=GET,OPTIONS,PUT"
- "traefik.http.middlewares.cors-service1.headers.accesscontrolalloworiginlist=https://site1.com,https://site2.com"
- "traefik.http.middlewares.cors-service1.headers.accesscontrolmaxage=100"
- "traefik.http.middlewares.cors-service1.headers.addvaryheader=true"
service2:
labels:
- "traefik.http.routers.service-two.middlewares=cors-service2"
- "traefik.http.middlewares.cors-service2.headers.accesscontrolallowmethods=GET,OPTIONS,PUT"
- "traefik.http.middlewares.cors-service2.headers.accesscontrolalloworiginlist=https://site1.com,https://site2.com"
- "traefik.http.middlewares.cors-service2.headers.accesscontrolmaxage=100"
- "traefik.http.middlewares.cors-service2.headers.addvaryheader=true"