已阅读
免备案cdn加速对于网站安全的实例
搭建过程有些繁琐...笔者当初也是花了相当的功夫才成功搭建的,并且至今仍有许多不懂的地方,希望各位看官老爷可以据此提出批评意见.
好了,正式开始吧.
一.我们需要准备什么?
1.一定的Linux操作经验.这点无需害怕,毕竟一个萝卜一个坑,大家都是这样过来的,犹记得当初对着菜鸟教程里的Vi/Vim教程一个一个操作的痛苦...所以这里推荐大家使用Xshell工具来连接VPS进而操作,这将极大减轻我们的负担.
2.一台VPS服务器,用于搭建V2环境和Nginx部分.这里推荐Digital Ocean(之后简称DO)家的,毕竟有羊毛可薅,,,具体怎么薅羊毛网上有很多教程,搜索Digital Ocean+Github关键字即可,不过大家在注册Digital Ocean的时候可以选择这个友(wu)好(chi)的链接
https://m.do.co/c/115203328693
,这样的话如果你成功付钱上岸,我会有奖励.关于VPS服务器的配置,下面会说.
3.一个域名和CDN服务商.这里推荐大家去
https://www.freenom.com/zh/index.html
注册域名,网站速度比较慢,但是毕竟是免费的,咱也不说啥.CDN服务推荐Cloudflare(只用过这个...).
4.体力和耐心.因为真的很复杂(毕竟我只是个菜鸡...),所以,做好花费一整天甚至更多时间的准备吧.
5.PayPal账户,用于支付.
6.高中英语.
二.我们开始吧
1.先是在DO上搭建VPS服务器, 新建项目后按图所示点击新建Droplet:
系统选择Ubuntu 18.04 x64,Debian 8或者9 x64, Cent OS 7都行,不同的系统之后的操作会不一样,Ubuntu和Debian的操作基本一样.
价格的话当然当然是$5/mo呐(穷比日常,大佬请随意),1G内存,25G 的SSD,1T流量每月,怎么看都够了(真的!!).
地区的话推荐选择旧金山,一是离得近(美国而言),二是作其他用途时,比如注册美区的Apple ID,还是很有帮助的.
其他的默认就好了(要么没需求,太难的咱也不会啊).
注意新建Droplet是要花钱的,所以不要太任性.
这里之后可以下载一个Xshell工具,在本地通过ssh连接到VPS服务器上,这样操作起来会很方便,我们用免费版的就够了(白嫖总是令人愉悦),这里贴一个链接:
https://www.netsarang.com/zh/free-for-home-school/
之后涉及到VPS的操作都在Xshell里进行.
登陆到VPS需要ssh端口号,默认为22,可以在/etc/ssh/sshd_config下修改,但是没有必要,还要IP地址
然后打开Xshell6,新建会话,再在主机一栏填上刚刚复制的IP地址,端口号就是SSH端口号,默认22就好
确定后会回到主界面,双击新建会话(红框部分)
如果你的IP没有被封的话就可以顺利连接了(有可能你的IP之前被封了,然后别人又不要了),一路确定,然后会提示你输入用户名,默认root,确定后等一会会要求填写密码,这个在DO给你注册邮箱发的邮件里,就像这样
填上确定就行了,注意第一次登陆会要求你更改密码,注意仔细阅读提示,一般依次要你填写现密码,新密码,重复新密码,每次填完回车就行.这里提一下,由于笔者之前的降智操作,导致不能通过ssh连接到DO的VPS,所以接下来的演示是以另一家服务商即搬瓦工的VPS做演示,不过基本操作是一样的,完全不用担心.
2.在VPS里搭建web服务器,这里推荐Nginx.Nginx的安装网上搜教程即可,有很多,这里不再赘述,Ubuntu和Debian的推荐这个教程
https://cloud.tencent.com/developer/article/1359785
Cent OS的推荐这个
https://blog.csdn.net/laoguoyandong/article/details/80694329
安装完成后访问自己的IP,出现以下界面表示成功:
3.配置域名解析到CDN
先在freenom上申请域名,官网
http://www.freenom.com/zh/index.html
,随便输一个名字,点击检查可用性,如图:
然后随便选一个,再点击现在获取,再点击右上角的完成:
Period选择最长的免费期限,然后Continue
然后会要求你输入邮箱,相当于注册,填一个并验证就好了.然后就是填一些注册信息,依次填就行,除了邮箱外,这些信息可以是虚假的,但是一定要保证你所填地址与你的IP一致。推荐阅读:《免费CDN加速的云边协同的新浪潮》
如果是国内的网络的话,在验证邮箱那可能会报错,这就需要你向有代理的大佬寻求帮助(记得开全局),或者找其他没有此类限制的域名注册商.注册完成后会发一封邮件到你的邮箱,会比较慢.另外,多次重复的提交可能会被freenom标记为滥用,导致邮箱不可用.
一切完成后,进入Client Area,点击红框部分
然后
选择第二项,保留这个网页,待会儿会用到
然后再到Cloudflare注册账户,注册完毕后会进入添加网站界面,先输入你的网站,比如:halameizu.tk, 然后next,再选择免费的套餐(穷比日常,大佬请随意),然后
填写的时候前面不要留空格,记得点Add Recrod,然后再添加一条,把www改成@就行了
这样就添加了www和@两条A记录,这些可以在控制面板的DNS选项卡里修改.
然后会出现下面的画面,我们只需要把红框的部分 分别复制到之前freenom网站的域名服务器管理页面里即可
记得点击下方的Change NameServers
域名服务器的更改可能需要很长的时间才会生效,我们回到Cloudflare, Continue之后进入到控制面板,点击Crypto,将SSL项设置为Full, 其他默认.
4.生成域名SSL证书
如果你使用的是Cent OS的话,请参考该教程:
https://blog.starryvoid.com/archives/113.html
使用其他系统的话请参考以下操作.首先进入
https://certbot.eff.org/instructions
官网上有针对不同系统和不同软件的详细操作步骤, 我们这里以Debian 8和Nginx为例(Debian 9和Ubuntu操作可以参照官网操作).
首先通过Xshell6 连接到VPS,依次执行以下语句:
清除以前的certbot安装:
sudo apt-get remove certbot
下载certbot-auto:
wget https://dl.eff.org/certbot-auto
移动certbot-auto到指定位置:
sudo mv certbot-auto /usr/local/bin/certbot-auto
指定用户为root:
sudo chown root /usr/local/bin/certbot-auto
给予相应权限:
sudo chmod 0755 /usr/local/bin/certbot-auto
自动配置证书:
sudo /usr/local/bin/certbot-auto --nginx
注意,此段代码执行完毕后会让你输入一个邮箱来作为以后续订和安全提示的联系方式:
输入邮箱,回车.
之后还有一些操作,可参考以下回答,填写域名时记得带www,比如www.halameizu.tk
添加证书自动续订:
echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto renew" | sudo tee -a /etc/crontab > /dev/null
然后在浏览器输入https://xxxxxx(你的域名),比如:https://halameizu.tk,或者https://www.halameizu.tk,如果在地址栏有红框中的小锁标志,则说明证书安装成功.
证书安装成功后,我们得修改一下Nginx的配置文件.
将以下内容复制,修改,粗体部分需要修改,其中,www.example.com需要改为你的完整域名,比如www.halameizu.tk;/tmp/为V2的流量转发路径,可以自定义,只要跟后面客户端的转发路径保持一致即可;1234为V2的端口,之后会用到,建议填写5位的.
server {
listen 443 ssl;
server_name www.example.com;
ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem;
location /tmp/ {
proxy_redirect off;
proxy_pass http://127.0.0.1:1234;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_intercept_errors on;
}
}
修改完毕后复制,
使用Xshell6连接到VPS, 然后
vi /etc/nginx/nginx.conf
关于vi操作,可参考
https://www.runoob.com/linux/linux-vim.html
将光标移动到合适位置,再按i进入插入模式,然后右击,选择粘贴.
可以参考下图:
然后保存,退出.
可以输入
sudo nginx -t
检查是否有语法错误,以下提示就表示没有:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
重启nginx服务
sudo systemctl restart nginx
到这里,我们已经做完了所有的前期工作了