给你的网站开启gzip

在使用 nginx 作为 Web 服务器时,可以通过开启 gzip 压缩功能来优化网站的性能。使用 gzip 压缩可以将传输的数据量减少到原来的 20% ~ 80% 左右,从而大大减少网站的加载时间,提升用户体验。

要给站点配置 gzip,可以通过如下一些配置来实现。

1. 开启 gzip

通过添加如下配置,可以在 nginx 中开启 gzip 压缩。

gzip on;

2. 配置压缩级别

在 nginx 中可以通过配置 gzip 压缩级别来控制压缩比例和压缩速度。gzip 压缩级别的值范围是 19,级别越高,压缩比例越高,但压缩速度会变慢。默认的压缩级别是 1,也就是说默认情况下,nginx 会使用最快的压缩级别来进行 gzip 压缩。

gzip_comp_level 6;

这样就会将 gzip 压缩级别设置为 6

3. 配置压缩类型

当然,对于一个站点来说,不是所有的文件都需要进行 gzip 压缩的,比如图片文件,本身就已经是经过压缩的,再进行 gzip 压缩,反而会浪费资源。所以,我们可以通过配置 gzip 压缩类型来指定哪些文件类型需要进行 gzip 压缩。

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

这里配置了多个文件类型,包括文本文件、JavaScript 文件、CSS 文件、XML 文件、PHP 文件和图片文件。那么,在响应这些文件类型的请求时,nginx 会对其自动进行 gzip 压缩。

4. 配置压缩最小文件大小

同样的,对于一些小文件,比如 100 字节的文件,即使进行了 gzip 压缩,也不会有多大的效果,反而会浪费资源。所以,我们可以通过配置「压缩最小文件大小」来指定文件大小超过多少时才进行压缩,单位是字节。

gzip_min_length 1024;

上述配置的文件大小是 1024 字节,也就是 1KB。当文件大小超过 1KB 时,才会进行 gzip 压缩。

5. 配置压缩缓冲区大小

通过如下配置来指定压缩缓冲区大小。

gzip_buffers 4 16k;

所谓的缓冲区,就是用来存放压缩数据的临时存储空间。上述配置将压缩缓冲区大小设置为 16KB。这里的 4 表示压缩缓冲区的个数,16k 表示每个压缩缓冲区的大小。缓冲区的大小越大,压缩效率越高,但是会占用更多的内存,反之则会占用更少的内存,同时压缩效率降低。

除了上述提到的这些配置,还有很多其他的配置,比如 gzip_varygzip_disablegzip_http_versiongzip_static 等等,有兴趣可以查看 ngx_http_gzip_module

最后,一个的综合配置示例如下,仅供参考:

gzip on;
gzip_comp_level 6;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_min_length 1024;
gzip_buffers 4 16k;
# gzip_vary表示是否在http header中添加Vary: Accept-Encoding,一般建议开启,但是如果后端服务器不支持gzip压缩,建议关闭
gzip_vary on;
# gzip_disable表示指定一些浏览器不使用gzip压缩,可以指定某些浏览器不使用gzip压缩,如IE6
gzip_disable "MSIE [1-6]\.";
# gzip_http_version表示启用gzip压缩的http协议版本,一般设置为1.1
gzip_http_version 1.1;
# gzip_static表示是否开启gzip静态压缩,如果开启了gzip_static on,那么nginx会在当前目录下查找.gz后缀的文件,如果存在,则直接返回,不再压缩
gzip_static on;
如果您觉得本文对您有用,欢迎捐赠或留言~
微信支付
支付宝

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注