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

如何在Vercel上同时运行apollo-server与Next.js项目?

解决方案

方案1:Next.js内置API路由集成Apollo Server(最推荐,无需单独启动服务)

该方案直接将Apollo Server嵌入Next.js原生路由中,和项目共用端口,无需单独启动独立服务,适配性最高,不会出现进程冲突问题。

  • 安装对应依赖:
    npm install @apollo/server @as-integrations/next graphql
  • 按你的路由模式编写Apollo入口:
    • Pages Router:新建pages/api/graphql.ts文件,写入Apollo Server配置和集成代码即可
    • App Router:新建app/api/graphql/route.ts文件,写入Apollo Server配置和集成代码即可
  • 配置完成后直接执行npm run dev,Apollo Server会随Next.js服务一同启动,访问路径为http://localhost:3000/api/graphql,开发和生产环境均无需额外调整。

方案2:多进程工具同时启动两个独立服务(适合必须拆分Apollo服务的场景)

你之前使用的node server & next dev命令失效的原因是Shell后台运行符&的进程调度逻辑存在IO阻塞问题,两个进程会争抢输入输出权限最终同时卡住,使用专门的多进程管理工具即可解决:

  • 安装开发依赖:
    npm install -D concurrently
  • 修改package.json中的scripts配置:
{
  "scripts": {
    "dev": "concurrently \"npm run dev:next\" \"npm run dev:apollo\"",
    "dev:next": "next dev -p 3000",
    "dev:apollo": "node server.js"
  }
}
  • 额外注意将Apollo Server的监听端口配置为3000之外的端口(比如4000),避免端口冲突,之后直接执行npm run dev即可同时正常启动两个服务。

部署问题修复

Serverless/Lambda部署

直接使用方案1的内置路由集成方式,无需单独部署Apollo服务,正常打包部署Next.js项目即可,Apollo Server会自动适配Serverless运行环境。

独立服务器部署

  • 开发环境直接使用方案2的concurrently启动即可
  • 生产环境推荐使用PM2管理两个进程,编写对应配置文件同时启动next start和Apollo服务进程即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 22:12:03