檔案讀取會使用到以下幾個配置
1. sendfile
使用nginx作為靜態資源服務時,通過配置sendfile可以有效提高檔案讀取效率,設定為on表示啟動高效傳輸檔案的模式。sendfile可以讓nginx在傳輸檔案時直接在磁碟和tcp socket之間傳輸資料。如果這個引數不開啟,會先在使用者空間(nginx程序空間)申請乙個buffer,用read函式把資料從磁碟讀到cache,再從cache讀取到使用者空間的buffer,再用write函式把資料從使用者空間的buffer寫入到核心的buffer,最後到tcp
socket。開啟這個引數後可以讓資料不用經過使用者buffer。
配置語法:sendfile on | off;
預設配置:sendfile off;
配置路徑:http、server、location、if in location下
2. tcp_nopush
改配置可以讓資料報達到一定大小後才一次行傳送,這樣使得每次的請求的使用率達到最高。比如 我們有10個包裹需要快遞,可以1個1個分10次來寄,這樣需要10次,但是我們可以一次性將這10個快遞寄出,這樣只需要1次,節省了快遞時填單和走路的時間,更高效。
這個配置的前提是開啟 sendfile
配置語法:tcp_nopush on | off;
預設配置:tcp_nopush off;
配置路徑:http、server、location
3. tcp_nodelay
改配置和 tcp_nopush 是 "互斥"的,改配置表示立刻將緩衝區資料發出,常用於實時性較高的地方,一般用於keepalive長連線下,提高網路包的實時傳輸性
配置語法:tcp_nodelay on | off;
預設配置:tcp_nodelay on;
配置路徑:http、server、location
4. 壓縮,關於壓縮可以參考該部落格
可以通過 gzip 配置來 配置檔案壓縮要求
開啟壓縮
配置語法:gzip on | off;
預設配置:gzip off;
配置路徑:http、server、location、if in location
設定壓縮等級,等級越高,壓縮度越高,對應的占用效能越高
配置語法:gzip_comp_level level;
預設配置:gzip_comp_level 1;
配置路徑:http、server、location
設定gzip http協議的版本,用於識別http協議的版本,早期的瀏覽器不支援gzip壓縮,使用者會看到亂碼,所以為了支援前期版本加了此選項。預設在http/1.0的協議下不開啟gzip壓縮。
配置語法:gzip_http_version 1.0 | 1.1 ;
預設配置:gzip_http_version 1.1;
配置路徑:http、server、location
設定gzip_types,設定需要壓縮的mime型別,如果不在設定型別範圍內的請求不進行壓縮,這裡的配置可以參考一下部落格
點選開啟檢視
配置語法:gzip_types mime-type....;
image/gif image/png;
預設配置:gzip_types text/html;
配置路徑:http、server、location
語法演示完畢,現在開始演示實際測試
準備工作,需要準備一張,乙個文字
3. 配置default.conf 先配置開啟 檔案讀取,暫時不配置壓縮,看看效果
4. 現在配置壓縮,再來看看效果
從上圖可以看出,壓縮後的效果已成功,下面測試文字壓縮效果
5. 先配置default.conf,暫不配置壓縮文字配置,檢視效果
6. 下面來配置壓縮引數
由上圖可知,已實現了壓縮效果
Nginx作為靜態資源Web服務
nginx作為靜態資源 cdn分發資源 配置語法 配置語法 將多個資源一起傳送 提高效率 作用 sendfile開啟的情況下 提高網路包的傳輸效率 配置語法 壓縮 nginx壓縮模組 http gzip static module 預讀gzip功能 http gunzip module 應用支援gu...
Nginx作為靜態資源web服務之快取原理
大致理一下http瀏覽器快取原理 瀏覽器第一次請求伺服器,此時瀏覽器肯定沒有快取,則直接呼叫伺服器端,伺服器在返回的資訊的資訊頭中新增 etag和last modified引數資訊,返回給客戶端瀏覽器快取。然後瀏覽器以後的請求,先判斷是否有快取,那麼怎麼判斷有快取呢,有三步 1 是否過期 2 對et...
nginx學習 七 nginx提供靜態資源服務
這裡準備了乙個資料夾,裡面放入了乙個img資料夾和index.html檔案,將檔案上傳到home下。這裡我們從新起個埠 server error page 500 502 503 504 50x.html location 50x.html 注意這裡訪問的時候,是訪問 home static kev...