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

Traefik路径路由配置问题:/api请求未正确转发至API服务

修正Traefik路由配置的步骤

你的配置里有几个关键问题导致/api前缀请求被错误路由到web服务,下面是修正后的完整配置:

version: "3.9"
services:
  
  api: 
    image: 'juliandimitrov/api-image:latest'
    container_name: 'api'
    expose:
      - "80"
    environment:
      - ASPNETCORE_URLS=http://0.0.0.0:80
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.api.entrypoints=web"
      - "traefik.http.routers.api.rule=Host(`my-site.com`) && PathPrefix(`/api`)"
      - "traefik.http.middlewares.api-stripprefix.stripprefix.prefixes=/api"
      - "traefik.http.routers.api.middlewares=api-stripprefix@docker"
      - "traefik.http.routers.api.priority=10"
      - "traefik.http.services.api.loadbalancer.server.port=80"

  web:
    image: 'juliandimitrov/web-image:latest'
    container_name: 'web'
    expose:
      - "80"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.web.entrypoints=web"
      - "traefik.http.routers.web.rule=Host(`my-site.com`)"
      - "traefik.http.services.web.loadbalancer.server.port=80"

  proxy:
    image: "traefik:v2.5"
    container_name: "proxy"
    command:
      - "--log.level=DEBUG"
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
    ports:
      - "80:80"
      - "8080:8080"
    volumes:
      - //var/run/docker.sock:/var/run/docker.sock:ro

修改说明:

  1. 修正api路由的主机规则:把HostRegexp(my-site.com/api)改为Host(my-site.com),HostRegexp是用来匹配主机名的,你的请求主机是my-site.com,路径才是/api,主机部分不能包含路径。
  2. 修正中间件引用名称:之前定义的中间件是api-stripprefix,但引用时写的是myapp-stripprefix@docker,名称不匹配导致中间件未生效,现在改为一致的api-stripprefix@docker。
  3. 设置api路由优先级:添加priority=10,让Traefik优先匹配/api前缀的路由规则,避免被web服务的通用主机规则拦截。
  4. 启用入口点配置(推荐):取消entrypoints=web的注释,明确指定路由使用的入口点,配置逻辑更清晰。
  5. 添加服务暴露限制(可选):在Traefik的命令中加入--providers.docker.exposedbydefault=false,只处理明确开启traefik.enable=true的服务,避免自动暴露无关容器。

重启docker-compose服务后,http://my-site.com/api/*的请求会正确路由到api服务,根路径请求仍会指向web服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 00:26:23