VPS 的那些事儿
本周和同学凑钱购买了一个VPS,搭建了一些基本服务,虽然没有太多时间折腾,至少也有 一些肤浅的经验,在此总结分享。
为什么要买VPS?
在此之前,我都是一直使用虚拟空间来支持我的博客。因为访问量不大,并且配置简单方便, 最重要的是价格便宜。便宜点的虚拟空间提供商每年才一百多块钱,作为小型个人博客绰绰 有余。先给大家推荐一个衡天小张 , 这个是我一直在用的空间商,期间换过一次IP,别的没发生什么重大事故。我记得当 时他的用户量还是很少的,两年时间,现在做大了,用户也有很多,口碑也不错,是一个很 好的选择。
做完广告之后,还是回正题,为什么要买VPS?对于我而言,基于一下两个方面考虑
- 虚拟空间一般都只提供PHP+APACHE+MYSQL的服务,对于我这种非常热衷尝试新东西的人 来说远远不够。最近一直想用一下 Python 的 Tornado, web.py 等等 web 框架。将来说不 定还会尝试 RoR 这个神奇的框架。
- 动手控。凡是能动手完成绝对不会去找现成的东西。更重要的是,一个 VPS 就是一台 服务器,你必须去优化内存CPU的使用率,维护主机的稳定,避免宕机。整个过程对于我来 说是个探索发现的冒险旅程,这样的学习让我非常享受。
我所了解的VPS现状
在购买VPS过程中做了一番小调查,使用 Linode 服务的网站不在少数。但是对于每年一百美刀的价格,实在是承受不了,再加上网站的访问 量不会那么大,我决定选择一个经济实惠的 VPS 先练手。
先要选择经济实惠的VPS,这里有一个网站推荐:Low End Box。这个网站列举的一些 VPS 大多都 是每月5美元左右的经济廉价主机供应商。参考了一篇第四季度 VPS供应商排名的文章,最后选择了现在使用的 RamNode。那Linode使用的 Xen,RamNode的 OpenVZ 以及 KVM 三种不同的虚拟机到底有什么区别呢?
浅谈OpenVZ VPS、Xen VPS和Kvm VPS这篇文章给了一个简单的介绍:
从更深的技术层面来看,XEN使用的是半虚拟化技术。OpenVZ则是采用类似于Linux-VServer的操作系级全虚拟化技术。KVM是新兴的虚拟化项目,同样也是采用全虚拟化技术。这三者有一个共同点就是,都采用Linux虚拟技术。
关于他们的各自的优劣,VPS采用的几 种常见技术(OpenVZ、Xen、KVM)介绍与对比这篇文章详细的对比了。VPS Platforms 这篇英文的更值得推荐一下,用表格对比了他们的特性差异。最后我们选择 了这款:
256MB RAM 256MB VSwap 1 CPU Core 40GB SSD-Cached HDD Space 1Gbps Port 1000GB Bandwidth 1 IPv4 Address 16 IPv6 Addresses Weekly Remote Backups TUN/TAP
如何优化小内存VPS?
这个VPS主要用作 WordPress 的搭建和Python Web框架的实验,访问量很小,先介绍一下都装了哪些服务:
- Nginx
- PHP
- MySQL
- PHP-FPM
优化的重点是:Nginx 减少 workprocess 的数量,MySQL 减少缓存等的大小, 减少 FPM 的实例个数。 Nginx 修改nginx.conf文件:
sudo vi /etc/nginx/nginx.conf
把worker_processes 设置为CPU核心数量的两倍:
worker_processes 2;
MySQL 在/etc/mysql/my.cnf 中改一下缓存的数量
key_buffer = 16K max_allowed_packet = 1M thread_stack = 64K thread_cache_size = 8
网上有好多教程说要添加skip-innodb这个选项,我在添加之后MySQL服务就没办法开启,就 暂时没有研究怎么关闭innodb。
PHP-FPM 编辑PHP-FPM的配置文件:
sudo vi /etc/php5/fpm/pool.d/www.conf
把server的数量调小(这种只适用访问量小,内存小的VPS):
pm.max_children = 3 pm.min_spare_servers = 1 pm.max_spare_servers = 2
域名 & DNS
做网站域名是一个大问题,当然作为个人用户选择自己喜欢的.me域名还是很经济实惠的。 不过无论是你选择.me域名还是.com域名,千万别选.cn。当初就是选了.cn域名带了了一大 堆麻烦,不光要备案,还要上传身份证明。有一段时间工信部管的严,个人还没办法注册.cn域 名。域名注册首选网站 GoDaddy。支持支付宝付 款,非常方便。注意在购买之前请Google GoDaddy 优惠 码,每个月都会有优惠活动,比如说这个月.com 域名就是3.99美元。
关于DNS维护,强烈建议使用 DNSPod 来托管DNS 服务。