JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

Nginx开启Gzip压缩与expire缓存提高页面加载速度

wys521 2024-09-14 13:45:36 精选教程 23 ℃ 0 评论

一、Gzip压缩

1.Vim打开Nginx配置文件

vim /usr/local/nginx/conf/nginx.conf

2.找到#gzip on进行修改

gzip on;

gzip_min_length 1k;

gzip_buffers 4 16k;

#gzip_http_version 1.0;

gzip_comp_level 2;

gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;

gzip_vary off;

gzip_disable "MSIE [1-6]\.";

第1行:开启Gzip

第2行:不压缩临界值,大于1K的才压缩,一般不用改

第3行:buffer

第4行:用了反向代理的话,末端通信是HTTP/1.0

第5行:压缩级别,1-10,数字越大压缩的越好,时间也越长

第6行:进行压缩的文件类型

第7行:跟Squid等缓存服务有关,on的话会在Header里增加"Vary: Accept-Encoding"

第8行:IE6对Gzip不兼容,不压缩

3. :wq保存退出,重新加载Nginx

/usr/local/nginx/sbin/nginx -s reload

4.用curl测试Gzip是否成功开启

curl -I -H "Accept-Encoding: gzip, deflate" "http://www.tongtian.tech"

HTTP/1.1 200 OK

Server: nginx/1.14.2

Date: Sat, 26 Jan 2019 14:56:03 GMT

Content-Type: text/html; charset=utf-8

Connection: keep-alive

X-Powered-By: PHP/7.0.31

Set-Cookie: PHPSESSID=ie6kjh6bm44o2ec78k5tkaoth6; path=/

Expires: Thu, 19 Nov 1981 08:52:00 GMT

Cache-Control: no-store, no-cache, must-revalidate

Pragma: no-cache

Content-Encoding: gzip

页面成功压缩。

二、nginx expires 缓存实现性能优化

1.根据扩展名进行判断

nginx expires配置详解(配置在nginx.conf中的server模块中):

……

server{

……

location ~ .*\.

(gif|jpg|jpeg|png|bmp|swf)$

{

root /var/www/static;

expires 365d; 当用户访问网站URL结尾的文件扩展名为上述指定类型的图片时,设置缓存365天。

}

location ~ .*\.(js|css)?$

{

root /var/www/static;

expires 30d; #当用户访问网站URL结尾的文件扩展名为js、css类型的元素时,设置缓存30天。

}

……

2.根据URI中的路径(目录)进行判断,添加expires功能范例

location ~ ^/ (images|javascript|js|css|flash|media|static)/ {

expires 360d;

}

3.单个文件添加expires功能范例

location ~(robots.txt){

expires 7d; #给robots.txt机器人文件设置过去时间,在设置的期间内不记录404错误日志。

break;

}

Nginx expires功能缺点及解决方法

当网站被缓存的界面或数据更新了,此时用户端看到还是旧的已经缓存的内容,这样就会影响到用户体验,解决方法如下:

1.对于经常需要变动的图片等文件,可以缩短对象缓存时间。

2.当网站改版或更新时,可以在服务器将缓存的对象改名(代码程序)。

3.对于网站的图片、附件,一般不会被用户直接修改,用户层面上的修改图片,实际上个是重新传到服务器,虽然内容一样,但是会产生一个新的图片名称。

4.网站改版升级会修改js、css等样式文件,若改版时对这些样式文件中的元素改了名,会使得前端的CDN及用户端需要重新缓存内容。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表