# 生产环境部署和监控指南(轻量级版本) ## 目录 1. [环境准备](#环境准备) 2. [部署流程](#部署流程) 3. [轻量级监控配置](#轻量级监控配置) 4. [告警配置](#告警配置) 5. [维护和运维](#维护和运维) ## 环境准备 ### 系统要求 - Linux/Unix 服务器(推荐 Ubuntu 22.04+) - Node.js 18+ - 至少 1GB RAM - 至少 5GB 磁盘空间 ### 必需的软件 ```bash # 安装 Node.js curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install -y nodejs # 安装 PM2(进程管理器) npm install -g pm2 ``` ## 部署流程 ### 1. 配置环境变量 复制并编辑生产环境配置: ```bash cp .env.production .env.local ``` 更新以下关键配置: - `RESEND_API_KEY`: Resend API 密钥 - `NEXT_PUBLIC_SENTRY_DSN`: Sentry DSN - `NEXTAUTH_SECRET`: 认证密钥 - `ADMIN_PASSWORD`: 管理员密码 - `NEXT_PUBLIC_GA_MEASUREMENT_ID`: Google Analytics ID(可选) ### 2. 安装依赖 ```bash npm ci --production=false ``` ### 3. 运行测试 ```bash cd e2e TEST_ENV=development npx playwright test --reporter=list cd .. ``` ### 4. 构建生产版本 ```bash npm run build ``` ### 5. 启动生产服务器 使用 PM2 启动服务: ```bash pm2 start npm --name "novalon-website" -- start ``` ### 6. 验证部署 访问以下URL验证部署: - 网站: http://localhost:3000 - 健康检查: http://localhost:3000/api/health - 管理后台: http://localhost:3000/admin ## 轻量级监控配置 ### 监控架构 采用轻量级监控方案,包含以下组件: 1. **Sentry** - 错误监控和性能追踪 2. **UptimeRobot** - 外部可用性监控 3. **Google Analytics** - 用户行为和访问统计 4. **健康检查API** - 内部服务状态 5. **邮件告警** - 关键问题通知 ### 1. Sentry 错误监控 #### 配置步骤 Sentry 已经集成在项目中,只需配置环境变量: ```env NEXT_PUBLIC_SENTRY_DSN=https://xxxxxxxxxxxxx@o4507xxxxx.ingest.sentry.io/xxxxxxxxxxxxx ``` #### 配置告警 1. 登录 Sentry Dashboard 2. 进入 Settings → Alerts 3. 创建新的 Alert Rule: - **Issue**: Critical Errors - **Environment**: Production - **Frequency**: Immediately - **Email**: ops@novalon.cn #### 功能特性 - JavaScript 错误捕获 - 性能监控 - 用户会话回放 - 错误告警 ### 2. UptimeRobot 可用性监控 #### 注册和配置 1. 访问 https://uptimerobot.com/ 2. 注册免费账号 3. 创建新的 Monitor: - **Monitor Type**: HTTP(s) - **URL**: https://www.novalon.cn - **Monitoring Interval**: 5 minutes - **Alert Contacts**: ops@novalon.cn #### 配置告警 在 UptimeRobot 中设置: - **Down Alert**: 网站不可用时发送邮件 - **Up Alert**: 网站恢复时发送邮件 - **SSL Expiry**: SSL 证书过期提醒 #### 推荐监控端点 ```yaml - 主页: https://www.novalon.cn - 健康检查: https://www.novalon.cn/api/health - 管理后台: https://www.novalon.cn/admin ``` ### 3. Google Analytics 访问统计 #### 获取跟踪 ID 1. 访问 https://analytics.google.com/ 2. 创建新的 GA4 属性 3. 复制测量 ID(格式:G-XXXXXXXXXX) #### 配置环境变量 ```env NEXT_PUBLIC_GA_MEASUREMENT_ID=G-XXXXXXXXXX ``` #### 集成到应用 创建 `src/lib/analytics.ts`: ```typescript export const GA_MEASUREMENT_ID = process.env.NEXT_PUBLIC_GA_MEASUREMENT_ID; export const pageview = (url: string) => { if (typeof window !== 'undefined' && GA_MEASUREMENT_ID) { window.gtag('config', GA_MEASUREMENT_ID, { page_path: url, }); } }; export const event = (action: string, category: string, label?: string) => { if (typeof window !== 'undefined' && GA_MEASUREMENT_ID) { window.gtag('event', action, { event_category: category, event_label: label, }); } }; ``` 在 `src/app/layout.tsx` 中添加: ```typescript import Script from 'next/script'; export default function RootLayout({ children }: { children: React.ReactNode }) { return ( {process.env.NEXT_PUBLIC_GA_MEASUREMENT_ID && (