TAT.felix VPS 捣鼓小记
In 未分类 on 2015年08月23日 by view: 7,403
5

不作死就不会死, 不捣鼓就不会活 -- via 菲利克斯· 肖恩莱特

什么是作死?作死就是不懂原理乱写代码,不懂环境乱配,不懂工具乱用,打掉一个 bug 再怀上一个 bug,伤元气瞎折腾。

什么是捣鼓?捣鼓和作死相反,在解决问题时力求寻因导果,既能解决问题,又能学到新知识拓展新视野。

在最近折腾 VPS 的时候,我就不断在作死,才捣鼓出了新乐趣,写下来和大家分享一下。

作为一个没有服务器端编程经验的小前端,为何要去折腾 VPS 呢?因为能学到很多东西啊,举几个栗子:

  • 搭建个博客写点文章啊

  • 既然搭建博客了,那要搞域名啊、CDN 啊、加缓存啊、打补丁啊、流量分析啊、性能分析啊、写主题啊、优化访问速度啊、提高 SEO 啊

  • 搭建个 VPN/shadowsock 配个代理锻炼锻炼身体又能科学上网啊,还可能省点钱啊

  • 哎呀好多操作都是 Linux 还是纯命令行操作的,能学到不少 Linux 知识啊

  • 女朋友不陪你折腾你还可以折腾 VPS 啊

     

从购买一个 VPS 开始

要过情人节,首先你得上淘宝买个不会漏气的女朋友。

同理,你想折腾 VPS 你得买个靠谱的服务器。

比如,你想访问速度快一些,可以选择购买腾讯云或阿里云提供的服务器;如果你想更自由一些,可以选择国外 Linode 或者 DigitalOcean 等提供的服务器。选择腾讯云可以使用我们的推荐链接, 选择 Linode 则可以使用这个链接。腾讯云最低配只需 65 块,Linode 最低配也只需要 10 美金,具体的配置和价格,可以自己去仔细对比下。

好了,有了充气娃娃,噢不,是服务器,我们就可以放心地上了。

使用 ssh 进行登录,假定服务提供商给你的 IP 是 11.22.33.44, 帐号是 root, 密码是 passwd:

输入密码,第一次登录后建立公钥,我们就和成功上到了服务器。

接着要怎么玩呢?什么姿势舒服就怎么玩嘛。

好了,文章到此结束,我回家找女朋友了。

------------我是回家的分界线------------

快递还没到,我先上一下 VPS 玩一玩好了。

快速实战,试手 VPS 迁移

哎呀~ 想起不少人吐槽过我们团队的  博客  打开速度太慢了,都超过了 12 秒,这怎么能忍?

没办法,忍辱负重,我只能趁女朋友还没到之前,快速优化一下(希望 12 秒内可以解决)。

嗯,先分析下博客为什么访问那么慢?

  1. 服务器在国外,国内连接过去太远了!

  2. 使用的是 WordPress 程序,安装了不少冗余插件!

  3. HTTP 请求数量太多了,就和女生上厕所一样,得排队才能完啊!

  4. Google Analytics 等一些服务器已经被墙!

  5. 用户上传图片太大,没有经过压缩处理!

好吧,那我们就先进行初步的优化。

VPS 数据迁移

服务器搬家到国内,也就是 Linode 别人家搬回自己家腾讯云,得带上老老少少一家人:

  • 网站代码

  • Nginx 配置

  • 数据库数据

嗯,学到的第一个 linux 终于派上了用场,将这些数据打包:

好了,数据量不小,打包后的文件非常大,问题就来了,选哪个交通工具呢?

  • wget 或 curl 简单便携

  • ftp 也是简单便携

  • scp 加密传输

  • rsync 增量传输

  • dropbox 中转传输

wget 或 curl 和 ftp 下载的方式很简单。

scp 和 rsync 下载的方式是加密传输,也常用于两个主机之间进行复制文件(需要先建立 ssh 连接)。

scp 使用加密进行传输,可以在两个主机中进行复制:

rsync 传输也加密,但能将文件夹、文件等的权限等信息也保存下来,采用流式传输,同时是一种增量备份的算法在支持,效率较高:

嗯,小结一下:

  • 对于单次传输来看,可以使用 wget/curl/ftp;

  • 对于重要数据,可以使用 scp 来传输;

  • 如果有日常备份的需要,可以使用 rsync 来传输(增量备份);

然后,在这次搬家中,这些工具都没什么卵用,腾讯云和 Linode 就像情侣,终究输给了距离:国内外物理距离太远了,都只有几 K/s 的传输速度,说什么距离不是问题山盟海誓爱你加密都没用。

感情出现危机,自然就需要云备胎作为支持。

也就是使用 Dropbox 或百度云进行中转。

Dropbox  服务器也在国外,果真是和 Linode 近水楼台先得月,传输速度高达 5M/s, 正当腾讯云准备好一切将一家老少迎接回家时,却又被判了死刑:Dropbox 再高再帅再快也在墙外啊,门不当户不对你们不可以结婚!这时候还有个 bypy  的百度云第三方接口可以舒缓下情绪,可这个接口非官方支持,不确定是否可靠,不可作为长期的备份方案,我也无力再爱,所以也没再出轨。

这个故事告诉我们,生活就是如此无奈,我们活在别人界定的环境里,不让你玩你就是不能玩!

等到我们下一代出生时,他们已然不知道这世界上有谷歌、推特、脸书,只有我们知道我们自由的圈子越来越小。

扯远了,回到正题。

既然数据已经在了 Dropbox 中转区,数据搬迁也是一次性的,索性就停止了作死,使用 sftp 将压缩包下载到了本地,同样再使用 sftp 将数据上传到了新服务器上。

VPS 环境搭建与恢复

接着的事情就简单了,新服务器上恢复环境。

  • 安装好所需要的工具(如 Nginx/Mysql/PHP/Git 等)

  • 配置好所需要的用户和权限

添加用户:

添加用户组:

设置一些目录的归属:

有趣吧,在 linux VPS 下,自己掌控用户和权限的感觉,好像我这一匹野马拥有了一个草原呐~

  • 恢复数据库备份

不同数据库自有不同的恢复指令,简单举 mysql 做个栗子: