Bg

为您的网站启用Gzip压缩

Gzip是最流行的压缩算法,用于压缩网页文件并减少它们的大小。压缩算法是一种使文件(即HTML、CSS、JavaScript和其他网页资源)更小的方法,以便它们占用更少的空间。在您的网站上使用Gzip压缩可以帮助加快访问者的页面加载时间,因为较小的文件可以更快地下载。平均而言,Gzip可以实现大约60-80%的基于文本的文件(如HTML和CSS)的压缩率。

Gzip如何工作?

简而言之:Gzip在文件发送给用户的浏览器(即您网站的访问者)之前压缩文件,然后他们的浏览器自动解压缩Gzipped文件,以便在他们的浏览器中加载完整的原始文件。

大多数现代网络服务器都支持Gzip压缩,并且通常默认启用。要检查您的网站是否启用了Gzip,您可以使用我们的Gzip压缩测试或我们的网站速度测试。

在Apache中使用.htaccess文件启用Gzip压缩

您实际上可以使用两个不同的Apache模块来启用HTTP Gzip压缩:mod_gzip和mod_deflate。Mod_gzip启用Gzip压缩,mod_deflate使得在输出发送给访问者之前压缩服务器的输出成为可能(这是同一回事)。那么您应该使用Gzip还是deflate来压缩您的资源?最终这并不重要,两个模块都将为您提供相同的最大Gzip压缩。但是,作为一般规则,建议使用mod_deflate,因为与mod_gzip相比,它得到更广泛的支持。Mod_deflate也有更好的文档记录和更容易配置。如果mod_deflate在您的服务器上不起作用,您仍然可以使用mod_gzip。并非每个主机都在其服务器上启用了这些模块,因此当下面的.htaccess脚本不起作用时,请务必询问您的主机。将以下脚本之一添加到您的.htaccess文件中(可以在您的网站的根文件夹中找到或应该放置,通常是/var/www/html/):

启用mod_deflate(推荐):

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/opentype
# For Olders Browsers Which Can't Handle Compression
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>

启用mod_gzip(备用选择):

<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_include mime ^text/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_include handler ^cgi-script$
</ifModule>

注意:当您只想用Gzip压缩某些组件或特定文件类型时,请确保将此文件类型包含在上述列表之一中。同样,确保服务器上至少启用了其中一个模块。如果您不想压缩特定文件类型,只需从代码中删除此文件类型。

在Nginx中启用Gzip压缩

请按照以下步骤在Nginx中启用Gzip:

步骤1:编辑Nginx配置文件

使用您喜欢的文本编辑器打开您网站的Nginx配置文件。配置文件通常位于/etc/nginx/nginx.conf或/etc/nginx/sites-available/your-site.conf,具体取决于您的设置。

步骤2:将以下代码添加到http块:

gzip on;
gzip_types text/plain text/xml text/css application/json application/javascript application/xml application/xml+rss text/javascript image/svg+xml;
gzip_vary on;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;

以下是每一行的作用:

  • gzip on; 开启Gzip压缩。
  • gzip_types 指定应该压缩的文件类型。您可以根据需要添加或删除文件类型。
  • gzip_vary on; 向响应添加Vary: Accept-Encoding头,这告诉缓存服务器为不同的编码存储响应的多个副本。
  • gzip_comp_level 6; 设置压缩级别(1-9)。级别越高,压缩越好,但CPU使用率也越高。级别6是一个很好的平衡。
  • gzip_buffers 16 8k; 设置用于压缩的缓冲区数量和大小。
  • gzip_http_version 1.1; 设置HTTP协议版本。Gzip需要HTTP/1.1或更高版本。

步骤3:保存并重新加载Nginx

保存配置文件并重新加载Nginx以应用更改:

sudo nginx -t
sudo systemctl reload nginx

现在您的网站应该启用了Gzip压缩!