一、基础应用部署
1.1 Nginx部署
部署 nginx 1.22.1 版本
-
解压安装包
tar -zxvf nginx-1.22.1.tar.gz
-
安装编译环境 、pcre软件包、openssl、zlib
yum -y install gcc gcc-c++ pcre pcre-devel openssl openssl-devel zlib zlib-devel
-
编译安装
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
-
从原服务器拷贝
nginx.conf
配置到指定的配置目录 -
启动与关闭
# 启动命令 nginx # 重启命令 nginx -s reload # 关闭命令 nginx -s stop
1.2 JDK11部署
# 安装jdk11带开发工具
yum -y install java-11-openjdk-devel
1.3 Git部署
-
安装 Git
yum install -y git
-
配置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
-
登录
GitHub
网页,依次点击ssettings>>SSH and GPG keys
,新建秘ssh钥将获取到的ssh复制进去。
1.4 MySQL部署
-
检查并卸载
mariadb
数据库# 检查 rpm -qa | grep mariadb #卸载 rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
-
安装
# 下载源 yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm # 安装 yum -y install mysql-server --nogpgcheck
-
启动服务并获取初始密码
# 启动服务 systemctl start mysqld # 获取初始密码 grep 'temporary password' /var/log/mysqld.log
-
使用初始密码登录服务
# 登录 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 版本
-
解压安装包
tar -zxvf redis-7.0.9.tar.gz
-
编译安装
# 编译并安装 make && make install PREFIX=/usr/local/redis # 检查是否编译正确,如果返回值是 0,就是执行成功;0 以外的值,就是失败。 echo $?
-
配置
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
-
启动与关闭
# 启动命令 /usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
基础环境准备完毕,从其他服务器拷贝数据
二、应用服务部署
2.1 MyService部署
- 从原服务器中拷贝
install
安装目录,执行install
目录中的安装程序。 - 查看日志,根据应用日志生成域名的
SSL
证书。 - 拷贝原服务器的
nginx
中my.conf
配置文件到新服务器上nginx
的安装目录。 - 执行
nginx -s reload
。
2.2 首页部署
- 从原服务器中拷贝静态文件目录。
- 拷贝原服务器的
nginx
中halo.conf
配置文件到新服务器上nginx
的安装目录。 - 执行
nginx -s reload
。
2.3 倒计时网页部署
- 从原服务器中拷贝静态文件目录。
- 拷贝原服务器的
nginx
中xb.conf
配置文件到新服务器上nginx
的安装目录。 - 执行
nginx -s reload
。
2.4 Nacos部署
-
拷贝原服务器的
nacos
目录。 -
为
mysql
中nineya
用户授予nacos
数据库权限。GRANT ALL ON nacos.* TO 'nineya'@'%';
-
使用可视化工具拷贝
nacos
数据库的数据。 -
检查一下
application.yml
配置文件,理论上不需要修改。 -
执行
bin/startup.sh -m standalone
单机启动。 -
拷贝原服务器的
nginx
中nacos.conf
配置文件到新服务器上nginx
的安装目录。 -
执行
nginx -s reload
。
2.5 Halo部署
-
从原服务器中拷贝
nginx
相关配置和install
目录,执行install
目录中的安装程序。 -
拷贝原应用可通过
nginx
直接访问的静态文件到指定目录。 -
从原服务器中拷贝
.halo
目录到新服务器的用户目录。 -
拷贝原服务器的
nginx
中halo.conf
配置文件到新服务器上nginx
的安装目录。 -
mysql
中添加halo
用户。# 创建用户 CREATE USER 'halo'@'%' IDENTIFIED BY 'new_password'; # 授予权限 GRANT ALL ON halo.* TO 'halo'@'%';
-
使用可视化工具从原数据库中导出博客数据并导入到新的
mysql
。 -
启动
halo
。 -
执行
nginx -s reload
。
2.6 NineyaUser部署
-
从原服务器中拷贝
install
安装目录,执行install
目录中的安装程序。 -
为
mysql
中nineya
用户授予nacos
数据库权限。GRANT ALL ON nineya.* TO 'nineya'@'%';
-
使用可视化工具拷贝
nineya
数据库的数据。 -
拷贝原服务器的
nginx
中nineya-user-service.conf
配置文件到新服务器上nginx
的安装目录。 -
执行
nginx -s reload
。
2.7 NineyaRkproblem部署
-
从原服务器中拷贝
install
安装目录,执行install
目录中的安装程序。 -
为
mysql
中nineya
用户授予rkproblem
数据库权限。GRANT ALL ON rkproblem.* TO 'nineya'@'%';
-
使用可视化工具拷贝
rkproblem
数据库的数据。 -
拷贝原服务器的
nginx
中nineya-rkproblem-service.conf
配置文件到新服务器上nginx
的安装目录。 -
执行
nginx -s reload
。
三、运维脚本部署
3.1 运维脚本
- 同步
https://github.com/nineya/linux-shell/
仓库 - 根据
README
文档部署各个脚本。
3.2 博客数据备份
-
从原服务器拷贝
backup
目录到新的服务器。 -
添加计划任务为每天凌晨2点备份数据。
0 2 * * * /root/shell/backup/backup.sh