网站简单优化之 Nginx 开启文件压缩及缓存

Posted by JC on 2015-06-06 16:46:54 Updated on 2015-06-06 16:46:54

简单优化

站点的基本功能完成后,简单维护,时不时看看日志,用 goaccess 分析下 access.log 看看 4xx 5xx 的状态码,自己测试的时候用 ngxtop,一个实时的请求分析程序,自己把链接都点点,看看哪边有问题,会出现 4xx 和 5xx 的状态码,想办法解决。这两个工具我就不再写怎么用了,小破网站也没有必要老分析。简单优化就靠 Google 提供的一个工具 PageSpeed Insights,会分析移动设备和桌面浏览器的得分,下面会给出优化提示,现在能够解决的只有开启文件压缩的缓存了,优化完成之后的移动设备还是不太好,七十九分,桌面浏览器已经能够达到九十二分了,还算行。

Nginx 开启文件压缩

文件压缩设置是写在 server 端,配置如下:

# gzip
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript  image/jpeg image/png;
gzip_disable "MSIE [1-6]\.";

第一行开启压缩;第二行 gzip_min_length 1k,设置允许压缩的页面的最小字节数,默认是 0,不管也米那多大都压缩,建议设置成大于 1k 的字节数,小于 1k 可能会越压越大;第三行 gzip_buffers 4 16k,设置系统获取几个单位的缓存用于存储 gzip 的压缩结果数据流, 4 16k 代表以 16k 为单位的四倍申请内存,如过没有设置,默认值是申请跟原始数据相同大小的内存空间去存储 gzip 的压缩结果,第四行 gzip_comp_level 设置压缩登记,1-9,1 压缩比最小处理速度最快,越大压缩比越大但处理更慢,传输快,消耗大量 CPU 资源;第五行设置压缩的文件种类,无论是否指定,text/html 都会被压缩,第六行,设置 IE 不开启文件压缩。

开启文件缓存

需要缓存的文件就是媒体文件和 CSS, JS 文件,分别在 location 下 媒体和静态文件设置就行了。

# Django media
location /media {
   alias /home/chen/DjangoProjects/my_blog/media; # your Django project's media files - amend as required
   expires 30d;
   access_log off;
   add_header Cache-Control "public";
}

location /static {
   alias /home/chen/DjangoProjects/my_blog/static; # your Django project's static files - amend as required
   expires 30d;
   access_log off;
   add_header Cache-Control "public";
}

expires 缓存时间,30d,三十天。

对于一个个人网站的小站点,这俩项优化完成就差不多了,如果功能越来越多,页面交互更加复杂,那就是程序要写写好了,还有 JS 的优化。我的 NO MAN'S LAND 将作为一个长期项目,后续将增加内容,增加功能,优化各个方面,最近还学习了 Redis 准备给博客加个阅读次数功能。

参考链接

tags: devops, nginx


BMC logoBuy me a coffee via Alipay or Wechat Pay