1. 程式人生 > >Nginx web伺服器

Nginx web伺服器

檔案讀取會使用到以下幾個配置

  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下

  1. tcp_nopush

改配置可以讓資料包達到一定大小後才一次行傳送,這樣使得每次的請求的使用率達到最高。比如 我們有10個包裹需要快遞,可以1個1個分10次來寄,這樣需要10次,但是我們可以一次性將這10個快遞寄出,這樣只需要1次,節省了快遞時填單和走路的時間,更高效。

這個配置的前提是開啟 sendfile

配置語法:tcp_nopush on | off;

預設配置:tcp_nopush off;

配置路徑:http、server、location

  1. tcp_nodelay

改配置和 tcp_nopush 是 “互斥”的,改配置表示立刻將緩衝區資料發出,常用於實時性較高的地方,一般用於keepalive長連線下,提高網路包的實時傳輸性

配置語法:tcp_nodelay on | off;

預設配置:tcp_nodelay on;

配置路徑:http、server、location

作者簡介:
陳志珂(頭條號:強扭的瓜不好吃),公眾號“鉛筆學園”運維內容合作作者之一。目前就職於中國最大的安卓應用軟體公司,任高階工程師,現在公司任php開發工程師,python開發工程師,高階運維工程師。
鉛筆學園:IT資源分享|知識分享,做初級程式設計師的指明燈
這裡寫圖片描述