Nginx:events塊的相關指令
阿新 • • 發佈:2022-01-10
accept_mutex
用來設定Nginx網路連線序列化
語法 | accept_mutex on|off; |
---|---|
預設值 | accept_mutex on; |
位置 | events |
這個配置主要可以用來解決常說的"驚群"問題。大致意思是在某一個時刻,客戶端發來一個請求連線,Nginx後臺是以多程序的工作模式,也就是說有多個worker程序會被同時喚醒,但是最終只會有一個程序可以獲取到連線,如果每次喚醒的程序數目太多,就會影響Nginx的整體效能。如果將上述值設定為on(開啟狀態),將會對多個Nginx程序接收連線進行序列號,一個個來喚醒接收,就防止了多個程序對連線的爭搶。
multi_accept
用來設定是否允許同時接收多個網路連線
語法 | multi_accept on|off; |
---|---|
預設值 | multi_accept off; |
位置 | events |
如果multi_accept被禁止了,nginx一個工作程序只能同時接受一個新的連線。否則,一個工作程序可以同時接受所有的新連線
worker_connections
用來配置單個worker程序最大的連線數
語法 | worker_connections number; |
---|---|
預設值 | worker_commections 512; |
位置 | events |
這裡的連線數不僅僅包括和前端使用者建立的連線數,而是包括所有可能的連線數。另外,number值不能大於作業系統支援開啟的最大檔案控制代碼數量。
use
用來設定Nginx伺服器選擇哪種事件驅動來處理網路訊息。
語法 | use method; |
---|---|
預設值 | 根據作業系統定 |
位置 | events |
注意:此處所選擇事件處理模型是Nginx優化部分的一個重要內容,method的可選值有select/poll/epoll/kqueue
等,之前在準備centos環境的時候,我們強調過要使用linux核心在2.6以上,就是為了能使用epoll函式來優化Nginx。
另外這些值的選擇,我們也可以在編譯的時候使用
--with-select_module
、--without-select_module
、
--with-poll_module
--without-poll_module
來設定是否需要將對應的事件驅動模組編譯到Nginx的核心。
events指令配置例項
開啟Nginx的配置檔案 nginx.conf,新增如下配置
events{
accept_mutex on;
multi_accept on;
worker_commections 1024;
use epoll;
}
./nginx -t
./nginx -s reload