Payload CMS 是一款原生集成 Next.js 的现代化、开源 Headless CMS。它利用 Next.js App Router 和 React Server Components 技术,允许开发者将 CMS 直接嵌入到 Next.js 应用程序中,实现后端内容管理与前端展示的无缝融合,拥有灵活性与开发者体验。
本文将介绍如何将 Payload 作为 Headless CMS,配合 MongoDB 数据库构建高性能网站。通过 EdgeOne Pages 的一键部署能力,您可以快速上线您的 Payload CMS 系统,同时获得全球 CDN 加速,实现网站的最佳性能和用户体验。
快速入门
Payload + MongoDB 集成主要包含四个关键步骤:MongoDB 准备、S3 对象存储准备、其他Payload环境变量配置、部署到 EdgeOne Pages。下面将详细介绍每个步骤的具体操作。
MongoDB 准备
本方案中使用 MongoDB 作为数据库来存储内容数据,MongoDB 服务推荐使用 MongoDB Atlas(提供免费额度)或腾讯云 MongoDB。
1. 注册并创建集群
2. 创建数据库用户
在 Database Access 页面创建一个新用户,记录下 Username 和 Password。

3. 配置网络访问
在 Network Access 页面,添加 IP 地址,以确保 EdgeOne Pages 的构建和运行环境可以连接到数据库。

4. 获取连接字符串
在 Cluster 页面点击 Connect 按钮。
选择 Drivers。
复制提供的 Connection String(通常以 mongodb+srv:// 开头)。
将连接字符串中的 <password> 替换为您刚才创建的实际密码。
请记下这个连接字符串,稍后我们将把它填入环境变量 DATABASE_URI 中。

S3 对象存储准备
由于 Serverless 环境的文件系统通常是临时的(每次重新部署或冷启动后文件会丢失),我们需要将用户上传的图片、视频等媒体文件存储在外部对象存储服务中。Payload 支持任何兼容 S3 协议的存储(如腾讯云 COS、AWS S3、Cloudflare R2 等)。
以腾讯云 COS 为例:
1. 创建存储桶
2. 获取密钥
在访问管理(CAM)中获取 SecretId 和 SecretKey。稍后将填入环境变量 S3_ACCESS_KEY_ID 和 S3_SECRET_ACCESS_KEY 中。
3. 记录配置信息
Bucket Name:存储桶名称。
Region:所属地域(例如 ap-shanghai)。
Endpoint:访问域名。
稍后将填入环境变量 S3_BUCKET、S3_REGION、S3_ENDPOINT 中。
其他 Payload 环境变量准备
1. PAYLOAD_SECRET
Payload 用于签署 JWT 令牌等密钥。
生成方法:您可以在终端运行
openssl rand -hex 32 生成,或者随意输入一串足够长且复杂的随机字符。2. NEXT_PUBLIC_SERVER_URL
这是您的网站最终访问的域名。在初次部署时,如果还没有自定义域名,可以使用 EdgeOne Pages 提供的默认域名,或者先填入 http://localhost:3000 待部署完成后再更新。
部署到 EdgeOne Pages
1. 使用模板
2. 关联代码仓库
授权并选择您的 Git 账户(GitHub/GitLab 等),EdgeOne 将会自动为您创建一个新的仓库。
3. 配置环境变量
在部署配置页面的“环境变量”区域,填入前面准备好的信息:

4. 点击部署
确认无误后,单击创建按钮开始部署。
部署完成后,您将获得一个访问域名。点击访问,在 URL 后加上 /admin(例如 https://your-site.edgeone.app/admin),即可看到 Payload CMS 的初始化界面,创建您的第一个管理员账号。
至此,我们已经完成了 Payload 方案的完整部署流程。通过这个方案,您可以:
使用 Payload 管理内容,享受其强大的 Headless CMS 功能。
通过 EdgeOne Pages 实现自动化部署,简化运维工作。
获得全球 CDN 加速,提升用户体验。
更多相关内容
了解 Payload 更多功能,详情请参见 Payload 官方文档。