Cloudflare Pages + Access 配置指南
本文介绍如何配置 Cloudflare Pages 自动部署和 Cloudflare Access 认证。
前置条件
- Cloudflare 账号(Free 计划即可,Access 免费支持 50 用户)
- 自定义域名已托管在 Cloudflare(可选,也可使用
*.pages.dev域名) - GitHub Organization 管理员权限
第一步:配置 Cloudflare Pages
- 登录 Cloudflare Dashboard
- 进入 Workers & Pages > Create
- 选择 Connect to Git,关联 GitHub 仓库
primatrix/wiki - 配置构建设置:
- Production branch:
main - Build command:
npm run docs:build - Build output directory:
docs/.vitepress/dist - Node.js version: 在环境变量中设置
NODE_VERSION=20
- Production branch:
- 点击 Save and Deploy
第二步:配置自定义域名(可选)
- 在 Pages 项目设置中,进入 Custom domains
- 添加域名(如
wiki.yourcompany.com) - Cloudflare 会自动配置 DNS 和 SSL
第三步:配置 Cloudflare Access
- 进入 Zero Trust > Access > Applications
- 点击 Add an application > Self-hosted
- 配置应用:
- Application name: Internal Wiki
- Application domain: 你的 wiki 域名
- Session Duration: 24 hours
- 配置 Access Policy:
- Policy name: Org Members Only
- Action: Allow
- Include: Login Methods → GitHub
- Require: GitHub Organizations →
你的组织名
- 保存应用
第四步:配置 GitHub OAuth App
- Cloudflare Access 会引导你配置 GitHub OAuth
- 进入 Zero Trust > Settings > Authentication
- 添加 GitHub 作为 Identity Provider
- 按提示在 GitHub 创建 OAuth App 并填入 Client ID 和 Secret
验证
- 使用无痕窗口访问 wiki URL
- 应看到 Cloudflare Access 登录页面
- 点击 GitHub 登录,授权后应能看到 wiki 内容
- 使用非组织成员的 GitHub 账号测试,应被拒绝访问
预览部署保护
Cloudflare Pages 会为每个 PR 生成预览 URL(*.pages.dev),这些 URL 默认不受 Access 策略保护。保护方案:
- 方案 A:在 Cloudflare Access 中创建第二个应用,使用通配符策略覆盖
*.wiki-project.pages.dev - 方案 B:将预览部署限制到一个已受 Access 保护的自定义域名
- 方案 C:在 Cloudflare Pages 设置中禁用预览部署(最简单,适用于对未发布内容安全性要求高的场景)