安全、备份与升级问答
JWT 密钥可以复制到另一台服务器吗?
迁移整个生产实例时,应通过受控方式同步必要配置;但不要随意复制其他服务器的 data/jwt-secret,更不能提交到版本库。密钥泄露会影响所有已签发会话,应立即轮换并让旧会话失效。
开放接口令牌放在哪里?
仅通过 X-Api-Token 或 Authorization: Bearer 请求头发送。不要写在 URL、截图、前端源代码或公开日志中。
备份包含什么?
最低要求是数据库、应用配置、JWT 密钥、上传文件和必要的自定义静态文件。Elasticsearch 索引通常可以从数据库重建,但大数据量实例仍应评估快照策略。
如何执行恢复?
恢复会覆盖当前数据库。先停写入、备份当前状态,再使用明确确认变量执行恢复脚本:
JUZHENPAN_RESTORE_CONFIRM=RESTORE ./restore.sh backups/juzhenpan-db-时间.sql.gz恢复后检查迁移版本、管理员登录、资源数量和搜索索引。
升级包校验失败怎么办?
不要绕过校验。确认升级包平台和 CPU 架构正确,SHA256 未变化,版本说明存在,Ed25519 签名来自受信发布密钥,并且版本高于当前版本。
可以执行 docker compose down -v 吗?
除非你明确要永久删除 Compose 管理的数据卷,否则不要执行。普通重启或升级不需要删除数据卷。