1. 程式人生 > 其它 >Nginx:events塊的相關指令

Nginx:events塊的相關指令

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