一、基础应用部署

1.1 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
    
    # 预编译,安装目录为/usr/local/nginx
    ./configure --prefix=/usr/local/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 /usr/local/nginx/sbin/nginx /usr/local/sbin/nginx
    
  4. 从原服务器拷贝 nginx.conf 配置到指定的配置目录

  5. 启动与关闭

    # 启动命令
    nginx
    
    # 重启命令
    nginx -s reload
    
    # 关闭命令
    nginx -s stop 
    

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 网页,依次点击 ssettings>>SSH and GPG keys,新建秘ssh钥将获取到的ssh复制进去。

1.4 MySQL部署

  1. 检查并卸载 mariadb 数据库

    # 检查
    rpm -qa | grep mariadb
    
    #卸载
    rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
    
  2. 安装

    # 下载源
    yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
    
    # 安装
    yum -y install mysql-server --nogpgcheck
    
  3. 启动服务并获取初始密码

    # 启动服务
    systemctl start mysqld
    
    # 获取初始密码
    grep 'temporary password' /var/log/mysqld.log
    
  4. 使用初始密码登录服务

    # 登录
    mysql -uroot -p
    # 重置密码
    ALTER USER USER() IDENTIFIED BY 'new_password';
    
    # 创建nineya用户
    CREATE USER 'nineya'@'%' IDENTIFIED BY 'new_password';
    

1.5 Redis部署

部署 Redis 7.0.9 版本

  1. 解压安装包

    tar -zxvf redis-7.0.9.tar.gz
    
  2. 编译安装

    # 编译并安装
    make && make install PREFIX=/usr/local/redis
    
    # 检查是否编译正确,如果返回值是 0,就是执行成功;0 以外的值,就是失败。
    echo $?
    
  3. 配置

    cp -r redis.conf /usr/local/redis/
    
    # 修改如下配置项:
    # requirepass foobared	// 设置密码
    bind 127.0.0.1 -::1		// 绑定ip
    daemonize no			// 后台启动
    
    # 修改为:
    requirepass 密码
    bind 0.0.0.0
    daemonize yes
    
  4. 启动与关闭

    # 启动命令
    /usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
    

基础环境准备完毕,从其他服务器拷贝数据

二、应用服务部署

2.1 MyService部署

  1. 从原服务器中拷贝 install 安装目录,执行 install 目录中的安装程序。
  2. 查看日志,根据应用日志生成域名的 SSL 证书。
  3. 拷贝原服务器的 nginxmy.conf 配置文件到新服务器上 nginx 的安装目录。
  4. 执行 nginx -s reload

2.2 首页部署

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

2.3 倒计时网页部署

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

2.4 Nacos部署

  1. 拷贝原服务器的 nacos 目录。

  2. mysqlnineya 用户授予 nacos 数据库权限。

    GRANT ALL ON nacos.* TO 'nineya'@'%';
    
  3. 使用可视化工具拷贝 nacos 数据库的数据。

  4. 检查一下 application.yml 配置文件,理论上不需要修改。

  5. 执行 bin/startup.sh -m standalone 单机启动。

  6. 拷贝原服务器的 nginxnacos.conf 配置文件到新服务器上 nginx 的安装目录。

  7. 执行 nginx -s reload

2.5 Halo部署

  1. 从原服务器中拷贝 nginx 相关配置和 install 目录,执行 install 目录中的安装程序。

  2. 拷贝原应用可通过 nginx 直接访问的静态文件到指定目录。

  3. 从原服务器中拷贝 .halo 目录到新服务器的用户目录。

  4. 拷贝原服务器的 nginxhalo.conf 配置文件到新服务器上 nginx 的安装目录。

  5. mysql 中添加 halo 用户。

    # 创建用户
    CREATE USER 'halo'@'%' IDENTIFIED BY 'new_password';
    
    # 授予权限
    GRANT ALL ON halo.* TO 'halo'@'%';
    
  6. 使用可视化工具从原数据库中导出博客数据并导入到新的 mysql

  7. 启动 halo

  8. 执行 nginx -s reload

2.6 NineyaUser部署

  1. 从原服务器中拷贝 install 安装目录,执行 install 目录中的安装程序。

  2. mysqlnineya 用户授予 nacos 数据库权限。

    GRANT ALL ON nineya.* TO 'nineya'@'%';
    
  3. 使用可视化工具拷贝 nineya 数据库的数据。

  4. 拷贝原服务器的 nginxnineya-user-service.conf 配置文件到新服务器上 nginx 的安装目录。

  5. 执行 nginx -s reload

2.7 NineyaRkproblem部署

  1. 从原服务器中拷贝 install 安装目录,执行 install 目录中的安装程序。

  2. mysqlnineya 用户授予 rkproblem 数据库权限。

    GRANT ALL ON rkproblem.* TO 'nineya'@'%';
    
  3. 使用可视化工具拷贝 rkproblem 数据库的数据。

  4. 拷贝原服务器的 nginxnineya-rkproblem-service.conf 配置文件到新服务器上 nginx 的安装目录。

  5. 执行 nginx -s reload

三、运维脚本部署

3.1 运维脚本

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

3.2 博客数据备份

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

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

    0 2 * * * /root/shell/backup/backup.sh