查看日志,有一個(gè)[warn]: 3660#0: 20000 worker_connections are more than open file resource limit: 1024 !!
原來安裝好nginx之后,默認(rèn)最大的并發(fā)數(shù)為1024,如果你的網(wǎng)站訪問量過大,已經(jīng)遠(yuǎn)遠(yuǎn)超過1024這個(gè)并發(fā)數(shù),那你就要修改worker_connecions這個(gè)值 ,這個(gè)值越大,并發(fā)數(shù)也有就大。當(dāng)然,你一定要按照你自己的實(shí)際情況而定,也不能設(shè)置太大,不能讓你的CPU跑滿100%。
所以,當(dāng)你修改提高了配置文件中的worker_connections值,然后重啟nginx,你就會(huì)在日志里發(fā)現(xiàn),最前面我們講到的這一個(gè)warn警告提示,大概的意思就是: 20000并發(fā)連接已經(jīng)超過了打開文件的資源限制:1024!在這種情況下,我們就要修改配置文件,添加一行來解除這個(gè)限制,這就好像是apache中的ServerLimit。
打開配置文件在"event"這行上面添加這一行:
worker_rlimit_nofile xxxxx; ####Specifies the value for maximum file descriptors that can be opened by this process.
注意:設(shè)置了這個(gè)后,你修改worker_connections值時(shí),是不能超過worker_rlimit_nofile的這個(gè)值,不然又會(huì)有前面的那個(gè)warn提示。
保存配置文件,退出重啟nginx。
如果nginx 中worker_connections 值設(shè)置是1024,worker_processes 值設(shè)置是4,按反向代理模式下最大連接數(shù)的理論計(jì)算公式:
最大連接數(shù) = worker_processes * worker_connections/4
查看相關(guān)資料,生產(chǎn)環(huán)境中worker_connections 建議值最好超過9000,計(jì)劃將一臺(tái)nginx 設(shè)置為10240,再觀察一段時(shí)間。