traefik v2将域请求转发到子路由

时间:2020-03-29 12:41:16

标签: reactjs docker traefik

我有一个使用docker构建的React Web应用程序,并且位于Traefik代理的后面。 Docker容器在端口80上具有Nginx作为React应用程序的HTTP服务器。当前配置将http://example.comhttps://example.com设置为响应应用。我想将另一个域请求转发到应用程序的子路由,例如,将https://test.example.com个请求转发到https://example.com/test-sub-route。如何使用Traefik v2做到这一点?

注意:地址栏应显示https://test.example.com

这是我当前的配置:

version: "3.7"

services:

  reactweb:
    image: react-web-app:latest
    networks:
      - 'internal'
      - 'traefik'
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=traefik"
      - "traefik.http.routers.reactweb-web.entrypoints=web"
      - "traefik.http.routers.reactweb-web.rule=Host(`example.com`)"
      - "traefik.http.middlewares.reactweb-redirect.redirectscheme.scheme=https"
      - "traefik.http.middlewares.reactweb-redirect.redirectscheme.permanent=true"
      - "traefik.http.routers.reactweb-web.middlewares=reactweb-redirect@docker"
      - "traefik.http.routers.reactweb-websecure.entrypoints=websecure"
      - "traefik.http.routers.reactweb-websecure.rule=Host(`example.com`)"
      - "traefik.http.routers.reactweb-websecure.tls=true"
      - "traefik.http.services.reactweb-service.loadbalancer.server.port=80"


networks:
  traefik:
    external: true
  internal:
    external: false

1 个答案:

答案 0 :(得分:0)

您可以在traefik的路径中添加prefix。使用以下代码段。

labels:
  - "traefik.http.middlewares.add-foo.addprefix.prefix=/foo"

参考:https://docs.traefik.io/middlewares/addprefix/