同时使用Apache2和Nginx时如何在Linux Plesk Obsidian Server中的域上启用gzip压缩

本文概述

今天, 像往常一样, 在网站上更新了一些CSS和JS之后, 我决定使用Chrome监视加载时间和页面大小。我总是在本地服务器(使用xampp)上启用gzip压缩, 因此我希望生产服务器上的传输文件大小类似, 因为我假设顺便说一句, Plesk现在已经提供了诸如gzip压缩的重要功能。 。令人难以置信的是, 它没有或至少没有按照我认为的那样正确配置。

在继续学习本教程之前, 我还了解了一些对我来说很重要的事情。

Plesk网站与Apache&Nginx一起使用

当有人通过这种方式向你的网站(ourcodeworld.com)发送请求时, 会发生以下情况:

  1. 客户端请求到达Nginx中的”前端”, 请求资源(.html页面, .php页面, 图像, javascript等)。 Plesk中的Nginx可在以下TCP端口上使用:80-http, 443-https。
  2. Nginx检查它的缓存中是否已经有资源。
  3. 如果资源被缓存, Nginx返回缓存的内容。
  4. 如果资源没有被缓存或者是关于动态页面的(例如index.php), 则Nginx代理(转发)到后端服务器-Apache的请求。 Plesk中的Apache可在以下TCP端口上使用:7080-http, 7081-https。然后Nginx缓存静态内容-html, images, js, css。

我根本不知道该网站同时使用了这两种技术, 因此, 按照Plesk的默认教程(如何在apache或nginx上启用gzip压缩), 对我而言并没有奏效, 请求始终接收未压缩的数据。

在本教程中, 我将向你介绍如何使它正常工作以提供使用gzip压缩的所有内容。

启用Nginx gzip压缩

当我开始使用gzip进行压缩时, 例如, 服务器的CSS文件在Google Chrome的”网络”标签上生成了以下信息:

没有GZIP的Nginx Plesk

例如, 博客主样式表的文件大小约为481KB, 非常大。

首先打开Plesk, 然后访问服务器上的域列表, 然后查找要启用gzip压缩的域, 在这种情况下, 该域将是ourcodeworld.com, 然后选择Hosting&DNS(托管和DNS)标签, 然后选择Apache&nginx设置:

Plesk Obsidian中域的Apache和Nginx设置

在将出现的这个新区域中, 向下滚动到Additional nginx指令, 并添加以下指令:

gzip on;
gzip_disable "MSIE [1-6]\\.(?!.*SV1)";
gzip_proxied any;
gzip_comp_level 5;
gzip_types text/plain text/css application/javascript application/x-javascript text/xml application/xml application/rss+xml text/javascript image/x-icon image/bmp image/svg+xml;
gzip_vary on;

这将为最常用的传输类型(HTML, CSS, JavaScript和XML)启用gzip压缩, 但是你可以根据需要添加更多的类型(请参阅/etc/nginx/mime.types中支持的类型的列表):

Nginx Gzip压缩

最后, 单击”应用”, 然后再次测试内容大小在浏览器中的行为。在我们的案例中, 优化如下:

Nginx Gzip压缩Plesk黑曜石

如你所见, 在我们的实施中, 它可以完美地极大地减少网站静态资源的传输大小(在主样式表的情况下, 从481KB减少到71KB)。

编码愉快❤️!

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?