Nginx基礎(chǔ)入門之gzip配置指南
前言
gzip(GNU-ZIP)是一種壓縮技術(shù)。經(jīng)過gzip壓縮后頁面大小可以變?yōu)樵瓉淼?0%甚至更小,這樣,用戶瀏覽頁面的時候速度會塊得多。gzip的壓縮頁面需要瀏覽器和服務(wù)器雙方都支持,實際上就是服務(wù)器端壓縮,傳到瀏覽器后瀏覽器解壓并解析。瀏覽器那里不需要我們擔(dān)心,因為目前的巨大多數(shù)瀏覽器都支持解析gzip過的頁面。
無論是前端還是后端,在部署項目時,時常免不了用到Nginx,小項目也時常做個反向代理啥的。今天就簡單直接,聊一下其中的一個點——gzip。如有錯誤,歡迎指正。
一般服務(wù)器端常用的是 Ubuntu、CentOS、Linux 等。自己若沒有服務(wù)器,可在本地把玩一下。
mac 安裝
mac下可直接用brew安裝,若未安裝brew可先行安裝
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" brew install nginx
默認(rèn)配置
安裝完成后會看到命令行含有以下信息,可以看到 nginx.conf所在路徑,這正是我們要找的配置文件。同時含有端口信息,當(dāng)啟動Nginx時,可以直接訪問http://localhost:8080,當(dāng)看到下圖所示頁面,即安裝啟動成功。
docroot: /usr/local/var/www default config: /usr/local/etc/nginx/nginx.conf port:8080
幾個常用命令
- 啟動:
nginx
- 重新熱啟動:
nginx -s reload
- 關(guān)閉:
nginx -s stop
- 測試語法:
nginx -t
gizp配置:
gzip 相關(guān)配置可放在 http{}
或 server{}
或 location{}
層級,若不同層級有重復(fù)設(shè)置優(yōu)先級為 location{} > server{} > http{}
1、開啟 gzip壓縮
gzip on;
2、gzip http 版本
gzip_http_version 1.0;
3、禁止IE6進(jìn)行g(shù)zip壓縮(當(dāng)然現(xiàn)在已經(jīng)基本沒有人使用IE6了)
gzip_disable "MSIE [1-6]";
4、壓縮級別(1~9,一般為平衡文件大小和CPU使用,5是常用值,當(dāng)然跟實際機器的情況有關(guān))
gzip_comp_level 5;
5、最小壓縮臨界值(默認(rèn)的是20字節(jié))
gzip_min_length 20;
6、壓縮通過代理鏈接的客戶端數(shù)據(jù)
gzip_proxied any;
7、采用http協(xié)議版本 默認(rèn)是1.1 ,對于1.0的請求不會壓縮,如果設(shè)置成1.0,表示http1.0以上 的版本都會壓縮。(如果使用了proxy_pass 進(jìn)行反向代理,那么nginx和后端的 upstream server之間默認(rèn)是用 HTTP/1.0協(xié)議通信的。)
gzip_http_version 1.0;
8、代理緩存壓縮和原始版本資源,避免客戶端因Accept-Encoding不支持gzip而發(fā)生錯誤的現(xiàn)象(現(xiàn)在一般都采用gzip)
gzip_vary on;
9、壓縮文件類型(默認(rèn)總是壓縮 text/html類型,其中特別說明的是application/javascript和text/javascript最好都加上,若頁面script標(biāo)簽的type不同則有可能發(fā)生部分js文件不會壓縮,默認(rèn)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、如果有已經(jīng)壓縮的(.gz)或者提供靜態(tài)文件服務(wù),可以設(shè)置為on。如果不是這樣,最好設(shè)置為off,因為這會造成額外的I/O開銷。一個比較好的處理方式是放在location{}
或server{}
級別單獨處理。
gzip_static on;
11、壓縮結(jié)果數(shù)據(jù)流存儲所用空間,下面表示以8k為單位,按照原始數(shù)據(jù)大小以8k為單位的16倍申請內(nèi)存。默認(rèn)值是申請跟原始數(shù)據(jù)相同大小的內(nèi)存空間去存儲gzip壓縮結(jié)果。
gzip_buffers 16 8k;
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
Nginx 實現(xiàn)灰度發(fā)布的三種方法總結(jié)
這篇文章主要介紹了Nginx 實現(xiàn)灰度發(fā)布的三種方法總結(jié)的相關(guān)資料,需要的朋友可以參考下2017-05-05關(guān)于多級緩存使用(nginx本地緩存、JVM進(jìn)程緩存、redis緩存)
這篇文章主要介紹了關(guān)于多級緩存使用(nginx本地緩存、JVM進(jìn)程緩存、redis緩存),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08Nginx access.log日志詳解及統(tǒng)計分析小結(jié)
nginx有一個非常靈活的日志記錄模式,本文主要介紹了Nginx access.log日志詳解及統(tǒng)計分析小結(jié),文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-03-03