Linux 技术手札

Nginx 开启 gzip 压缩设定

gzip 是一种压缩工具, Web Server 透过 gzip 将数据压缩, 再发送给使用者的浏览器解压。这样所需传送的数据便会减少, 提升网站的速度。

以下是在 Nginx 开启 gzip 压缩的方法。

在开启 gzip 前, 可以先用 curl 检视一下目前 Nginx 是否有开启 gzip, 输入以下指令:

/linux/curl

  • $ curl -H “Accept-Encoding: gzip” -I http://localhost/test.html

以下是 CentOS 下用 yum 安装的 Nginx 的默认输出:

/linux/curl

  • $ curl -H “Accept-Encoding: gzip” -I http://localhost/test.html
    HTTP/1.1 200 OK
    Server: nginx/1.12.2
    Date: Tue, 26 Feb 2019 01:33:32 GMT
    Content-Type: text/html
    Content-Length: 3700
    Last-Modified: Tue, 06 Mar 2018 09:26:21 GMT
    Connection: keep-alive
    ETag: “5a9e5ebd-e74”
    Accept-Ranges: bytes

上面的输出并没有 gzip, 代表并没有开启 gzip, 虽然 Ubuntu 下默认会开启 gzip, 但只设定 gzip on, 只会对 HTML 档压缩, 其他类型的档案 (例如 css 或 js 档) 不会压缩.

在 CentOS 下建立 gzip 的设定档:

/linux/nginx-config

  • $ sudo vi /etc/nginx/conf.d/gzip.conf

加入以下内容:

如果是用 Ubuntu, 开启 Nginx 的设定档:

/linux/nginx-config

  • $ sudo vi /etc/nginx/nginx.conf

找到以下 gzip 的设定

可以看到几个 gzip 的设定也被注释掉, 将这样 gzip 设定前的 “#” 删除, 改成这样:

储存设定后重新启动 Nginx:

/linux/restart-nginx

  • $ sudo systemctl restart nginx

现在可以再用 curl 测试, 可以一拼测试 css 及 js 档:

/linux/curl

  • $ curl -H “Accept-Encoding: gzip” -I http://localhost/test.html
    $ curl -H “Accept-Encoding: gzip” -I http://localhost/test.css
    $ curl -H “Accept-Encoding: gzip” -I http://localhost/test.js

现在 curl 的输出最后一行, 会看到 “Content-Encoding: gzip”, 那便表示 gzip 已经开。

Exit mobile version