Nginx的events块指令讲解
events塊
(1)accept_mutex:用來設置Nginx網絡連接序列化
| 默認值 | accept_mutex on; |
| 位置 | events |
這個配置主要可以用來解決常說的"驚群"問題。大致意思是在某一個時刻,客戶端發來一個請求連接,Nginx后臺是以多進程的工作模式,也就是說有多個worker進程會被同時喚醒,但是最終只會有一個進程可以獲取到連接,如果每次喚醒的進程數目太多,就會影響Nginx的整體性能。如果將上述值設置為on(開啟狀態),將會對多個Nginx進程接收連接進行序列號,一個個來喚醒接收,就防止了多個進程對連接的爭搶。
?
(2)multi_accept:用來設置是否允許同時接收多個網絡連接
| 默認值 | multi_accept off; |
| 位置 | events |
如果multi_accept被禁止了,nginx一個工作進程只能同時接受一個新的連接。否則,一個工作進程可以同時接受所有的新連接
(3)worker_connections:用來配置單個worker進程最大的連接數
| 默認值 | worker_commections 512; |
| 位置 | events |
這里的連接數不僅僅包括和前端用戶建立的連接數,而是包括所有可能的連接數。另外,number值不能大于操作系統支持打開的最大文件句柄數量。
(4)use:用來設置Nginx服務器選擇哪種事件驅動來處理網絡消息。
| 默認值 | 根據操作系統定 |
| 位置 | 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的內核。
總結
以上是生活随笔為你收集整理的Nginx的events块指令讲解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nginx全局块的其他配置指令
- 下一篇: Nginx的events块指令的配置使用