Skip to content

生产环境配置 ​

进入生产前,请确保以下关键配置正确,否则会出现「能启动但行为异常」的隐蔽问题。

生产必改项 ​

项要求
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 内部端口)

升级 ​

  1. 拉取新代码(git pull)。
  2. 重新构建并启动:docker compose up -d --build。
  3. 启动期自动执行新增迁移,无需手动操作。
  4. 观察日志确认无迁移/启动错误。

详见 运维与排障。