能用容器,优先用容器,方便下次迁移。
一、基础应用部署
1.1 Docker 部署
-
安装需要的软件包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 -
设置 Docker 软件源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo -
查看仓库中可用的 Docker 版本
yum list docker-ce --showduplicates | sort -r -
安装最新稳定版 Docker
sudo yum install docker-ce -
启动并加入开机启动
sudo systemctl start docker sudo systemctl enable docker -
验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
docker version -
配置镜像源
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 -
安装 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 部署
-
安装 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网页,依次点击settings>>SSH and GPG keys,新建秘ssh钥将获取到的ssh复制进去。
1.4 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 # 预编译,安装目录为/opt/nginx ./configure --prefix=/opt/nginx --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_v2_module --with-stream # 编译并安装 make && make install # 检查是否编译正确,如果返回值是 0,就是执行成功;0 以外的值,就是失败。 echo $? # 软连接二进制文件到命令目录 ln -s /opt/nginx/sbin/nginx /usr/local/sbin/nginx -
从原服务器拷贝
nginx.conf配置到指定的配置目录 -
启动与关闭
# 启动命令 nginx # 重新加载配置 nginx -s reload # 关闭命令 nginx -s stop
1.5 Acme.sh 部署
-
拷贝原服务器的 .acme.sh 到与原服务器相同的目录。
-
强制从新签发证书,或者签发证书,确保证书签发逻辑还可用。
# 没有证书时签发证书 ./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 -
安装证书到制定路径。
# 创建路径 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" -
添加自动续签定时任务。
# 编辑定时任务 crontab -e # 添加如下内容 0 10 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
1.6 MySQL 部署
通过 Docker-Compose 迁移原服务器的 MySQL 服务。
-
拷贝
mysql目录到/opt/mysql路径。 -
运行容器。
docker-compose up -d
1.7 Redis 部署
通过 Docker-Compose 迁移原服务器的 Redis 服务。
-
拷贝
redis目录到/opt/redis路径。 -
运行容器。
docker-compose up -d
二、应用服务部署
2.1 首页部署
- 从原服务器中拷贝
/opt/home静态文件目录。 - 拷贝原服务器的
nginx中home.conf配置文件到新服务器上nginx的安装目录。 - 执行
nginx -s reload。
2.2 倒计时网页部署
- 从原服务器中拷贝
/opt/xb静态文件目录。 - 拷贝原服务器的
nginx中xb.conf配置文件到新服务器上nginx的安装目录。 - 执行
nginx -s reload。
2.3 博客部署
-
从原服务器中拷贝
~/.halo-plus文件目录。 -
从原服务器中拷贝
~/install/blog目录执行安装程序。# 执行配置检查 ./install -c # 安装 ./install # 检查版本 ./blog -v # 启动服务 ./blog start -
拷贝原服务器的
nginx中blog.conf配置文件到新服务器上nginx的安装目录。 -
执行
nginx -s reload。
2.4 极光建站官网部署
- 从原服务器中拷贝
/opt/aurora文件目录。 - 执行
nohup ./aurora &启动服务。 - 拷贝原服务器的
nginx中aurora.conf配置文件到新服务器上nginx的安装目录。 - 执行
nginx -s reload。
2.5 逸趣留学部署
- 从原服务器中拷贝
/opt/yiqu文件目录。 - 执行
nohup ./aurora &启动服务。 - 拷贝原服务器的
nginx中aurora.conf配置文件到新服务器上nginx的安装目录。 - 执行
nginx -s reload。
三、运维脚本部署
3.1 运维脚本
- 同步
https://github.com/nineya/linux-shell/仓库 - 根据
README文档部署各个脚本。
3.2 博客数据备份
-
从原服务器拷贝
/opt/backup目录到新的服务器。 -
添加计划任务为每天凌晨2点备份数据。
0 2 * * * /opt/backup/backup.sh