将另一台服务器连接到另一个域下的traefik

问题描述 投票:0回答:1

我为特定域区域和子域配置了 Traefik。我需要将来自不同域名的请求重定向到另一个IP地址(另一台物理机)。我不知道如何在 Traefik 中实现这个。

traefik:
    image: "traefik:latest"
    container_name: "traefik"
    restart: "always"
    command:
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.network=main_net"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.web.http.redirections.entryPoint.to=websecure"
      - "--entrypoints.web.http.redirections.entryPoint.scheme=https"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.myresolver.acme.httpchallenge=true"
      - "--certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web"
      - "[email protected]"
      - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - "/volumes/letsencrypt:/letsencrypt"
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
    labels:
      - "traefik.enable=true"
      - "traefik.http.middlewares.traefik-compress.compress=true"
      - "traefik.http.routers.traefik.rule=Host(`traefik.domain1.local`)"
      - "traefik.http.services.traefik.loadbalancer.server.port=8080"
      - "traefik.http.routers.traefik.entrypoints=websecure"
      - "traefik.http.routers.traefik.tls.certresolver=myresolver"
      - "traefik.http.routers.traefik.service=api@internal"

当前计算机上的所有子域都在当前配置下工作。但我需要将请求从

*.domain2.tech
重定向到共享网络上的另一台物理机。

linux dns traefik
1个回答
0
投票

我建议您查看 traefiks 文档。特别考虑路由器服务

有多个有用的路由器规则,它们就像匹配器一样来匹配您的请求。这些匹配器之一称为“HostRegexp”。顾名思义,它将解析给定的正则表达式。 为了使用“domain2.tech”的任何子域,您可能需要使用“{subdomain:[a-z0-9-]+}.domain2.tech”

为了将流量传递到给定主机,您可以使用服务的负载均衡器的“url”参数。

两者一起,您可能想要以下内容:

- traefik.http.routers.domain2.entrypoints=websecure
- traefik.http.routers.domain2.rule=HostRegexp(`{subdomain:[a-z0-9-]+}.domain2.tech`)
- traefik.http.routers.domain2.service=domain2-service
- traefik.http.services.domain2-service.loadbalancer.server.url="http://192.168.0.1" (or any ip)

作为一个小提示,我将使用 .yaml 文件来创建静态 traefik 路由,而不是使用标签。它更具可读性并且可以更好地组织。有关更多信息,请参阅“文件提供程序示例”。

© www.soinside.com 2019 - 2024. All rights reserved.