Traefik の複数の cors サイト

Traefik の複数の cors サイト

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"

関連情報