折腾VPS的经历

最近买了VULTR的vps和华硕的路由器。

本来我已经用网件(NetGear)WNDR4300路由器,刷openwrt的方式进行科学上网。经基友的推(hu)荐(you),又忍不住下手了。

华硕(ASUS)的RT-AC68U,京东价1499,会时不时的打折到1099,加上某些时段搞活动,送满1000减200的券,我的到手价是899。这款路由可以刷merlin固件(用的是koolshare出的merlin固件,我当时用firmware版本是v380.57,后续有更新版本),刷完之后,有ss菜单可以很方便的填入服务器信息。

vultr的VPS,单核CPU,15GB的ssd的硬盘,768M内存,每月1TB的流量,对于ss来说已经完成足够,目前有日本,新加坡,美国,德国,荷兰,法国等地的服务器。价格是每月5刀(每小时0.007刀),首次注册,如果用我这个Summer Promo Code,你可以额为获得20刀的费用;或者这个Linking Code,获得10刀的费用。前者的优惠幅度比较大,送你20刀,但是可能过了夏天就没有了,后者送10刀的优惠长期存在。

不能浪费的每月的1TB流量,所以我将原来在虚拟主机上的博客也迁移了过来。原来的虚拟主机是在dreamhost上,折腾了一番后,迁移了过来,本文把迁移以及迁移后的一些事情做个记录,方便同样操作的同学少走弯路。

本文主要介绍了:

安装博客之前,我们要先在vultr上安装VPS,选择location为日本,因为日本的延时最小:
location

可以通过BestTrace这个工具看到日本机房的路由,是直接去日本的。没有绕道美国再回日本。
besttrace_jp_from_chinaunicom

选择类型到application菜单,选择wordpress:
application

选择server size是每月5刀的,足够用。你不够,也可以买大的。
server_size
另外,选择auto backup是需要额外付费的,每月1刀。是可以根据你设置的时间,自动进行整个server的snapshot。

这里说一下auto backup和snapshot。其实auto backup用的就是snapshot技术,帮你自动进行定时的镜像,所以只能保存整个server的备份,不能单独备份某个文件。或者说,mysql数据库还是需要单独的备份。另外,snapshot的恢复,只能在destory你创建的instance(即你创建的主机,vulter把它叫做instance)之后,重建才能用snapshot。而重建snapshot,是会变你原来的IP和MAC地址——这就关系到了你一旦通过snapshot重建instance,就需要改你的域名指向的IP地址,以及重新安装锐速,因为锐速是和MAC地址有关的。

我个人觉得不需要购买autobackup。我只要在每次修改服务器的时候,手工的做一次snapshot就可以了。这个手工做snapshot是不限次数,免费的。我觉得还是比较好用。只是如果你在日本机房做snapshot,恢复去美国机房,就会垮机房恢复,时间会比较长,可能需要大半个小时。

装完了这个wordpress的instance,按照One-Click WordPress配置一下之后,就可以迁移wordpress博客和mysql数据库了。

wordpress博客需要迁移到数据主要是wp-content目录,这里面有你原来博客上的图片(uploads文件夹),有你原来博客的模板(在themes文件夹),有你原来博客使用的插件(在plugins文件夹)。用winscp将整个wp-content目录拷贝到新主机的同样目录下。此时你的博客已经可以打开,但是是一个空的博客,因为数据库还没迁移过来。

在dreamhost上的数据库,有phpmyadmin的管理界面,可以将所有的数据导出来,是一个sql文件。然后倒入到新的主机上。在新主机上,还没有phpmyadmin,可以参考Install phpMyAdmin on One-Click WordPress App,或者你直接在后台ssh登录后直接mysql -uroot -p登录操作(注:root的密码在/root/.my.cnf)。

我选择的mysql的迁移方式,我将我原来的表倒入到一个数据库下,而我一键安装的wordpress+mysql,安装之后已经有一个数据库在里面,我只需要将我原来数据库下的表,以insert select from的土鳖方式进行迁移。还好,一个wordpress就只有十几张表。很快所有的数据都过去了。这种方式的迁移,不用修改wordpress的配置文件(wp-config.php),保证原来一键安装的wordpress+mysql都是配合正常的。我只需将老数据insert到新库的空表中,就实现了迁移。

然后就是迁移域名。我的域名注册是在dreamhost,原来是fully host在dreamhost上,而我现在的主机现在是在vultr上了,所以我要做的是,在dreamhost中的domains菜单,manage domains中,web hosting里面改成最下面的DNS only,在DNS里面的Change oracleblog.org’s whois nameservers改成vultr的name server,即ns1.vultr.com和ns2.vultr.com。然后我们回到vultr网站,在vultr的DNS菜单,添加A记录,即将A记录的IP写成你instance的IP。
dns

迁移之后,老博客的模板在wp-content的themes下,不过由于我原来用的coolcode是10年前的,作者已经停止更新,所以有些和新版本的wordpress不匹配,无奈之下,更换了模板,换成了olsen-light模板。所以原来的蓝红模板,只能留在记忆中了。

完成后,安装ss,网友已经提供了一键安装包。安装完ss,再安装锐速进行提速,也有一键安装的教程

完成了之后,我们再来提高一下博客的安全性,对博客使用https加密访问。
1550936187

我是使用letsencrypt进行https的加密的。首先,我们进入letsencrypt.org的certbot页面,选择我们的webserver类型和OS类型:
certbot
我的vultr上的instance是用nginx做web server的,OS是centos 6。

然后开始安装:

安装完成后,会在/etc/letsencrypt/live/oracleblog.org目录下生成几个证书文件,我们将主要用到/etc/letsencrypt/live/oracleblog.org/fullchain.pem和/etc/letsencrypt/live/oracleblog.org/privkey.pem两个文件。

我们进入nginx的配置文件夹中/etc/nginx:

我们看到第50行,include /etc/nginx/conf.d/*.conf,说明真正的wordpress的配置文件是在这个目录下的conf文件。我们进去看看:

我们看到,有2个文件,第一个是http的,另一个是https的。我们先修改https的那个:

我们修改第13,14行的证书路径,为我们之前申请后生成证书文件的路径。

此时如果重启nginx服务,我的博客已经可以用https访问了,也可以用https访问。但是如果我想做全站加密,将http的访问也转到https上,我需要修改那个http文件,加上301跳转:

看到我加的第11行,就是用来将http的访问强制转换成https的访问。修改完成后重启nginx生效。

最后,由于证书是每3个月过期,我们写一个脚本定期更新证书:

最后,我还是用来cloudflare来保护博客的IP地址,防止受到cc攻击。

在cloudflare注册之后,点击add websites,然后一路next下去,将你的站点加到cloudflare的保护中。然后,再去域名注册商dreamhost处,将name server改成cloudflare提供的2个NS。
add-site

大约一个晚上之后,网络的DNS信息更新之后,我的网站的DNS就被cloudflare保护起来。此时别人ping我的域名,是得不到真实的IP的。你在www.whatsmydns.net网站,是查不到我域名的真实A记录的IP的。所以别人无法对我的物理主机的IP地址发起直接攻击。如果对域名发起攻击,还有cloudflare这一层帮我拦截。
(不过这也带来一个问题,就是ss的连接,不能用域名了,只能直接用IP连。)

最后,反正手头还有一个域名,就又新建了一个instance,把这个站点做google的反向代理。方便不能使用google的同学使用google。

域名是oracle-acs.tips,同样也使用了https加密和cloudflare保护。
google

配置方式为:

最后,介绍一下Telstra Wi-Fi Maximiser这个app,可以简单测试一下家中wifi的覆盖范围。
wifi

相关文章

2条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据