温馨提示×

Debian上Nginx备份与恢复策略

小樊
38
2025-11-30 04:25:40
栏目: 智能运维

Debian上Nginx备份与恢复策略

一 备份范围与准备

  • 明确备份范围:Nginx 配置、网站文件、SSL 证书,以及与站点相关的动态数据(如数据库)。常见路径为:配置 /etc/nginx/,网站根目录 /var/www/,证书常见在 /etc/nginx/ssl//etc/ssl/。为降低风险,变更前先做配置备份,变更失败可快速回滚。
  • 准备与约束:具备 root/sudo 权限;尽量在业务低峰期操作;备份文件需妥善存放并可异地/离线保存;恢复前先在测试环境验证。

二 备份策略与实施

  • 手动一次性备份(适合临时变更前)
    • 配置与站点:
      • 打包:sudo tar -czvf nginx_backup_$(date +%F).tar.gz /etc/nginx/
      • 或单文件/目录拷贝:sudo cp -r /etc/nginx /etc/nginx.bak_$(date +%F)
    • 网站文件:sudo tar -czvf www_backup_$(date +%F).tar.gz /var/www/
    • SSL 证书:
      • 打包:sudo tar -czvf ssl_backup_$(date +%F).tar.gz /etc/nginx/ssl/
      • 或同步:sudo rsync -avz /etc/nginx/ssl/ /path/to/backup/nginx_ssl/
  • 自动化定时备份(适合长期运行)
    • 使用 cron 每日 02:00 执行脚本 backup.sh:
      • 示例脚本:
        #!/usr/bin/env bash
        set -e
        BACKUP_DIR="/opt/backup/nginx"
        mkdir -p "$BACKUP_DIR"
        DATE=$(date +%F)
        
        tar -czf "$BACKUP_DIR/nginx_$DATE.tar.gz"    /etc/nginx
        tar -czf "$BACKUP_DIR/www_$DATE.tar.gz"     /var/www
        tar -czf "$BACKUP_DIR/ssl_$DATE.tar.gz"     /etc/ssl
        
        # 可选:保留最近7天
        find "$BACKUP_DIR" -name "*.tar.gz" -mtime +7 -delete
        
      • 赋权并加入计划任务:sudo chmod +x backup.sh && sudo crontab -e
        • 加入:0 2 * * * /opt/backup/nginx/backup.sh
  • 备份方式选择
    • tar 适合全量与周期性快照;rsync 适合本地/远程增量同步;如需加密与增量云备份,可引入 Duplicity;系统级快照可用 Timeshift(更适合系统分区,非专用于 Nginx 数据)。

三 恢复流程与验证

  • 恢复配置与站点
    • 解压覆盖:sudo tar -xzvf nginx_backup_YYYY-MM-DD.tar.gz -C /(路径务必正确)
    • 或拷贝回原位置:sudo cp -r /path/to/nginx.bak_YYYY-MM-DD/ /etc/nginx/*
    • 语法检查与生效:sudo nginx -t && sudo systemctl reload nginx
  • 恢复网站文件
    • 解压覆盖:sudo tar -xzvf www_backup_YYYY-MM-DD.tar.gz -C /
    • 或拷贝:sudo cp -r /path/to/www.bak_YYYY-MM-DD/ /var/www/*
  • 恢复 SSL 证书
    • 解压覆盖:sudo tar -xzvf ssl_backup_YYYY-MM-DD.tar.gz -C /
    • 或同步:sudo rsync -avz /path/to/backup/nginx_ssl/ /etc/nginx/ssl/
  • 验证
    • 配置与连通性:sudo nginx -t,访问站点与 HTTPS 证书链;查看日志:sudo tail -f /var/log/nginx/error.log
  • 全新机器恢复顺序建议
    • 安装 Nginx:sudo apt update && sudo apt install nginx
    • 恢复证书 → 恢复配置 → 恢复网站文件 → 语法检查与重载 → 访问验证。

四 高可用与回滚建议

  • 配置变更与升级
    • 变更前先备份;升级时优先使用包管理器:sudo apt update && sudo apt upgrade nginx;升级前后执行 nginx -t、必要时 systemctl reload/restart,确保回滚路径可用。
  • 运行期热备与故障切换
    • 对上游服务使用 upstreambackup 参数实现热备,主故障时自动切换,提升可用性:
      upstream backend {
        server 10.0.0.11:80;
        server 10.0.0.12:80 backup;
      }
      server {
        listen 80;
        location / {
          proxy_pass http://backend;
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
        }
      }
      
  • 备份策略优化
    • 定期演练恢复流程;为备份文件设置保留周期与异地副本;对敏感证书与配置做好访问控制与加密存储。

0