乐喵娱乐网 · 免费提供绿色软件、活动线报以及其他网络资源,好货不私藏!

通过gzip和nginx来提高网站打开速度及整体性能

小编 值得一看 0 热度 95 收藏 0

您应该知道,网站的打开速度取决于浏览器打开和下载的网页文件的大小。 如果传输的页面内容文件减少,则您的网站打开速度一定会提高。 特别是对于移动用户,网站的开放速度受到移动网络的限制,因此压缩网站页面的内容非常重要。


  Gzip是一种非常流行的数据压缩方法。 您可以在nginx配置中启用gzip来压缩Web文件。 然后,这些文件将被浏览器解压缩,并且这些文件将不会受到任何影响。 但是,压缩文件将占用服务器资源,因此最好压缩这些文件以获得更好的结果。 例如,文本文件被很好地压缩,通常压缩两次以上。 而且诸如JPG或PNG之类的文件已经被格式化了压缩,因此,如果您进行二次压缩,效果并不是特别明显。


  本文主要讨论如何配置nginx以启用gzip压缩。


  周围环境


  ubuntu 20.04服务器


  root特权或具有sudo特权的非root用户


  一,创建测试文件

  在这一步中,我们将在默认的Nginx目录中创建几个测试文件。 我们稍后将使用这些文件来检查Nginx的默认行为是否为gzip压缩,并测试配置更改是否具有预期的效果。


  首先,创建一些测试文件,这些文件主要用于查看我们的gzip压缩效果。  gzip不分析文件内容,主要通过文件扩展名判断文件类型。 如果还分析文件内容,则总体效率将大大降低。 因此,我们可以创建一些图像文件,html文件和某些样式文件。


  须藤truncate -s 1k /var/www/html/test.html


  须藤truncate -s 1k /var/www/html/test.jpg


  须藤truncate -s 1k /var/www/html/test.css


  须藤truncate -s 1k /var/www/html/test.js


  下一步是使用我们刚创建的文件在全新安装中压缩请求的文件时,检查Nginx的行为。


  2.通过命令查看压缩效果

  使用curl命令方法添加标题Accept-Encoding:gzip,以查看每个文件的压缩结果。


  curl -H“接受编码:gzip” -I http://localhost/test.html


  您可以看到以下结果:


  输出


  HTTP / 1.1 200 OK


  伺服器:nginx / 1.18.0(Ubuntu)


  日期:2021年2月9日星期二19:04:25 GMT


  内容类型:text / html


  上次修改时间:2021年2月9日,星期二,格林尼治标准时间


  连接:保持活动状态


  ETag:W /“ 6022dc8d-400”


  内容编码:gzip


  在最后一行,出现单词Content-Encoding:gzip。 服务器正在使用gzip压缩来发送文件。 默认情况下,nginx仅压缩html文件。 在此命令的全部中,您可以看到文件已被压缩。 但是,其他文件格式未压缩。


  您可以使用以下命令来验证我们刚才所说的内容。


  curl -H“接受编码:gzip” -I http://localhost/test.jpg


  再次查看结果,它与上一个不同:


  输出


  HTTP / 1.1 200 OK


  伺服器:nginx / 1.18.0(Ubuntu)


  日期:2021年2月9日,星期二19:05:49 GMT


  内容类型:图片/ jpeg


  内容长度:1024


  上次修改时间:2021年2月9日,星期二,格林尼治标准时间


  连接:保持活动状态


  ETag:“ 6022dc91-400”


  接受范围:字节


  内容编码:gzip不会出现在输出结果中,这意味着该文件未进行任何压缩。


  您也可以使用此方法测试样式文件,例如css。


  curl -H“接受编码:gzip” -I http://localhost/test.css


  结果是相同的,内容编码:gzip不会出现


  输出


  HTTP / 1.1 200 OK


  伺服器:nginx / 1.18.0(Ubuntu)


  日期:2021年2月9日,星期二19:06:04 GMT


  内容类型:text / css


  内容长度:1024


  上次修改时间:2021年2月9日,星期二,格林尼治标准时间


  连接:保持活动状态


  ETag:“ 6022dc91-400”


  接受范围:字节


  三,配置Nginx启用gzip功能


  本节主要操作相关的配置,以便gzip可以处理其他几种文件格式的压缩。


  您可以使用nano或vim编辑nginx配置文件。


  须藤nano /etc/nginx/nginx.conf


  找到gzip设置部分,如下所示:


  /etc/nginx/nginx.conf


  ...


  ##


  #`gzip`设置


  #


  #


  gzip on;


  gzip_disable“ msie6”;


  #gzip_vary on;


  #gzip_proxied any;


  #gzip_comp_level 6;


  #gzip_buffers 16 8k;


  #gzip_http_version 1.1;


  #gzip_types text / plain text / css application / json application / x-java;


  ...


  因为我们使用的是Ubuntu 20.04。 因此,默认情况下,gzip是打开的。 但是某些设置无效,因此我们需要进行一些修改:


  通过取消注释行前的#来启用其他设置(即,删除#符号)


  添加gzip_min_length 256; 参数,此参数告诉nginx不要压缩小于256字节的文件,因为不需要小文件。 压缩此类文件会影响服务器效率。


  将其他文件类型扩展名添加到gzip_types参数。 这些文件类型可以是Web字体,图像,XML,JSON结构化数据或SVG图像文件。


  应用这些更改后,设置部分应如下所示:


  /etc/nginx/nginx.conf


  ...


  ##


  #`gzip`设置


  #


  #


  gzip on;


  gzip_disable“ msie6”;


  gzip_vary on;


  gzip_proxied任何;


  gzip_comp_level 6;


  gzip_buffers 16 8k;


  gzip_http_version 1.1;


  gzip_min_length 256;


  gzip_types


  应用程序/ atom + xml


  应用程序/ geo + json


  应用程序/ javascript


  应用程序/ x-javascript


  应用程序/ json


  应用程序/ ld + json


  应用程序/清单+ json


  应用程序/ rdf + xml


  应用程序/ rss + xml


  应用程序/ xhtml + xml


  应用程序/ xml


  字体/字体


  字体/ otf


  字体/ ttf


  图片/ svg + xml


  文字/ css


  文字/ javascript


  文字/纯文字


  文字/ xml;


  ...


  保存并关闭文件以退出。 要启用新配置,您需要重新启动Nginx:


  sudo systemctl重新启动nginx


  第四,确保所有配置正确

  重复前面的测试步骤并执行相应的命令请求:


  curl -H“接受编码:gzip” -I http://localhost/test.html


  由于html文件之前已默认压缩,因此该命令的执行结果保持不变:


  输出


  HTTP / 1.1 200 OK


  伺服器:nginx / 1.18.0(Ubuntu)


  日期:2021年2月9日星期二19:04:25 GMT


  内容类型:text / html


  上次修改时间:2021年2月9日,星期二,格林尼治标准时间


  连接:保持活动状态


  ETag:W /“ 6022dc8d-400”


  内容编码:gzip


  然后,让我们测试之前未压缩的CSS样式表,看看结果将是什么变化:


  curl -H“接受编码:gzip” -I http://localhost/test.css


  您可以看到gzip正在压缩文件:


  输出


  HTTP / 1.1 200 OK


  伺服器:nginx / 1.18.0(Ubuntu)


  日期:2021年2月9日,星期二19:21:54 GMT


  内容类型:text / css


  上次修改时间:2021年2月9日,星期二,格林尼治标准时间


  连接:保持活动状态


  有所不同:接受编码


  ETag:W /“ 6022dc91-400”


  内容编码:gzip


  我们可以用相同的方式测试jpg文件:


  curl -H“接受编码:gzip” -I http://localhost/test.jpg


  没有看到gzip压缩:


  输出


  HTTP / 1.1 200 OK


  伺服器:nginx / 1.18.0(Ubuntu)


  日期:2021年2月9日,星期二,格林尼治标准时间


  内容类型:图片/ jpeg


  内容长度:1024


  上次修改时间:2021年2月9日,星期二,格林尼治标准时间


  连接:保持活动状态


  ETag:“ 6022dc91-400”


  接受范围:字节


  因为在先前的配置中,我们没有添加image / jpeg。


  在这种情况下,我们已经在Nginx中成功配置了gzip。


  综上所述

  可以看出,gzip易于配置,并且带来的速度提升也非常明显。


免责声明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

评论列表
请自觉遵守互联网相关的政策法规,严禁发布广告、色情、暴力、反动的言论。
  • 点击我更换图片
  • 全部评论(0
    还没有评论,快来抢沙发吧!