能用容器,优先用容器,方便下次迁移。
一、基础应用部署
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 # 编译并安装 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