worker程序
http和tcp連線
假如需要頻繁的傳送一些小包資料,比如說1個位元組,以ipv4為例的話,則每個包都要附帶40位元組的頭,buffer和cache(以下配置都是針對單個請求)也就是說,總計41個位元組的資料裡,其中只有1個位元組是我們需要的資料。
為了解決這個問題,出現了nagle演算法。
它規定:如果包的大小滿足mss,那麼可以立即傳送,否則資料會被放到緩衝區,等到已經傳送的包被確認了之後才能繼續傳送。
通過這樣的規定,可以降低網路裡小包的數量,從而提公升網路效能。
瀏覽器在傳送含有較大http body的請求時,其頭部會有乙個content-length欄位,client_max_body_size是用來限制content-length所示值的大小的。這個限制body的配置不用等nginx接收完所有的http包體,就可以告訴使用者請求過大不被接受。會返回413狀態碼。
例如,使用者試圖上傳乙個1gb的檔案,nginx在收完包頭後,發現content-length超過client_max_body_size定義的值,
就直接傳送413(request entity too large)響應給客戶端。
將該數值設定為0,則禁用限制,建議設定為10m。
該引數會對以下資訊進行快取:開啟檔案描述符的檔案大小和修改時間資訊;
存在的目錄資訊;
搜尋檔案的錯誤資訊(檔案不存在無許可權讀取等資訊)。
格式:open_file_cache max=size inactive=time;
max設定快取檔案的數量,inactive設定經過多長時間檔案沒被請求後刪除快取。
建議設定 open_file_cache max=102400 inactive=20s;
open_file_cache指令中的inactive引數時間內檔案的最少使用次數,壓縮如,將該引數設定為1,則表示,如果檔案在inactive時間內一次都沒被使用,它將被移除。
建議設定為2。
對於純文字的內容,nginx是可以使用gzip壓縮的。使用壓縮技術可以減少對頻寬的消耗。
由ngx_http_gzip_module模組支援
測試:curl -i -h 「accept-encoding: gzip, deflate」
[root@tanyvlinux ~]# curl -i -h "accept-encoding: gzip, deflate" www.aaa.com #把目錄裡的index.html內容增加到1024b以上;
content-encoding: gzip #顯示壓縮傳輸;
日誌
靜態檔案過期
對於靜態檔案,需要設定乙個過期時間,這樣可以讓這些資源快取到客戶端瀏覽器,
在快取未失效前,客戶端不再向服務期請求相同的資源,從而節省頻寬和資源消耗。
配置示例如下:
作為**伺服器
nginx絕大多數情況下都是作為**或者負載均衡的角色。
因為前面章節已經介紹過以下引數的含義,在這裡只提供對應的配置引數:
}}ssl優化
ssl_session_cache shared:ssl:10m; //快取為10m
ssl_session_timeout 10m; //會話超時時間為10分鐘
nginx 配置引數優化
nginx作為高效能web伺服器,即使不特意調整配置引數也可以處理大量的併發請求。以下的配置引數是借鑑網上的一些調優引數,僅作為參考,不見得適於你的線上業務。worker程序 該引數表示啟動幾個工作程序,建議和本機cpu核數保持一致,每一核cpu處理乙個程序。它表示nginx最大可用的檔案描述符個數...
nginx配置引數優化
ginx作為高效能web伺服器,即使不特意調整配置引數也可以處理大量的併發請求。以下的配置引數是借鑑網上的一些調優引數,僅作為參考,不見得適於你的線上業務。worker程序 該引數表示啟動幾個工作程序,建議和本機cpu核數保持一致,每一核cpu處理乙個程序。它表示nginx最大可用的檔案描述符個數,...
nginx 配置優化的幾個引數
2011 04 22 最近在伺服器上搞了一些nginx 研究了一下 總結總結 worker processes 8 nginx要開啟的程序數一般等於cpu的總核數 其實一般情況下開4個或8個就可 我開2個 以了 多了沒有太多用 每個nginx程序消耗的記憶體10兆的模樣 worker cpu aff...