You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Traefik如何配置实现domain.com请求路由到带指定路径的后端服务

解决方案

你当前的配置只定义了后端服务地址,缺少路由匹配规则,且直接在服务的server URL里加路径不会自动处理路径前缀替换,按以下步骤修改即可生效:

1. 完整配置示例(以Traefik v2/v3为例)

http:
  # 定义路由规则
  routers:
    my-domain-router:
      rule: "Host(`domain.com`)"
      service: "my-service"
      middlewares:
        - "add-path-prefix" # 调用路径添加中间件
  # 定义中间件:给所有匹配的请求加前缀 /test/foo
  middlewares:
    add-path-prefix:
      addPrefix:
        prefix: "/test/foo"
  # 定义后端服务,服务地址只写到端口即可,路径由中间件添加
  services:
    my-service:
      loadBalancer:
        servers:
          - url: "http://server.local:8080"

2. 原配置不生效的原因

  • 没有配置http.routers规则,Traefik不知道要把domain.com的请求转发到你定义的my-service上
  • 直接在service的server URL里写路径是无效的,Traefik转发时会忽略服务地址里的路径段,仅使用协议、域名、端口部分,路径需要通过中间件显式处理

3. 其他场景适配

如果后续需要把domain.com/bar转发到http://server.local:8080/test/foo/bar,上述配置已经可以支持;如果需要替换已有前缀,可以使用replacePathRegex中间件实现。


内容的提问来源于stack exchange,提问作者DavidB.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 21:24:04