能用容器,优先用容器,方便下次迁移。

一、基础应用部署

1.1 Docker 部署

  1. 安装需要的软件包

    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    
  2. 设置 Docker 软件源

    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    
  3. 查看仓库中可用的 Docker 版本

    yum list docker-ce --showduplicates | sort -r
    
  4. 安装最新稳定版 Docker

    sudo yum install docker-ce
    
  5. 启动并加入开机启动

    sudo systemctl start docker
    sudo systemctl enable docker
    
  6. 验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

    docker version
    
  7. 配置镜像源

    vi /etc/docker/daemon.json 创建文件,添加如下配置内容。

    {
        "registry-mirrors": [
            "http://hub-mirror.c.163.com",
            "https://registry.docker-cn.com",
            "https://docker.mirrors.ustc.edu.cn"
        ]
    }
    

    重启 Docker 服务,查看 Docker 信息。

    # 重启服务
    systemctl restart docker
    
    # 查看docker信息
    docker info
    
  8. 安装 Docker-Compose

    docker-compose-linux-x86_64 文件拷贝到 /usr/local/bin/docker-compose,并设置可执行权限。

    # 拷贝
    cp docker-compose-linux-x86_64 /usr/local/bin/docker-compose
    
    # 设置可执行权限
    chmod +x /usr/local/bin/docker-compose
    

1.2 JDK11 部署

# 安装jdk11带开发工具
yum -y install java-11-openjdk-devel

1.3 Git 部署

  1. 安装 Git

    yum install -y git
    
  2. 配置SSH登录Github

    # 设置name和email,输入如下命令
    git config --global user.name "用户名"
    git config --global user.email "你的邮箱"
    
    # 创建秘钥
    ssh-keygen -t rsa -C "你的邮箱"
    
    # 取得SSH
    cd ~/.ssh
    cat id_rsa.pub
    
  3. 登录 GitHub 网页,依次点击 settings>>SSH and GPG keys,新建秘ssh钥将获取到的ssh复制进去。

1.4 Nginx 部署

部署 nginx 1.22.1 版本

  1. 解压安装包

    tar -zxvf nginx-1.22.1.tar.gz
    
  2. 安装编译环境 、pcre软件包、openssl、zlib

    yum -y install gcc gcc-c++  pcre pcre-devel openssl openssl-devel zlib zlib-devel
    
  3. 编译安装

    cd nginx-1.22.1
    
    # 预编译,安装目录为/opt/nginx
    ./configure --prefix=/opt/nginx --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_v2_module
    
    # 编译并安装
    make && make install
    
    # 检查是否编译正确,如果返回值是 0,就是执行成功;0 以外的值,就是失败。
    echo $?
    
    # 软连接二进制文件到命令目录
    ln -s /opt/nginx/sbin/nginx /usr/local/sbin/nginx
    
  4. 从原服务器拷贝 nginx.conf 配置到指定的配置目录

  5. 启动与关闭

    # 启动命令
    nginx
    
    # 重新加载配置
    nginx -s reload
    
    # 关闭命令
    nginx -s stop
    

1.5 Acme.sh 部署

  1. 拷贝原服务器的 .acme.sh 到与原服务器相同的目录。

  2. 强制从新签发证书,或者签发证书,确保证书签发逻辑还可用。

    # 没有证书时签发证书
    ./acme.sh  --issue  --dns dns_ali -d *.nineya.com -d nineya.com --debug
    
    # 有证书时强制重新签发证书
    ./acme.sh  --renew  --dns dns_ali -d *.nineya.com -d nineya.com --force --debug
    
  3. 安装证书到制定路径。

    # 创建路径
    mkdir -p /opt/ca/*.nineya.com
    
    # 安装
    ./acme.sh --install-cert -d *.nineya.com \
    --key-file       /opt/ca/*.nineya.com/key.pem  \
    --fullchain-file /opt/ca/*.nineya.com/cert.pem \
    --reloadcmd     "nginx -s reload"
    
  4. 添加自动续签定时任务。

    # 编辑定时任务
    crontab -e
    
    # 添加如下内容
    0 10 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
    

1.6 MySQL 部署

通过 Docker-Compose 迁移原服务器的 MySQL 服务。

  1. 拷贝 mysql 目录到 /opt/mysql 路径。

  2. 运行容器。

    docker-compose up -d
    

1.7 Redis 部署

通过 Docker-Compose 迁移原服务器的 Redis 服务。

  1. 拷贝 redis 目录到 /opt/redis 路径。

  2. 运行容器。

    docker-compose up -d
    

二、应用服务部署

2.1 首页部署

  1. 从原服务器中拷贝 /opt/home 静态文件目录。
  2. 拷贝原服务器的 nginxhome.conf 配置文件到新服务器上 nginx 的安装目录。
  3. 执行 nginx -s reload

2.2 倒计时网页部署

  1. 从原服务器中拷贝 /opt/xb 静态文件目录。
  2. 拷贝原服务器的 nginxxb.conf 配置文件到新服务器上 nginx 的安装目录。
  3. 执行 nginx -s reload

2.3 博客部署

  1. 从原服务器中拷贝 ~/.halo-plus 文件目录。

  2. 从原服务器中拷贝 ~/install/blog 目录执行安装程序。

    # 执行配置检查
    ./install -c
    
    # 安装
    ./install
    
    # 检查版本
    ./blog -v
    
    # 启动服务
    ./blog start
    
  3. 拷贝原服务器的 nginxblog.conf 配置文件到新服务器上 nginx 的安装目录。

  4. 执行 nginx -s reload

2.4 极光建站官网部署

  1. 从原服务器中拷贝 /opt/aurora 文件目录。
  2. 执行 nohup ./aurora & 启动服务。
  3. 拷贝原服务器的 nginxaurora.conf 配置文件到新服务器上 nginx 的安装目录。
  4. 执行 nginx -s reload

2.5 逸趣留学部署

  1. 从原服务器中拷贝 /opt/yiqu 文件目录。
  2. 执行 nohup ./aurora & 启动服务。
  3. 拷贝原服务器的 nginxaurora.conf 配置文件到新服务器上 nginx 的安装目录。
  4. 执行 nginx -s reload

三、运维脚本部署

3.1 运维脚本

  1. 同步 https://github.com/nineya/linux-shell/ 仓库
  2. 根据 README 文档部署各个脚本。

3.2 博客数据备份

  1. 从原服务器拷贝 /opt/backup 目录到新的服务器。

  2. 添加计划任务为每天凌晨2点备份数据。

    0 2 * * * /opt/backup/backup.sh