生产环境配置
进入生产前,请确保以下关键配置正确,否则会出现「能启动但行为异常」的隐蔽问题。
生产必改项
| 项 | 要求 |
|---|---|
NUXT_AUTH_SECRET | 必须配置强随机值(openssl rand -hex 32),缺失会导致启动检查失败 |
NUXT_JWT_PRIVATE_KEY / NUXT_JWT_PUBLIC_KEY | 使用 OAuth/OIDC 时必须配置固定的 RS256 密钥对 |
NUXT_PASSWORD_RSA_PRIVATE_KEY | 建议配置固定私钥,尤其是多实例部署 |
NUXT_APP_URL | 必须等于浏览器实际访问地址(如 https://your.domain),协议+host+端口完全一致 |
NUXT_ADMIN_PASSWORD | 必须修改默认密码(admin123456) |
| 数据库连接 | 使用独立、有访问控制的 PostgreSQL,避免与本地/默认库混用 |
| SMTP | 配置真实 SMTP,否则邮件相关功能抛错 |
反向代理(Nginx 示例)
Nexus 监听 :3000。生产建议用 Nginx 做 HTTPS 终止与反向代理:
nginx
server {
listen 443 ssl;
server_name your.domain;
ssl_certificate /path/fullchain.pem;
ssl_certificate_key /path/privkey.pem;
# 上传文件(若走 /uploads 路由,由应用提供,无需额外配置)
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# WebSocket / SSE(流式对话)需透传
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 300s;
}
}要点:
- HTTPS:证书由 Nginx 终止,上游用
X-Forwarded-Proto告知应用真实协议,确保NUXT_APP_URL用https://。 - 超时:流式对话(SSE)时间较长,调大
proxy_read_timeout。 - CORS:跨域调用后端时,确保
NUXT_APP_URL的 Origin 在允许范围;资产类接口(签到/充值)会校验请求 Origin 的 host 与NUXT_APP_URL一致,不一致返回 403。
静态资源与 SEO
- 上传文件通过
/uploads/**由应用路由提供,存储位置(NUXT_UPLOAD_DIR)变化不影响对外 URL。 - 多语言 SEO(sitemap / hreflang / canonical)依赖
NUXT_APP_URL域名,配置正确才能被搜索引擎正确索引。
上线检查清单
- [ ]
NUXT_AUTH_SECRET已改为强随机值 - [ ] OAuth/OIDC 启用时,JWT RSA 密钥已生成并配置
- [ ] 密码传输 RSA 私钥已固定配置
- [ ]
NUXT_APP_URL与访问域名完全一致(含 https) - [ ] 默认管理员密码已修改
- [ ] 数据库连接独立于开发库
- [ ] SMTP 已配置且可发信
- [ ] Nginx 反代配置完成(HTTPS、超时、协议头)
- [ ] 支付商户密钥已配置(如需真实支付)
- [ ] 防火墙仅放行 443(与必要的 3000 内部端口)
升级
- 拉取新代码(
git pull)。 - 重新构建并启动:
docker compose up -d --build。 - 启动期自动执行新增迁移,无需手动操作。
- 观察日志确认无迁移/启动错误。
详见 运维与排障。

