摘要
控制Nginx處理串連的方式
指令
accept_mutex
文法:accept_mutex [ on | off ]
預設值:on
Nginx使用串連互斥鎖進行順序的accept()系統調用
accept_mutex_delay
文法:accept_mutex_delay Nms;
預設值:500ms
如果一個進程沒有互斥鎖,它將至少在這個值的時間後被回收,預設是500ms
debug_connection
文法:debug_connection [ip | CIDR]
預設值:none
0.3.54版本後,這個參數支援CIDR位址集區格式。
這個參數可以指定只記錄由某個用戶端IP產生的debug資訊。
當然你也可以指定多個參數。
error_log /var/log/nginx/errors;events { debug_connection 192.168.1.1;}fffdgfdgfddevpoll_changesdevpoll_eventskqueue_changeskqueue_events
epoll_events
文法:devpoll_changes
預設值:
這些參數指定了按照規定方式傳遞到或者來自核心的事件數目,預設devpoll的值為32,其餘為512。
multi_accept
文法:multi_accept [ on | off ]
預設值:off
multi_accept在Nginx接到一個新串連通知後調用accept()來接受盡量多的串連
rtsig_signo
文法:rtsig_signo
預設值:
Nginx在rtsig模式啟用後使用兩個訊號,該指令指定第一個訊號編號,第二個訊號編號為第一個加1
預設rtsig_signo的值為SIGRTMIN+10 (40)。
rtsig_overflow_events
rtsig_overflow_test
rtsig_overflow_threshold
文法:rtsig_overflow_*
預設值:
這些參數指定如何處理rtsig隊列溢出。當溢出發生在nginx清空rtsig隊列時,它們將連續調用poll()和 rtsig.poll()來處理未完成的事件,直到rtsig被排空以防止新的溢出,當溢出處理完畢,nginx再次啟用rtsig模式。
rtsig_overflow_events specifies指定經過poll()的事件數目,預設為16
rtsig_overflow_test指定poll()處理多少事件後nginx將排空rtsig隊列,預設值為32
rtsig_overflow_threshold只能運行在Linux 2.4.x核心下,在排空rtsig隊列前nginx檢查核心以確定隊列是怎樣被填滿的。預設值為1/10,“rtsig_overflow_threshold 3”意為1/3。
use
文法:use [ kqueue | rtsig | epoll | /dev/poll | select | poll | eventport ]
預設值:
如果你在./configure的時候指定了不止一個事件模型,你可以通過這個參數告訴nginx你想使用哪一個事件模型,預設情況下nginx在編譯時間會檢查最適合你系統的事件模型。
你可以在這裡看到所有可用的事件模型並且如果在./configure時啟用它們。
worker_connections
文法:worker_connections
預設值:
worker_connections和worker_proceses(見主模組)允許你計算理論最大串連數:
最大串連數 = worker_processes * worker_connections
在反向 Proxy環境下:
最大串連數 = worker_processes * worker_connections/4
由於瀏覽器預設開啟2個串連到伺服器,nginx使用來自相同位址集區的fds(檔案描述符)與前後端相串連