# 部署说明 ## 环境 - AlmaLinux 9 - Nginx - Cloudflare CDN - Cloudflare SSL/TLS:`Full (strict)` 网站是纯静态文件,不需要数据库、Node.js 服务或常驻应用进程。 ## 生成发布包 在仓库根目录执行: ```powershell Compress-Archive -Path .\site\* -DestinationPath .\midctrl-homepage-public.zip -CompressionLevel Optimal Get-FileHash .\midctrl-homepage-public.zip -Algorithm SHA256 ``` 发布 ZIP 不应提交到 Git。 ## 部署网站文件 将 ZIP 上传后解压到独立网站目录: ```bash mkdir -p /var/www/midctrl.com unzip -o /root/midctrl-homepage-public.zip -d /var/www/midctrl.com chown -R root:nginx /var/www/midctrl.com find /var/www/midctrl.com -type d -exec chmod 755 {} \; find /var/www/midctrl.com -type f -exec chmod 644 {} \; ``` 如果 SELinux 已启用,再执行: ```bash restorecon -Rv /var/www/midctrl.com ``` ## Nginx `nginx/midctrl.com.example.conf` 是公开、脱敏的参考模板。不要直接覆盖生产配置。部署时需要: 1. 将现有站点 `root` 指向 `/var/www/midctrl.com`。 2. 合并安全响应头、缓存和 gzip 规则。 3. 保留服务器现有的所有私有 location 和代理请求头。 4. 保留有效的 Cloudflare Origin Certificate 路径。 5. 确认字体使用 `font/woff2` 或兼容的 MIME 类型。 生效前必须执行: ```bash nginx -t systemctl reload nginx ``` 只有 `nginx -t` 成功后才能 reload。 ## 部署后检查 - 首页和 404 页面正常。 - Blog 与 Tools 在新标签页打开。 - Noto Serif SC 字体返回 200。 - 控制台无 JavaScript、WebGL 或资源错误。 - Sakura 在前台页面持续运动,页面进入后台后暂停并能恢复。 - 服务器原有私有服务仍正常。 - 仓库 README、测试和 Nginx 示例没有出现在网站根目录。 ## 回滚 部署前备份当前网站目录和 Nginx 配置。发生问题时恢复备份,运行 `nginx -t`,成功后 reload。不要把生产备份提交到 Git。