Nginx的events块指令讲解
events塊
(1)accept_mutex:用來(lái)設(shè)置Nginx網(wǎng)絡(luò)連接序列化
| 默認(rèn)值 | accept_mutex on; |
| 位置 | events |
這個(gè)配置主要可以用來(lái)解決常說(shuō)的"驚群"問(wèn)題。大致意思是在某一個(gè)時(shí)刻,客戶端發(fā)來(lái)一個(gè)請(qǐng)求連接,Nginx后臺(tái)是以多進(jìn)程的工作模式,也就是說(shuō)有多個(gè)worker進(jìn)程會(huì)被同時(shí)喚醒,但是最終只會(huì)有一個(gè)進(jìn)程可以獲取到連接,如果每次喚醒的進(jìn)程數(shù)目太多,就會(huì)影響Nginx的整體性能。如果將上述值設(shè)置為on(開(kāi)啟狀態(tài)),將會(huì)對(duì)多個(gè)Nginx進(jìn)程接收連接進(jìn)行序列號(hào),一個(gè)個(gè)來(lái)喚醒接收,就防止了多個(gè)進(jìn)程對(duì)連接的爭(zhēng)搶。
?
(2)multi_accept:用來(lái)設(shè)置是否允許同時(shí)接收多個(gè)網(wǎng)絡(luò)連接
| 默認(rèn)值 | multi_accept off; |
| 位置 | events |
如果multi_accept被禁止了,nginx一個(gè)工作進(jìn)程只能同時(shí)接受一個(gè)新的連接。否則,一個(gè)工作進(jìn)程可以同時(shí)接受所有的新連接
(3)worker_connections:用來(lái)配置單個(gè)worker進(jìn)程最大的連接數(shù)
| 默認(rèn)值 | worker_commections 512; |
| 位置 | events |
這里的連接數(shù)不僅僅包括和前端用戶建立的連接數(shù),而是包括所有可能的連接數(shù)。另外,number值不能大于操作系統(tǒng)支持打開(kāi)的最大文件句柄數(shù)量。
(4)use:用來(lái)設(shè)置Nginx服務(wù)器選擇哪種事件驅(qū)動(dòng)來(lái)處理網(wǎng)絡(luò)消息。
| 默認(rèn)值 | 根據(jù)操作系統(tǒng)定 |
| 位置 | events |
注意:此處所選擇事件處理模型是Nginx優(yōu)化部分的一個(gè)重要內(nèi)容,method的可選值有select/poll/epoll/kqueue等,之前在準(zhǔn)備centos環(huán)境的時(shí)候,我們強(qiáng)調(diào)過(guò)要使用linux內(nèi)核在2.6以上,就是為了能使用epoll函數(shù)來(lái)優(yōu)化Nginx。
另外這些值的選擇,我們也可以在編譯的時(shí)候使用
--with-select_module、--without-select_module、
--with-poll_module、--without-poll_module來(lái)設(shè)置是否需要將對(duì)應(yīng)的事件驅(qū)動(dòng)模塊編譯到Nginx的內(nèi)核。
總結(jié)
以上是生活随笔為你收集整理的Nginx的events块指令讲解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Nginx全局块的其他配置指令
- 下一篇: Nginx的events块指令的配置使用