大家在选购VPS一般都是默认有一个或多个ipv4地址的,然而大家也许也听说过NAT VPS,说白了就是没有独立的ipv4地址(通过端口映射共享ip),这一类VPS因为省掉了ipv4地址的费用,因此价格非常的低廉,但是大家也许有疑问,就是这一类VPS到底有什么用,一方面新手可以自己熟悉一些Linux下的Bash语言,另一方面也可以运行一些小程序。不过要直接拿来建站的话就有点麻烦,因为采用了端口的映射,因此,你VPS的公网ip的端口并不是默认的80或443的端口,也就是说,别人要访问你的网站的时候需要加上端口,如https://www.vmvps.com:12306,显然对自己和访问者而言非常的麻烦,那么本文就简单说一下利用ipv6和Cloudflare完成建站的工作。
如何利用NAT VPS建站
一、前提条件:
- 你的NAT VPS最好有至少1个ipv6(ipv6基本是0成本,绝大多数NAT VPS商家都会提供多个免费的ipv6)
- 你的NAT VPS内存不要太小,比如小于128M内存,尽管有人在64M极简安装Wordpress,但想稳定运行,绝非易事
- 一个域名(需要把域名的DNS改成Cloudflare的)
- Cloudflare账号(免费,可以自己去注册,并且把域名加到Cloudflare上)
二、实施步骤
1. 选购一款NAT VPS
关于NAT VPS的选购,国外比较出名LowEndSpirit,里面有一些商家可以供选择(选购链接),另外像Gullo.me这样的个人商家也很受大家的追捧。大家可以按需选择。本文为避免广告嫌疑,不做推荐,欢迎留言讨论。注意欢迎邮件或是在SolusVM查找出VPS上绑定的ipv6地址备用(当然也可以在VPS里查看ip地址:ip addr),SolusVM查看的方法如下:
2. Web服务器和网站的搭建
登录SSH安装Web套件,推荐军哥的LNMP(传送),如果是小内存要注意,不要安装PHP7和MySQL5.6+、MariaDB 10这样内存消耗大户的软件。只是个人小博客的话,可以选择Typecho+sqlite的组合。搭建网站的过程略去,正常操作即可,注意两点:
- 如果你也是用lnmp添加虚拟主机的话,我们先不增加SSL证书(以免影响后面操作)
- Nginx的配置需要打开对ipv6的监听,也就是需要把#listen [::]:80的#注释删掉(要改两处:/usr/local/nginx/conf/nginx.conf和/usr/local/nginx/conf/vhost/域名.conf)。
3. 绑定域名到Cloudflare上
添加域名和修改域名DNS的方法略去(so easy)。把在Cloudflare的DNS记录中添加两条AAAA记录,一条@,一条www记录(这样用户就可以同时通过域名和www域名访问你的网站了),并且把之前的ipv6地址填上去,如下图(注意Proxy status的图标一定是打开的,这样才是使用了Cloudflare的CDN)
这个时候,如果你访问你的域名发现无法访问,因为安全证书设置的有问题,需要再Cloudflare关掉SSL
注意:如果你对SSL没有需求,到这一步就算大功告成了,但如果你对SSL有需求(想要https访问那么要麻烦一些,往下看)
4. 增加https支持
首先在Cloudflare下面申请一个Origin证书(这个证书是专门用于你的VPS和Cloudflare通讯用的)
接下来你会看到,点next
生成后的证书和key:
把证书和key的文本部分分别在VPS上保存成XXX.pem和XXX.key文件(其中XXX可自定义,注意保存的路径,我是放在/home/SSL目录下了)。
接下来,我们假定在第2步时,你和我一样使用的是LNMP创建的主机,那么我们可以删掉用lnmp vhost del来删掉他,重新创建,并将SSL证书和key的位置指向我们刚才保存的文件,下面给个LNMP下的参考
同样,我们需要进入/usr/local/nginx/conf/vhost/域名.conf,把#listen [::]:443的#注释删掉,记得把Cloudflare->Crypto下的SSL改成FULL,测试一下应该是可以正常访问了。
如果你不是LNMP的用户,那么可以参照Nginx和Apache添加安全证书的方法对conf文件直接进行修改,网上相关教程非常多,此处就不多说了
学习了。
LowEndSpirit原来就是InceptionHosting也就是之前在LowEndTalk上面公开发表歧视中国人和巴西人的那个英国佬Anthony开的,他家竟然还有1、2GB硬盘的NAT VPS在卖,能装下Linux系统就已经不错了,更不要说建站了。