0%

本站最近的一点小动作

1. 搬运至国内主机

本博原是部署在github上,然而美国机房延迟实在感人。再来手上有一台腾讯云的学生机,干脆就部署过来吧。

由于本博实质为静态网站,所以直接将文件部署到nginx下就好。主机用的是lnmp所以步骤也很简单:

1
2
lnmp vhost add moeyui.cn 	#添加网站

然后在/home/wwwroot/目录下会生成一个名为moeyui.cn的文件夹,接下来把静态文件全部搬过来就好了。然而相比直接拷贝,我们不如利用git来帮我们实时同步。通过git clone命令将文件clone到文件夹下,为了与github上的文件时刻保持同步,我们可以编辑crontab来添加定时任务。如果还没有安装crontab,centos可以yum install -y vixie-cron来安装,其它系统请自行百度。输入crontab -e编辑任务计划,添加以下语句:

1
*/5 * * * * cd /home/wwwroot/moeyui.cn/moeyui1.github.io&&git pull

这样就可以保证博客实时同步了。

2. cdn加速

后来才发现改善国内访问速度其实可以使用国内的cdn服务,国内免费且不用备案的cdn吾辈推荐百度云加速,国外推荐cloudfare

百度云加速提供了两种cdn加速方式——NS和CNAME。

NS方式实际上就是改用百度的dns服务,让百度直接调度,而CNAME方式相对较传统,通过将对域名的访问指向百度的服务器来让百度调度。

3. 启用https

于是乎,心血来潮又想搞一波https,反正免费证书满大街是吧,浏览器地址栏绿色的https多有B格ヾ(o◕∀◕)ノヾ。于是乎申请了Let’s encrypt的免费证书。

安装证书的方式有很多,官方给了一个很长的列表。官方推荐使用certbot,环境要求python2.7,然而腾讯云上的centos6.7自带的是python2.6。。。重点是自带源里面最新就是2.6,而且手动编译安装2.7之后会出现莫名其妙的问题——yum都用不了(具体原因吾辈也不清楚)。

所以只好找其它办法,这里推荐一个脚本获取证书的方式,简单快捷。作者的readme写得很清楚,这里就不再细说。

在nginx上配置

需要提醒的是,脚本需要先通过文件路径在网站文件夹下存放一个文件,再通过根据网站地址从网络上把那个文件下载下来校验。在nginx上配置时,记得检查网站的配置文件,如果有以下这句话:

1
2
3
4
location ~  /\.
{
deny all;
}

可能会访问不到校验文件,需要在这段话前面加上一段:

1
2
3
4
location ~ /.well-known/acme-challenge/
{
expires 12h;
}

和cdn的冲突

cdn缓存页面是不会使用上一步生成的证书的,所以不能支持https访问。并且百度云加速不能上传自定义的证书,使用百度云的https服务又必须付费,故不得不从cdn和https中选其一。

国外的cloudflare可以免费提供证书cdn,然而其国内速度感人。。。

全站https

虽然启用了https,但本站并不是全站https,当你打开首页可以看到浏览器地址栏是这样的:

完全https

但随便点进一篇带图片的文章,就变成了这样:

不完全https

这是因为本站图片外链是http,所以全站只能算不完全https。七牛自定义外链域名需要付费。