tale如何进行迁移?

/ java / 没有评论 / 692浏览

前言

最近想薅下Google的羊毛,趁着阿里云快到期了,就将整个博客迁移到了Google Cloud Platform(GCP)上了。看下GCP的速度怎么样,300$美金的券儿还是挺有诱惑力。以前写过一篇tale如何进行升级?,本来想写下tale如何进行安装,这下就直接跳转到了tale如何进行迁移了......(有点尴尬)

文件备份

我这里采取的是整站备份,直接将tale进程停止,一条命令开始备份。

tar -cvzf /you/server/tale/dir bk_tale.tar.gz

这样整站备份下来肯定是最“原汁原味”,但是文件大小稍许可能有点大,我们可以将下图黄色圈中的log文件删除掉,这样就可以降低备份文件的大小。

alt

除此之外就没有什么要备份的了......

迁移过程

解析域名

修改已有域名的解析,将A记录中的记录值ip换成在GCP中分配的固定ip。阿里云解析如下图所示:
alt

因为不太喜欢www开头的域名格式,所以就直接解析根域名了。A记录的生效的时间很快,5分钟左右就好了。

运行tale

将备份下来的整站tale上传到新的服务器中,建议与原有服务器的目录路径保持一致,以防出现目录路径错乱的问题。如果你没有修改过tale的源码相关文件,就可以改变目录,理论上不会出现这个问题。
进入tale目录,使用命令启动:

cd /your/tale/dir
./tale-cli start
./tale-cli status #查看tale的运行状态
ps -e | grep java #看看java程序的运行状态

如果没有修改过tale的配置文件,那么tale理论上应该运行在“http://127.0.0.1:9000”。

安装nginx

“最好的老师就是文档”!
下面的链接是nginx的安装文档。
https://nginx.org/en/linux_packages.html#stable
总的来讲:
第一步,添加nginx签名文件。将从nginx网站下载下来的nginx_signing.key添加ubuntu key管理器中。

sudo apt-key add /your/server/dir/nginx_signing.key

第二步,将nginx添加到ubuntu源文件中。

sudo vim /etc/apt/sources.list
#vim edit add
deb http://nginx.org/packages/debian/ codename nginx
deb-src http://nginx.org/packages/debian/ codename nginx

下面是codename的对应关系:

Ubuntu:

Version      Codename 	Supported Platforms
14.04 	     trusty 	x86_64, i386, aarch64/arm64
16.04 	     xenial 	x86_64, i386, ppc64el, aarch64/arm64
17.10 	     artful 	x86_64, i386
18.04 	     bionic 	x86_64

第三步,安装nginx。

sudo apt-get update
sudo apt-get install nginx

sudo dpkg -L nginx #查看nginx目录结构
nginx -v #版本
ps -e |grep nginx #查看nginx是否运行
sudo nginx #启动nginx
sudo nginx -s stop #停止nginx

第四步,修改配置文件

sudo vim /etc/nginx/conf.d/default.conf 
#vim edit
修改server_name
#listen       80;
#server_name  tuzhao.org;

#修改location
#location / {
#    #root   /data/www/root;
#    #index  index.html index.htm;
#    proxy_pass http://127.0.0.1:9000;
#}

修改完成以后重启一下nginx。

安装https证书

我们这里使用的是https://letsencrypt.org/提供的免费证书。用它的主要原因是它是linux基金会创办的,这一条理由就够了。
它推荐我们使用Certbot快速集成,因为可以自动帮我们管理证书的配置和续期。
下面是Ubuntu 16.04的集成文档链接:
https://certbot.eff.org/lets-encrypt/ubuntuxenial-nginx
第一步,安装。

$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-nginx 

第二步,集成。

#会有几个问题,自己选择就好。
sudo certbot --nginx

这个会自动帮我们修改nginx中https证书配置(/etc/nginx/conf.d/default.conf)。我们可以看下配置文件的写法,因为其它CA的证书配置也是一样的。

listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/tuzhao.org/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/tuzhao.org/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot

if ($scheme != "https") {
    return 301 https://$host$request_uri;
} # managed by Certbot

结尾

迁移成功!开始使用https进行访问~!