
Ubuntu サーバーで Traefik を使用しています。Cors は 1 つの Web サイトでは問題なく動作しますが、2 つの Web サイトで使用しようとすると競合が発生するようです。正しい構文は何ですか?
これは私の docker-compose ファイルの内容です:
サービス1:
- "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"
サービス2:
- "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"