web-dev-qa-db-ja.com

Traefik、1つのDockerコンテナに対する複数のフロントエンドルール

私はマニュアルを検索しましたが、キーワードを使用してそれをグーグルで検索したとしても、実際には非常に明確にすることができませんでした。

/_をAPIコンテナーにプロキシする必要があります。そのようなルールはwww.mydomain.com/_ => API container

このAPIコンテナapi.mydomain.com => API containerへの指定されたドメインポイントが既にあります

これは私のdocker-compose.ymlです。/_をプロキシするルールをこのコンテナにも追加するだけです。

version: '3.3'

services:

  testapi:

    image: git.xxxx.com/api/core/test:latest

    restart: always

    networks:
      - web
      - default

    expose:
      - "80"

    labels:
      - "traefik.enable=true"
      - "traefik.port=80"
      - "traefik.docker.network=web"
      - "traefik.backend=testapi"
      #this domain is used for app
      - "traefik.frontend.rule=Host:api.test.mydomain.com"
      #this is used for website.All I want is prxy "https://www.test.mydomain.com/_/" to this container
      - "traefik.frontend.rule1=Host:www.test.mydomain.com;PathPrefixStrp:/_"
7
wanfujinan

セグメントラベルを使用できます。

version: '3.3'

services:
 testapi:
   image: git.xxxx.com/api/core/test:latest
   restart: always
   networks:
     - web
     - default
   expose:
     - "80"
   labels:
     - "traefik.enable=true"
     - "traefik.port=80"
     - "traefik.docker.network=web"
     #this domain is used for app
     - "traefik.foo.frontend.rule=Host:api.test.mydomain.com"
     - "traefik.bar.frontend.rule=Host:www.test.mydomain.com,m.test.mydomain.com;PathPrefixStrp:/_"

https://docs.traefik.io/v1.6/configuration/backends/docker/#on-containers-with-multiple-ports-segment-labels

24
ldez