原因
Linode有5美元的机器了,内存也比Vultlr大一些,于是决定切换到Linode东京2机房,记录一下全部流程,以供日后参考。
更新:因为一些原因,再次切换
使用了整快硬盘切换,下次无需再部署环境了。
- 两台机器同时开启救援模式。
- 通过 Lish 进入Linode 系统后,首先修改 root 密码:
passwd
。 - 输入 root 密码。
输入以下命令启动 SSH 服务。
1
/etc/init.d/ssh start
在旧机器上输入命令开始传输硬盘。
1
dd if=/dev/sda | ssh root@123.45.67.89 "dd of=/dev/sda"
传输完毕,重启即可。
配置VPS和一些服务
系统还是习惯了Centos7,也不用来做开发,不打算换成Ubuntu了,不用学太多东西,毕竟也不是从事相关方面工作,专注核心内容吧。所以,以下内容及命令均基于Centos7。
切换内核并开启BBR
阅读这篇博文按照说明进行操作,以下是部分摘抄。
内核升级方法
1 | yum --enablerepo=elrepo-kernel -y install kernel-ml kernel-ml-devel |
完成后,去Linode后台把内核切换成Grub2,重启即可。
开启并验证BBR
使用root用户登录1
2
3wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh
chmod +x bbr.sh
./bbr.sh
安装完成后,脚本会提示需要重启 VPS,输入 y 并回车后重启。输入以下命令验证是否成功安装最新内核并开启 TCP BBR:1
uname -r
查看内核版本,含有 4.9 就表示 OK 了1
sysctl net.ipv4.tcp_available_congestion_control
返回值一般为:net.ipv4.tcp_available_congestion_control = bbr cubic reno
1
sysctl net.ipv4.tcp_congestion_control
返回值一般为:net.ipv4.tcp_congestion_control = bbr
1
sysctl net.core.default_qdisc
返回值一般为:net.core.default_qdisc = fq
1
lsmod | grep bbr
返回值有 tcp_bbr
模块即说明bbr已启动。
安装SS
阅读这篇博文按照说明进行操作
转移博客
博客是基于静态网页的,整套系统依赖了nginx nodejs hexo git等,因此需要全部搭建好环境。
安装OpenResty(nginx+lua)
新建www用户
准备把博客网站之类的放在这个用户下管理。1
2
3adduser www
groupadd www
usermod -G www www
准备工作
1 | yum install wget readline-devel pcre-devel openssl-devel gcc curl |
下载并安装
打开OpenResty官方下载页面获取最新版的地址,以下具体文件名或路径以本次操作为例。1
2
3
4
5wget https://openresty.org/download/openresty-1.11.2.2.tar.gz
tar zxvf openresty-1.11.2.2.tar.gz
cd openresty-1.11.2.2
./configure --user=www --group=www --prefix=/usr/local --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module --with-pcre-jit --with-http_iconv_module -j4 && make && make install
ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx
设置服务和开机启动
1 | cd /usr/lib/systemd/system |
安装最新版本的git
在这个页面找到最新版地址。1
2
3
4
5
6wget https://github.com/git/git/archive/v2.11.1.tar.gz
mv v2.11.1.tar.gz git-v2.11.1.tar.gz
yum remove git
make prefix=/usr/local/git all
make prefix=/usr/local/git install
ln -s /usr/local/git/bin/git /usr/local/bin/git
新建git用户和组
安装nodejs
安装Node Version Manager
1 | wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | NVM_DIR=/usr/local/nvm bash |
安装Node Lts version
1 | nvm install --lts |
安装Hexo
1 | npm install hexo-cli -g |
转移HTTPS证书和DNS ip
先在DNS服务商那里转移ip。
按照这篇文章重新安装lets-encrypt,并申请证书。
添加dhparam。1
openssl dhparam -out /home/www/dhparam.pem 2048
完毕后转移nginx配置文件按照原路径到新vps下
安装Gogs(A painless self-hosted Git service)
1 | wget https://dl.gogs.io/gogs_v0.9.141_linux_amd64.tar.gz |
创建gogs服务并设置成开机启动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
32vi /usr/lib/systemd/system/gogs.service
<i><Paste>
[Unit]
Description=Gogs (Go Git Service)
After=syslog.target
After=network.target
#After=mysqld.service
#After=postgresql.service
#After=memcached.service
#After=redis.service
[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
#Type=forking
User=www
Group=www
WorkingDirectory=/usr/local/gogs
ExecStart=/usr/local/gogs/gogs web
Restart=always
Environment=USER=www HOME=/home/www
[Install]
WantedBy=multi-user.target
</Paste>
<Esc><:><x><Enter>
systemctl enable gogs
systemctl start gogs
配置自动部署博客
新建项目并提交
把本地的博客git更换新地址并提交到gogs。
测试并添加githook
先克隆一个用于生成网站的本地仓库。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15git clone ${REMOTE_REP} ${BLOG_GENERATE_REP}
cd ${BLOG_GENERATE_REP}
npm install hexo --save
npm install hexo-generator-archive --save
npm install hexo-generator-baidu-sitemap --save
npm install hexo-generator-category --save
npm install hexo-generator-index --save
npm install hexo-generator-search --save
npm install hexo-generator-sitemap --save
npm install hexo-generator-tag --save
npm install hexo-pagination --save
npm install hexo-renderer-ejs --save
npm install hexo-renderer-marked --save
npm install hexo-renderer-stylus --save
npm install hexo-server --save
在仓库设置里添加post-receive的钩子。1
2
3
4
5
6
7
8
9
10
11#!/bin/bash -l
unset $(git rev-parse --local-env-vars)
export NVM_DIR="/usr/local/nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
nvm use --lts
cd ${BLOG_GENERATE_REP}
git pull
hexo clean
hexo g
rm -rf ${PUBLIC_WWW}/*
cp -rf ${GENERATED_PUBLIC}/* ${PUBLIC_WWW}
提交新文件就会更新博客网站了。
结束
完毕撒花~睡觉~