首頁 > 運維 > Nginx > 主體

Nginx基礎入門之gzip設定的方法

PHPz
發布: 2023-06-03 09:52:43
轉載
4139 人瀏覽過

前言

gzip(gnu-zip)是一種壓縮技術。經過gzip壓縮後頁面大小可以變成原來的30%甚至更小,這樣,使用者瀏覽頁面的時候速度會塊得多。 gzip的壓縮頁面需要瀏覽器和伺服器雙方都支持,實際上就是伺服器端壓縮,傳到瀏覽器後瀏覽器解壓縮並解析。瀏覽器那裡不需要我們擔心,因為目前的巨大多數瀏覽器都支援解析gzip過的頁面。

無論是前端或後端,在部署專案時,時常免不了用到nginx,小專案也常做個反向代理啥的。今天就簡單直接,聊聊其中的一個點-gzip。如有錯誤,歡迎指正。

一般伺服器端常用的是 ubuntu、centos、linux 等。自己若沒有伺服器,可在本地把玩一下。

mac 安裝

mac下可直接用brew安裝,若未安裝brew可先行安裝

/usr/bin/ruby -e "$(curl -fssl https://raw.githubusercontent.com/homebrew/install/master/install)"
brew install nginx
登入後複製

預設配置

安裝完成後會看到命令列含有以下訊息,可以看到nginx.conf所在路徑,這正是我們要找的設定檔。同時含有連接埠信息,當啟動nginx時,可以直接訪問http://localhost:8080,當看到下圖所示頁面,即安裝啟動成功。

docroot: /usr/local/var/www
default config: /usr/local/etc/nginx/nginx.conf
port:8080
登入後複製

Nginx基礎入門之gzip設定的方法

幾個常用指令

  • 啟動:nginx

  • 重新熱啟動:nginx -s reload

  • 關閉:nginx -s stop

  • 測試語法:nginx -t

#gizp設定:

gzip 相關設定可放在 http{} 或 server{} 或 location{} 等級,若不同層級有重複設定優先權為 location{} > server{} > http{}

1、開啟gzip壓縮

gzip on;
登入後複製

2、gzip http 版本

gzip_http_version 1.0;
登入後複製
登入後複製

3、禁止ie6進行gzip壓縮(當然現在基本上已經沒有人使用ie6了)

gzip_disable "msie [1-6]";
登入後複製

4、壓縮等級(1~9,一般為平衡檔案大小和cpu使用,5是常用值,當然跟實際機器的情況有關)

gzip_comp_level 5;
登入後複製

5、最小壓縮臨界值(預設​​的是20位元組)
##

gzip_min_length 20;
登入後複製

6、壓縮通過代理連結的客戶端資料


gzip_proxied any;
登入後複製

7、採用http協定版本預設是1.1 ,對於1.0的請求不會壓縮,如果設定成1.0,表示http1.0以上的版本都會壓縮。 (如果使用了proxy_pass 進行反向代理,那麼nginx和後端的upstream server之間預設是用http/1.0協定通訊的。)


gzip_http_version 1.0;
登入後複製
登入後複製

8、代理快取壓縮和原始版本資源,避免客戶端因accept-encoding不支援gzip而發生錯誤的現象(現在一般都採用gzip)


gzip_vary on;
登入後複製

9、壓縮檔案類型(預設總是壓縮text/html類型,其中特別說明的是application/javascript和text/javascript最好都加上,若頁面script標籤的type不同則有可能發生部分js檔案不會壓縮,預設type為application/javascript)


gzip_types application/atom+xml application/javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/svg+xml image/x-icon text/css text/plain text/javascript text/x-component;
登入後複製

10.如果有已經壓縮的(.gz)或提供靜態檔案服務,可以設定為on。如果不是這樣,最好設定為off,因為這會造成額外的i/o開銷。一個比較好的處理方式是放在

location{}server{}層級單獨處理。

gzip_static on;
登入後複製

11、壓縮結果資料流儲存所用空間,以下表示以8k為單位,依照原始資料大小以8k為單位的16倍申請記憶體。預設值是申請跟原始資料相同大小的記憶體空間去儲存gzip壓縮結果。


gzip_buffers 16 8k;
登入後複製

以上是Nginx基礎入門之gzip設定的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!