Skip to content

部署说明

生产构建

(服务端代码)

bash
npm run build
node dist/index.js

基础部署建议

  • 使用 pm2 或容器编排管理进程
  • 配置反向代理(Nginx)与 HTTPS
  • 将敏感配置放入环境变量,不提交到仓库

健康检查与日志

  • 提供健康检查接口用于探针监控
  • 记录关键日志:登录、房间加入、异常栈
  • 统一日志采集,便于排障与审计

多实例注意事项

  • Redis 用于共享状态与 Pub/Sub 同步(世界聊天)
  • 所有实例需保持一致的 JWT 签名配置
  • 建议配置连接数上限,避免单实例过载

人数压力测

上线前或扩容前,可使用专用 loadtest_roomloadtest/concurrent-join.ts 做并发连接与消息打点;生产务必关闭压测房或限制访问。详见 人数压力测

文档站静态资源(VitePress)

  • 默认 base/,打包后 HTML 会引用以 / 开头的资源(如 /assets/...),适合站点挂在域名根路径(含 GitHub Pages + 自定义域名,见下)。
  • GitHub Pages 自定义域名:在仓库 Settings → Pages 绑定域名后,对外访问一般为 https://你的域名/(内容在根路径,没有 /仓库名/ 前缀)。此时必须把 VitePress 的 base 设为 '/',否则 HTML 仍会请求 /仓库名/assets/...,在自定义域名下会 404
  • GitHub Pages 默认子路径(未用自定义域名、仅用 https://<用户>.github.io/<仓库名>/)时,必须把 base 设为 /'<仓库名>/'(首尾都要有 /)。若 base 仍为 /,会出现首页闪一下后变为站内 404(路由按域名根解析,与实际子路径不一致)。
  • 不要用 base: './' 代替子路径:多级目录页面上的 ./assets/... 容易解析到错误目录。
  • 构建产物目录:docs/.vitepress/dist,可用 npm run docs:build / npm run docs:preview
  • 本地 docs:devbase/ 时从 http://localhost:端口/ 打开即可。若曾使用非根 base(如 /仓库名/),须从 http://localhost:端口/仓库名/ 打开,否则静态资源与 favicon 会请求到错误路径。

文档站 SEO(百度、搜狗等)

构建产物

  • docs/public/robots.txt → 部署后应在 https://xcs.pyzgame.cn/robots.txt 可访问(404 说明未部署最新 dist 或 public 未拷贝)。
  • npm run docs:build 会在 docs/.vitepress/dist/ 生成:
    • sitemap.xml(提交百度 sitemap)
    • baidu-urls.txt(每行一条 URL,可粘贴到站长平台「手动提交」)
  • 全局 keywords / description / canonicaldocs/.vitepress/seo.tsconfig.tstransformHead

百度「索引量 = 0」常见原因(不是代码坏了)

验证通过 ≠ 已收录。 站长平台显示「已验证」只表示你拥有站点;索引量要等百度抓取并入库,新站常见 数天~数周 仍为 0。

检查项说明
是否重新部署robots.txtsitemap.xml、验证 TXT 都在 dist 根目录;只改本地不 push / 不跑 Actions 则线上没有。
是否提交 sitemap百度搜索资源平台 → 资源提交 → sitemap → 填 https://xcs.pyzgame.cn/sitemap.xml
是否主动推送 URL普通收录 → API 推送手动提交(见下);只放 sitemap 往往较慢。
站点是否可被公网访问用手机 4G(非公司 VPN)打开首页;hosts 把域名指到 127.0.0.1 时百度抓不到真实服务器。
是否新站技术文档站外链少,百度发现慢,需主动推送 + 等待。

推荐操作顺序(自定义域名 xcs.pyzgame.cn

  1. 部署最新文档(push 到触发 GitHub Pages 的分支,等 Actions 绿)。
  2. 浏览器自检(必须 200):
    • https://xcs.pyzgame.cn/robots.txt
    • https://xcs.pyzgame.cn/sitemap.xml
    • https://xcs.pyzgame.cn/25c5429258715746c19faf393677c071.txt(若仍用 TXT 验证)
  3. 站长平台 → 普通收录API 推送:复制接口里的 token,在本地执行(勿把 token 提交 git):
bash
# PowerShell
$env:BAIDU_PUSH_SITE="xcs.pyzgame.cn"
$env:BAIDU_PUSH_TOKEN="你的token"
npm run docs:build
npm run docs:push-baidu

或把 docs/.vitepress/dist/baidu-urls.txt 内容粘贴到「手动提交」。

  1. sitemap 提交https://xcs.pyzgame.cn/sitemap.xml
  2. 抓取诊断(站长平台):输入首页 URL,看「抓取是否成功」「HTTP 状态码」。
  3. 等待 3~14 天 再看索引量;期间可在「链接提交」里每周补推重要页面。

搜狗收录

  • 文件验证(推荐)docs/public/sogousiteverification.txt(内容为当前验证码,与站长平台下载一致)。部署后须能访问 https://xcs.pyzgame.cn/sogousiteverification.txt,且正文与平台「当前最新」一致;验证通过后请勿删除该文件
  • HTML 标签验证(备选)transformHtml<head> 最前注入 sogou_site_verification(见 seo.tsSOGOU_SITE_VERIFICATION)。若已用文件验证通过,可保留 meta,不必删除。
  • 站点为 UTF-8未使用 gb2312Content-Type
  • 站长平台流程:下载验证文件 → 放入域名根目录(即 public/)→ 部署 → 在平台点「确认验证文件可访问」→ 完成验证(文件有效期约 6 小时,过期需重新下载并更新 public/sogousiteverification.txt)。
  • Sitemap 提交https://xcs.pyzgame.cn/sitemap.xml(与百度共用同一份 sitemap.xml)。
  • robots.txt 已允许 Sogou web spider / Sogou inst spider 抓取。

修改域名时

同步改 seo.tsSITE_URLrobots.txt 的 Sitemap、百度/搜狗站长平台里绑定的站点,并重新 build + 部署 + 推送。