Appearance
升级、备份与恢复
升级和恢复都可能影响管理入口及业务代理,请安排维护窗口,并在操作前确认有可用备份和回退方案。本文适用于安装部署中的单容器交付方式。
选择备份方式
| 方式 | 适合场景 | 应用状态 | 恢复方式 |
|---|---|---|---|
| 系统加密备份 | 日常备份、配置迁移 | 保持运行,由管理员在界面导出 | 在正常运行的管理界面上传 .hihttps-backup 并输入口令 |
| 文件级备份 | 升级前完整保全部署、故障回退 | 先停止应用再复制 | 停止应用,恢复同一时间点的数据、配置与匹配镜像 |
两种备份范围不同,不能互相当作同一种文件使用。升级前需要完整回退能力时,应准备文件级备份,而不只导出系统备份。
数据备份
系统加密备份
- 管理员进入
设置 -> 备份与恢复,找到导出备份区域。 - 设置备份口令并再次确认。使用满足页面要求的强口令,妥善保管;恢复时需要同一口令。
- 点击 导出备份,等待浏览器下载
.hihttps-backup文件。 - 确认文件已下载完成,并记录备份时间、应用版本和来源实例。
- 将备份文件与口令分开保存在受控位置,重要变更后及时重新备份。
包含的主要内容:用户与权限、访问服务、端口转发、访问控制、证书及私钥、系统设置、API Key,以及迁移已保存凭据所需的材料。
不包含完整部署环境:操作日志、业务日志文件、部署目录的 .env、docker-compose.yml、许可证、镜像,以及所有手工放置的代理配置文件都不能视为已包含。需要保留这些内容时,应单独备份或采用文件级备份。
备份文件也属于敏感数据
系统备份虽然加密,但包含账号、配置和证书私钥。不要把备份文件与解密口令放在同一封邮件、工单或共享链接中,也不要将备份上传到代码仓库。
文件级备份
- 安排维护窗口,通知受影响的业务使用者。
- 在部署目录执行
docker compose stop,确认应用已停止。 - 使用受控备份工具保存完整的
hihttps_data/、.env、docker-compose.yml和许可证文件。 - 一并保留对应版本的部署脚本、镜像归档和授权配置,记录来源与备份时间。
- 完成后执行
docker compose up -d --wait --wait-timeout 180,检查健康状态及实际业务访问。
不要只复制数据库文件
不要在应用运行时仅复制 database.sqlite,这样可能遗漏尚未合并的事务,并与证书文件和动态配置不一致。完整目录中的隐藏文件、权限、符号链接关系,以及存在的 database.sqlite-wal、database.sqlite-shm 都应保留。
版本升级
升级前
- 确认维护窗口;升级不是零停机操作。
- 取得与服务器架构匹配的新版本交付文件,并核对随包升级说明。
- 完成文件级备份,保留旧版本镜像和部署脚本。
- 记录管理地址、管理员登录信息、关键服务地址以及当前健康状态,便于升级后核对。
执行升级
- 将新版本交付文件放入原部署目录,保留
.env、许可证和完整hihttps_data/。 - 将旧镜像归档移到独立的备份目录,避免在安装目录混放多个版本。
- 在原目录执行:
bash
cd /opt/hihttps
bash deploy.sh --no-tune --skip-firewall-hint未显式提供新的授权或 CertCloud 地址时,脚本沿用已有配置。确需指定镜像版本时,使用 --image-tag <tag> 选择与当前架构匹配的唯一归档。
升级不要使用重置
升级时不要加 --reset,该参数会不可逆删除完整应用数据。遇到旧数据预检、权限或版本选择错误时,先处理具体报错,不要重置后重试。
升级完成检查
- 容器健康状态正常,管理员能通过原管理地址登录。
- 账号、服务、证书和访问控制等配置完整。
- 关键业务域名返回预期内容,HTTPS 证书及拒绝访问的规则仍正确。
- 使用 CertCloud 时,检查订单同步和自动续期状态,不因“能登录”就认定所有任务正常。
- 确认稳定后再安排旧版本归档的保留或清理,不在升级刚结束时删除唯一回退副本。
恢复
从系统加密备份恢复
恢复会替换备份范围内的现有数据,不是追加导入,也不是只恢复某一个网站。
- 安排维护窗口,先备份目标实例的当前数据。
- 确保目标应用正常运行,能够以管理员身份登录。建议使用与备份相同的版本;跨版本恢复先在隔离环境验证。
- 进入
设置 -> 备份与恢复的恢复区域,上传.hihttps-backup文件,输入导出时使用的口令。 - 阅读并确认覆盖提示,点击 恢复备份,等待处理结束。
- 恢复成功后页面会刷新。需要重新登录时,使用备份中保存的用户信息,而不是假定恢复前的临时账号仍然存在。
- 核对服务、证书、访问控制、管理入口证书、CertCloud 账号及 API Key,并从客户端验证业务。
此方式依赖运行中的管理界面,不要先停止应用。文件无法解密时,核对口令和文件完整性;不要反复覆盖当前实例来试验未知来源的备份。
从文件级备份恢复
适用于完整部署回退,或管理界面无法用于恢复的情况:
- 停止应用,并将当前数据完整保全到另一位置。
- 恢复同一时间点的完整数据目录、配置、许可证及匹配版本的镜像和脚本;不要把新旧目录混合覆盖。
- 核对文件所有者、权限和符号链接关系。
- 启动应用,检查容器健康状态和管理登录。
- 从真实客户端核对业务响应、证书和访问规则。
数据库可能已在升级时更新,不能假定只换回旧镜像即可降级。回退应使用匹配的旧版本和升级前数据;没有完整备份时先联系支持人员确认方案。
恢复完成检查
- 管理地址可访问,恢复后的用户能够登录。
- 关键服务、证书私钥和访问规则完整,实际业务响应正确。
- CertCloud 凭据仍对应预期账号,网络可达,续期状态符合维护安排。
- 外部系统使用的 API Key 与恢复后的配置一致。
- 恢复后的新基线已重新备份,并记录本次恢复时间与结果。
