建站

这是自己的第二个博客了,在两年之后终于又忍不住用了 hexo,确实可以感受到 hexo 经过优化比之前快了很多。

首先你会需要一台可爱的服务器和一个域名,然后安装 nginx 和其他必要的软件,在本地安装 hexo,配置好 SFTP,然后把写好的内容推送到服务器。这一部分网上有很多的资料了,就不再赘述了~

SFTP 最好不要用 root 否则有安全问题,可以新建一个账号专门用来发博文

一些优化和配置

安全部分

根据 Mozilla Observatory 的建议,添加以下的 HTML headers:

1
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload

强制对整个站点启用 HTTPS,同时对 HTTP 流量配置好 301

1
Content-Security-Policy: default-src 'self' cdn.jsdelivr.net 'unsafe-eval' 'unsafe-inline' https: data:

阻止除了本站和 CDN 以外的内容引用,因为还没有修改博客框架,暂时还不能禁用内联脚本

1
X-Frame-Options: SAMEORIGIN

限制 iframe 只能来自于本站(之后配置评论的时候可能需要修改以支持 Disqus 等平台)

1
X-XSS-Protection: 1; mode=block

在发现 XSS 注入时终止访问

1
X-Content-Type-Options: nosniff

在服务器未指定 MIME 类型时忽略内容

Subresource Integrity 在 XML 里附上资源哈希防止篡改,也摸了,等修改博客框架再做

不过做了这些也还是只拿了30分/D

访问优化

根据咕噜噜的 PageSpeed Insights 来修改缓存控制和压缩方式,加快网页访问速度,上面的是 nginx 的配置内容,下面的是 HTTP headers

1
2
3
4
gzip on;
gzip_vary on;
gzip_min_length 10240;
gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml;
1
Accept-Encoding "gzip"

给大的静态文件开启 gzip 压缩

1
2
3
4
5
6
map $sent_http_content_type $cacheable_types {
"text/css" "max-age=864000";
"image/webp" "max-age=864000";
"application/javascript" "max-age=864000";
default "";
}
1
Cache-Control $cacheable_types;

给静态文件开本地缓存

做完这些就拿到了97的成绩啦,接下来就是漫长的摸鱼时间~