博客服务器迁移

前言:我的博客之前一直是部署在阿里云轻量级服务器上的,作为学生党,考虑到经济原因(在轻量级服务器这一块,腾讯云服务器更便宜一些),因此决定将博客服务器改为腾讯云轻量级服务器。

1. 博客迁移

  1. 购买服务器

访问腾讯云,购买轻量级服务器,选择CentOS7.6-Docker20镜像

  1. 复制「原服务器」中~/.halo目录到「新服务器」~/文件夹下
1
2
cd ~
scp .halo root@ip:~/
  1. 部署博客

可参考Docker安装Halo博客&配置swap虚拟内存

1
2
3
4
5
# 安装docker 我们购买的镜像自带docker,因此无需安装
# 拉取halo镜像
docker pull halohub/halo:1.5.3
# 运行halo
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.5.3
  1. 访问

至此,就可以使用公网ip进行访问了,没配置nginx的话记得开放8090端口防火墙

  1. 配置nginx+域名访问

要进行这一步,先得将阿里云服务器备案的域名转移到腾讯云

2. 域名转移

将在阿里云备案的域名转移到腾讯云。手把手教你域名转移

  1. 获取域名转移码

进入阿里云控制台->对应域名管理页面->点击下图「索取域名转移码」

邮箱会收到域名转出密码:

  1. 进入腾讯云控制台->域名注册->域名转入

填写「转移码」

支付完成后,等待结果即可

域名转移后注意图床域名解析

3. 配置nginx

  1. 安装nginx
1
yum install -y nginx
  1. 将ssl证书拷贝至服务器
1
scp nginx-ssl/* root@ip:/usr/local/nginx/conf/cert/ 
  1. 修改nginx配置文件/etc/nginx/nginx.conf

可参考启用SSL并部署腾讯云nginx ssl配置文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
upstream halo {
server 127.0.0.1:8090;
}

server {
listen 80;
server_name www.ysfun.cn;
rewrite ^(.*)$ https://$host:443$1 permanent;
}
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name www.ysfun.cn;
#root /home/blog;

ssl_certificate /usr/local/nginx/conf/cert/www.ysfun.cn_bundle.crt;
ssl_certificate_key /usr/local/nginx/conf/cert/www.ysfun.cn.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

location / {
proxy_pass http://halo;
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
error_page 404 /404.html;
location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
  1. 启动nginx
1
2
nginx -t
systemctl start nginx.service