堕落不振功业废,勤耕不辍日月新

Nginx 開啟 gzip 壓縮設定

Apache hailen 254℃

gzip 是一種壓縮工具, Web Server 透過 gzip 將數據壓縮, 再發送給使用者的瀏覽器解壓。這樣所需傳送的數據便會減少, 提昇網站的速度。

以下是在 Nginx 開啟 gzip 壓縮的方法。

在開啟 gzip 前, 可以先用 curl 檢視一下目前 Nginx 是否有開啟 gzip, 輸入以下指令:

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

以下是 CentOS 下用 yum 安裝的 Nginx 的預設輸出:

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 的設定檔:

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

加入以下內容:

gzip on;
gzip_disable "msie6";

gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_http_version 1.1;
gzip_min_length 256;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon;

如果是用 Ubuntu, 開啟 Nginx 的設定檔:

$ sudo vi /etc/nginx/nginx.conf

找到以下 gzip 的設定

##
# `gzip` Settings
#
#
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-javascript text/xml application/xml application/xml+rss text/javascript;

可以看到幾個 gzip 的設定也被註釋掉, 將這樣 gzip 設定前的 “#” 刪除, 改成這樣:

##
# `gzip` Settings
#
#
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_min_length 256;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon;

儲存設定後重新啟動 Nginx:

$ sudo systemctl restart nginx

現在可以再用 curl 測試, 可以一拼測試 css 及 js 檔:

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 已經開。

The post Nginx 開啟 gzip 壓縮設定 appeared first on Linux 技術手札.

转载请注明:我是IT » Nginx 開啟 gzip 壓縮設定

喜欢 (0)or分享 (0)