部署说明
生产构建
(服务端代码)
bash
npm run build
node dist/index.js基础部署建议
- 使用
pm2或容器编排管理进程 - 配置反向代理(Nginx)与 HTTPS
- 将敏感配置放入环境变量,不提交到仓库
健康检查与日志
- 提供健康检查接口用于探针监控
- 记录关键日志:登录、房间加入、异常栈
- 统一日志采集,便于排障与审计
多实例注意事项
- Redis 用于共享状态与 Pub/Sub 同步(世界聊天)
- 所有实例需保持一致的 JWT 签名配置
- 建议配置连接数上限,避免单实例过载
人数压力测
上线前或扩容前,可使用专用 loadtest_room 与 loadtest/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:dev:base为/时从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 / canonical 见
docs/.vitepress/seo.ts、config.ts的transformHead。
百度「索引量 = 0」常见原因(不是代码坏了)
验证通过 ≠ 已收录。 站长平台显示「已验证」只表示你拥有站点;索引量要等百度抓取并入库,新站常见 数天~数周 仍为 0。
| 检查项 | 说明 |
|---|---|
| 是否重新部署 | robots.txt、sitemap.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)
- 部署最新文档(push 到触发 GitHub Pages 的分支,等 Actions 绿)。
- 浏览器自检(必须 200):
https://xcs.pyzgame.cn/robots.txthttps://xcs.pyzgame.cn/sitemap.xmlhttps://xcs.pyzgame.cn/25c5429258715746c19faf393677c071.txt(若仍用 TXT 验证)
- 站长平台 → 普通收录 → 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 内容粘贴到「手动提交」。
- sitemap 提交:
https://xcs.pyzgame.cn/sitemap.xml - 抓取诊断(站长平台):输入首页 URL,看「抓取是否成功」「HTTP 状态码」。
- 等待 3~14 天 再看索引量;期间可在「链接提交」里每周补推重要页面。
搜狗收录
- 文件验证(推荐):
docs/public/sogousiteverification.txt(内容为当前验证码,与站长平台下载一致)。部署后须能访问https://xcs.pyzgame.cn/sogousiteverification.txt,且正文与平台「当前最新」一致;验证通过后请勿删除该文件。 - HTML 标签验证(备选):
transformHtml在<head>最前注入sogou_site_verification(见seo.ts的SOGOU_SITE_VERIFICATION)。若已用文件验证通过,可保留 meta,不必删除。 - 站点为 UTF-8,未使用
gb2312的Content-Type。 - 站长平台流程:下载验证文件 → 放入域名根目录(即
public/)→ 部署 → 在平台点「确认验证文件可访问」→ 完成验证(文件有效期约 6 小时,过期需重新下载并更新public/sogousiteverification.txt)。 - Sitemap 提交:
https://xcs.pyzgame.cn/sitemap.xml(与百度共用同一份sitemap.xml)。 robots.txt已允许 Sogou web spider / Sogou inst spider 抓取。
修改域名时
同步改 seo.ts 的 SITE_URL、robots.txt 的 Sitemap、百度/搜狗站长平台里绑定的站点,并重新 build + 部署 + 推送。