Skip to content

升级、备份与恢复 ​

升级和恢复都可能影响管理入口及业务代理,请安排维护窗口,并在操作前确认有可用备份和回退方案。本文适用于安装部署中的单容器交付方式。

选择备份方式 ​

方式适合场景应用状态恢复方式
系统加密备份日常备份、配置迁移保持运行,由管理员在界面导出在正常运行的管理界面上传 .hihttps-backup 并输入口令
文件级备份升级前完整保全部署、故障回退先停止应用再复制停止应用,恢复同一时间点的数据、配置与匹配镜像

两种备份范围不同,不能互相当作同一种文件使用。升级前需要完整回退能力时,应准备文件级备份,而不只导出系统备份。

数据备份 ​

系统加密备份 ​

  1. 管理员进入 设置 -> 备份与恢复,找到导出备份区域。
  2. 设置备份口令并再次确认。使用满足页面要求的强口令,妥善保管;恢复时需要同一口令。
  3. 点击 导出备份,等待浏览器下载 .hihttps-backup 文件。
  4. 确认文件已下载完成,并记录备份时间、应用版本和来源实例。
  5. 将备份文件与口令分开保存在受控位置,重要变更后及时重新备份。

包含的主要内容:用户与权限、访问服务、端口转发、访问控制、证书及私钥、系统设置、API Key,以及迁移已保存凭据所需的材料。

不包含完整部署环境:操作日志、业务日志文件、部署目录的 .env、docker-compose.yml、许可证、镜像,以及所有手工放置的代理配置文件都不能视为已包含。需要保留这些内容时,应单独备份或采用文件级备份。

备份文件也属于敏感数据

系统备份虽然加密,但包含账号、配置和证书私钥。不要把备份文件与解密口令放在同一封邮件、工单或共享链接中,也不要将备份上传到代码仓库。

文件级备份 ​

  1. 安排维护窗口,通知受影响的业务使用者。
  2. 在部署目录执行 docker compose stop,确认应用已停止。
  3. 使用受控备份工具保存完整的 hihttps_data/、.env、docker-compose.yml 和许可证文件。
  4. 一并保留对应版本的部署脚本、镜像归档和授权配置,记录来源与备份时间。
  5. 完成后执行 docker compose up -d --wait --wait-timeout 180,检查健康状态及实际业务访问。

不要只复制数据库文件

不要在应用运行时仅复制 database.sqlite,这样可能遗漏尚未合并的事务,并与证书文件和动态配置不一致。完整目录中的隐藏文件、权限、符号链接关系,以及存在的 database.sqlite-wal、database.sqlite-shm 都应保留。

版本升级 ​

升级前 ​

  • 确认维护窗口;升级不是零停机操作。
  • 取得与服务器架构匹配的新版本交付文件,并核对随包升级说明。
  • 完成文件级备份,保留旧版本镜像和部署脚本。
  • 记录管理地址、管理员登录信息、关键服务地址以及当前健康状态,便于升级后核对。

执行升级 ​

  1. 将新版本交付文件放入原部署目录,保留 .env、许可证和完整 hihttps_data/。
  2. 将旧镜像归档移到独立的备份目录,避免在安装目录混放多个版本。
  3. 在原目录执行:
bash
cd /opt/hihttps
bash deploy.sh --no-tune --skip-firewall-hint

未显式提供新的授权或 CertCloud 地址时,脚本沿用已有配置。确需指定镜像版本时,使用 --image-tag <tag> 选择与当前架构匹配的唯一归档。

升级不要使用重置

升级时不要加 --reset,该参数会不可逆删除完整应用数据。遇到旧数据预检、权限或版本选择错误时,先处理具体报错,不要重置后重试。

升级完成检查 ​

  • 容器健康状态正常,管理员能通过原管理地址登录。
  • 账号、服务、证书和访问控制等配置完整。
  • 关键业务域名返回预期内容,HTTPS 证书及拒绝访问的规则仍正确。
  • 使用 CertCloud 时,检查订单同步和自动续期状态,不因“能登录”就认定所有任务正常。
  • 确认稳定后再安排旧版本归档的保留或清理,不在升级刚结束时删除唯一回退副本。

恢复 ​

从系统加密备份恢复 ​

恢复会替换备份范围内的现有数据,不是追加导入,也不是只恢复某一个网站。

  1. 安排维护窗口,先备份目标实例的当前数据。
  2. 确保目标应用正常运行,能够以管理员身份登录。建议使用与备份相同的版本;跨版本恢复先在隔离环境验证。
  3. 进入 设置 -> 备份与恢复 的恢复区域,上传 .hihttps-backup 文件,输入导出时使用的口令。
  4. 阅读并确认覆盖提示,点击 恢复备份,等待处理结束。
  5. 恢复成功后页面会刷新。需要重新登录时,使用备份中保存的用户信息,而不是假定恢复前的临时账号仍然存在。
  6. 核对服务、证书、访问控制、管理入口证书、CertCloud 账号及 API Key,并从客户端验证业务。

此方式依赖运行中的管理界面,不要先停止应用。文件无法解密时,核对口令和文件完整性;不要反复覆盖当前实例来试验未知来源的备份。

从文件级备份恢复 ​

适用于完整部署回退,或管理界面无法用于恢复的情况:

  1. 停止应用,并将当前数据完整保全到另一位置。
  2. 恢复同一时间点的完整数据目录、配置、许可证及匹配版本的镜像和脚本;不要把新旧目录混合覆盖。
  3. 核对文件所有者、权限和符号链接关系。
  4. 启动应用,检查容器健康状态和管理登录。
  5. 从真实客户端核对业务响应、证书和访问规则。

数据库可能已在升级时更新,不能假定只换回旧镜像即可降级。回退应使用匹配的旧版本和升级前数据;没有完整备份时先联系支持人员确认方案。

恢复完成检查 ​

  • 管理地址可访问,恢复后的用户能够登录。
  • 关键服务、证书私钥和访问规则完整,实际业务响应正确。
  • CertCloud 凭据仍对应预期账号,网络可达,续期状态符合维护安排。
  • 外部系统使用的 API Key 与恢复后的配置一致。
  • 恢复后的新基线已重新备份,并记录本次恢复时间与结果。