nginx指令中的優化(設定檔)
worker_processes 8;
nginx進程數,建議按照cpu數目來指定,一般為它的倍數。
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
為每個進程分配cpu,上例中將8個進程分配到8個cpu,當然可以寫多個,或者將一個進程分配到多個cpu。
worker_rlimit_nofile HTTP://www.aliyun.com/zixun/aggregation/12560.html">102400;
這個指令是指當一個nginx進程打開的最多檔描述項數目,理論值應該是最多打開檔數(ulimit -n)與nginx進程數相除,但是nginx分配請求並不是那麼均勻,所以最好與ulimit -n的值保持一致。
use epoll;
使用epoll的I/O模型,這個不用說了吧。
worker_connections 102400;
每個進程允許的最多連接數,理論上每台nginx伺服器的最大連接數為worker_processes*worker_connections。
keepalive_timeout 60;
keepalive超時時間。
client_header_buffer_size 4k;
用戶端請求頭部的緩衝區大小,這個可以根據你的系統分頁大小來設置,一般一個請求的頭部大小不會超過1k,不過由於一般系統分頁都要大於1k,所以這裡設置為分頁大小。 分頁大小可以用命令getconf PAGESIZE取得。
open_file_cache max=102400 inactive=20s;
這個將為打開檔指定緩存,預設是沒有啟用的,max指定緩存數量,建議和打開檔數一致,inactive是指經過多長時間檔沒被請求後刪除緩存。
open_file_cache_valid 30s;
這個是指多長時間檢查一次緩存的有效資訊。
open_file_cache_min_uses 1;
open_file_cache指令中的inactive參數時間內檔的最少使用次數,如果超過這個數位,檔描述項一直是在緩存中打開的,如上例,如果有一個檔在inactive時間內一次沒被使用,它將被移除。