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

如何在Turborepo内配置单端口多应用路由,无需外部代理

在Turborepo内部实现单端口统一服务多Next.js应用

可行方案概述

完全可以通过Turborepo内部配置实现需求——新增一个网关Next.js应用作为统一入口,结合Next.js的rewrites功能和Turborepo的任务编排,无需外部代理就能通过单端口(如localhost:3000)路由所有子应用,同时完美支持嵌套路由。

具体实现步骤

1. 添加网关应用

在Turborepo根目录新建一个Next.js应用(命名为gateway),作为统一访问入口,默认运行在localhost:3000。

2. 配置Turborepo任务编排(turbo.json)

修改根目录的turbo.json,确保开发时同时启动网关和所有子应用,构建时按依赖顺序执行:

{
  "$schema": "https://turbo.build/schema.json",
  "pipeline": {
    "dev": {
      "cache": false,
      "persistent": true,
      "dependsOn": ["^dev"]
    },
    "build": {
      "dependsOn": ["^build"],
      "outputs": ["dist/**", ".next/**"]
    }
  }
}

在根目录package.json中添加全局脚本:

{
  "scripts": {
    "dev": "turbo run dev",
    "build": "turbo run build"
  }
}

每个子应用(指标、事件、日志、告警)的package.json保留各自的端口配置,比如告警应用的脚本:

{
  "scripts": {
    "dev": "next dev -p 3004",
    "build": "next build"
  }
}

3. 配置网关的路由转发(next.config.js)

在gateway应用的next.config.js中配置rewrites,将路径前缀映射到对应子应用,通过通配符支持嵌套路由:

/** @type {import('next').NextConfig} */
const nextConfig = {
  async rewrites() {
    return [
      {
        source: '/metrics-app/:path*',
        destination: 'http://localhost:3001/:path*',
      },
      {
        source: '/events-app/:path*',
        destination: 'http://localhost:3002/:path*',
      },
      {
        source: '/logs-app/:path*',
        destination: 'http://localhost:3003/:path*',
      },
      {
        source: '/alert-app/:path*',
        destination: 'http://localhost:3004/:path*',
      },
    ];
  },
};

module.exports = nextConfig;

:path*通配符会完整转发嵌套路由(如/alert-app/apm会被转发到localhost:3004/apm)。

4. 开发与生产环境适配

  • 开发环境:运行npm run dev后,Turborepo会同时启动网关和所有子应用,直接访问localhost:3000下的对应路径即可访问子应用,嵌套路由自动生效。
  • 生产环境:先执行npm run build构建所有应用,之后可以直接启动网关应用的next start;若部署到同一服务器,可将rewrites中的目标地址改为子应用构建产物的相对路径(如/../alerts/.next/server/:path*),避免跨端口请求。

关键说明

该方案完全基于Turborepo的任务编排能力和Next.js原生rewrites功能,没有引入外部代理工具,完全符合Turborepo配置范围要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 21:34:54