accept_mutex on | off
如果開(kāi)啟,worker進(jìn)程將輪流接收新請求。否則,有新請求到來(lái)時(shí),所有的worker進(jìn)程將集體被喚醒,而此時(shí)如果請求流量較低,一些worker進(jìn)程只會(huì )浪費系統資源。 參考: [http://huoding.com/2013/08/24/281]
accept_mutex_delay time
啟動(dòng)accept_mutex后,每個(gè)worker進(jìn)程重新接受新請求的最大時(shí)間間隔。默認值 500ms
debug_connection
對指定的客戶(hù)端請求啟動(dòng)debug模式。其它請求使用error_log指令設置的日志級別??梢灾付?IP/主機名/unix套接字。 這個(gè)指令的生效需要在編譯時(shí)指定 —with-debug
1 | events { debug_connection 127.0.0.1; debug_connection localhost; debug_connection 192.0.2.0/24; debug_connection ::1; debug_connection 2001:0db8::/32; debug_connection unix:; ...} |
debug_points abort | stop
當發(fā)生嚴重的內部錯誤,開(kāi)啟此選項會(huì )創(chuàng )建一個(gè)core-file(abort)或停止進(jìn)程已便于后續分析。
lock_file file
nginx使用鎖機制來(lái)實(shí)現accept_mutex,并將訪(fǎng)問(wèn)串行化到共享內存。大部分系統的鎖操作是原子的,這條指令會(huì )被忽略。另外一部分系統使用文件鎖,這條指令指定了鎖文件的前綴。默認值為 lock_file logs/nginx.lock
multi_accept on | off
關(guān)閉時(shí)一個(gè)worker進(jìn)程每次接受一個(gè)請求。開(kāi)啟時(shí),每接到一個(gè)請求,就盡可能的取走全部的請求。
pcre_jit on | off
開(kāi)啟/關(guān)閉正則表達式的”實(shí)時(shí)編譯”。PCRE JIT可以顯著(zhù)提升處理正則表達式的速度。當使用PCRE源碼庫編譯nginx時(shí)(—with-pcre=), 應該使用nginx的—with-pcre-jit編譯選項開(kāi)啟JIT支持。
thread_pool name threads=number [max_queue=number]
定義線(xiàn)程池的名字,線(xiàn)程數量以及任務(wù)隊列的最大長(cháng)度。一個(gè)請求事件,如果線(xiàn)程池中的所有線(xiàn)程都處于忙碌狀態(tài),請求會(huì )被塞入任務(wù)隊列。 max_queue 定義了任務(wù)隊列的最大長(cháng)度,默認值為65535。當任務(wù)隊列溢出,任務(wù)將會(huì )以一個(gè)error進(jìn)入完成狀態(tài)。
timer_resolution interval
降低定時(shí)器的精度,進(jìn)而減少gettimeofday()的系統調用數。默認情況下,每當有內核事件,都會(huì )調用gettimeofday()。使用此指令后,nginx只在固定時(shí)間間隔后才會(huì )調用。
worker_connections number
設置每個(gè)worker 進(jìn)程可以處理的最大并發(fā)連接數。需要注意的是,這個(gè)數字包含所有連接(如后端連接以及其它的),而不僅僅是客戶(hù)端連接。另一個(gè)需要注意的是,實(shí)際的并發(fā)連接數不能超過(guò)當前打開(kāi)文件的最大限制。這個(gè)限制可以使用worker_rlimit_nofile來(lái)指定。
worker_cpu_affinity cpumask ...
綁定worker進(jìn)程到指定cpu。每個(gè)cpu用一個(gè)掩碼來(lái)標識,需要為每個(gè)worker進(jìn)程單獨指定。worker進(jìn)程默認不會(huì )綁定到cpu
1 | 比如worker_processes 4;worker_cpu_affinity 0001 0010 0100 1000;將每個(gè)工作進(jìn)程分別綁定至不同的CPU,而worker_processes 2;worker_cpu_affinity 0101 1010;將第一個(gè)工作進(jìn)程綁定至CPU0/CPU2,將第二個(gè)工作進(jìn)程綁定至CPU1/CPU3。 |
worker_processes number | auto
定義worker進(jìn)程數。建議設置為當前cpu的核數,auto 會(huì )自動(dòng)檢測。
worker_rlimit_core size
定義worker進(jìn)程core文件的尺寸。
worker_rlimit_nofile number
定義worker進(jìn)程打開(kāi)文件的最大數
working_directory directory
定義worker進(jìn)程的工作目錄。主要用來(lái)寫(xiě)core-file。worker進(jìn)程需要有寫(xiě)權限。
聯(lián)系客服