用 nginx 托管静态站的几个细节
静态站点配置很短,但有几处不写就会露出"临时搭的"痕迹。
打开压缩
nginx 的 gzip 默认是关的。文本资源压一下通常是三四倍的差距。
gzip on;
gzip_types text/plain text/css application/javascript application/json image/svg+xml;
gzip_min_length 512;
给静态资源加缓存
HTML 不缓存、带版本号的静态资源长缓存,是比较省心的组合。
location ~* \.(css|js|svg|png|jpg|woff2)$ {
expires 30d;
add_header Cache-Control "public";
}
自定义 404
默认的 404 页面会暴露服务器软件,顺手换掉。
error_page 404 /404.html;
location = /404.html { internal; }
权限与目录
站点文件属主给 www-data,目录 755、文件 644 即可;不要让 nginx 用户拥有写权限。
最后记得 nginx -t 再 reload,配置语法错误不会让旧进程立刻挂掉,但下一次重启就起不来了。