侧边栏壁纸
博主头像
数据渔港

点亮对生活的好奇心

  • 累计撰写 39 篇文章
  • 累计创建 80 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

迁移恢复 Nginx + Nps + Halo

数据渔港
2026-03-28 / 0 评论 / 0 点赞 / 6 阅读 / 755 字
温馨提示:
本文最后更新于 2026-03-28,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

迁移Nginx+Nps+Halo的核心,不在于简单的文件搬运,而在于重新理顺穿透、代理与应用之间的逻辑链条。在这个架构中Nginx是对外的门面,Nps是连接内外的桥梁,而Halo则是承载Joe主题博客内容的核心。本次恢复过程通过对配置的精确复刻与环境适配,确保了这条链路在新环境下能够无缝衔接迁移恢复网站

备份迁移服务器


#在旧服务器执行直接将压缩流传给新服务器并在对应位置解压(极速迁移)
sudo tar -czvp /home/nps /home/web /home/docker/halo /etc/nginx /etc/nps | ssh root@新服务器IP "tar -xzvph -C /"

恢复数据

  • 安装Docker

#以Ubuntu/Debian为例
sudo apt update
sudo apt install -y docker.io docker-compose

#启动并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker

  • 安装Nginx

#安装nginx
sudo apt install -y nginx

#确认安装位置(通常在 /etc/nginx)
nginx -v

#启动并设置自启
sudo systemctl start nginx
sudo systemctl enable nginx

  • 安装Nps

#切换目录
sudo mkdir -p /home/nps
cd /home/nps

#请根据实际版本号替换下载链接
sudo wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_server.tar.gz
sudo tar -zxvf linux_amd64_server.tar.gz

#执行安装命令,它会将配置文件放到 /etc/nps
sudo ./nps install
sudo nps start

启动容器

  • 切换到/home/docker/halo

#执行docker-compose up -d

version: "3"

services:
  halo_server:
    image: halohub/halo:1.5.4
    container_name: halo_server
    restart: on-failure:3
    depends_on:
      - halo_mysql
      - halo_redis
    networks:
      halo_network:
    volumes:
      - ./:/root/.halo
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "8090:8090"
    environment:
      - SERVER_PORT=8090
      - SPRING_DATASOURCE_DRIVER_CLASS_NAME=com.mysql.cj.jdbc.Driver
      - SPRING_DATASOURCE_URL=jdbc:mysql://halo_mysql:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
      - SPRING_DATASOURCE_USERNAME=root
      - SPRING_DATASOURCE_PASSWORD=“填写密码”
      - HALO_ADMIN_PATH=admin
      - HALO_CACHE=redis
      - SPRING_REDIS_PORT=6379
      - SPRING_REDIS_DATABASE=0
      - SPRING_REDIS_HOST=halo_redis
      - SPRING_REDIS_PASSWORD=“填写密码”

  halo_mysql:
    image: mysql:8.0.27
    container_name: halo_mysql
    restart: on-failure:3
    networks:
      halo_network:
    command: --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./mysql:/var/lib/mysql
      - ./mysqlBackup:/data/mysqlBackup
    ports:
      - "3306:3306"
    environment:
      # 请修改此密码,并对应修改上方 Halo 服务的 SPRING_DATASOURCE_PASSWORD 变量值
      - MYSQL_ROOT_PASSWORD=“填写密码”
      - MYSQL_DATABASE=halodb

  halo_redis:
    image: redis
    container_name: halo_redis
    restart: on-failure:3
    networks:
      halo_network:
    volumes:
      - ./redis/data:/data
      - ./redis/logs:/logs
    # 请修改此密码,并对应修改上方 Halo 服务的 SPRING_REDIS_PASSWORD 变量值
    command: redis-server --requirepass “填写密码”
    ports:
      - "6379:6379"
networks:
  halo_network:
  

重点答疑

  • 二进制的安装已经使用了旧服务器打包传输的 nps nginx配置文件在启动后直接生效,halo博客因为是docker安装在执行命令后也是使用备份的数据即可生效

  • Nginx+Nps+Halo配置文件都是使用备份的,更详细的调整可以进去编辑实际项目调整

0

评论区

ip); ?>