Nginx中worker_connections的問題


轉載自http://hi.baidu.com/u_chen/item/560f1504a0a77367d45a1184

 

查看日志,有一個[warn]: 3660#0: 20000 worker_connections are more than open file resource limit: 1024 !!

原來安裝好nginx之后,默認最大的並發數為1024,如果你的網站訪問量過大,已經遠遠超過1024這個並發數,那你就要修改worker_connecions這個值 ,這個值越大,並發數也有就大。當然,你一定要按照你自己的實際情況而定,也不能設置太大,不能讓你的CPU跑滿100%。

所以,當你修改提高了配置文件中的worker_connections值,然后重啟nginx,你就會在日志里發現,最前面我們講到的這一個warn警告提示,大概的意思就是: 20000並發連接已經超過了打開文件的資源限制:1024!在這種情況下,我們就要修改配置文件,添加一行來解除這個限制,這就好像是apache中的ServerLimit。

打開配置文件在"event"這行上面添加這一行:

worker_rlimit_nofile   xxxxx;           ####Specifies the value for maximum file descriptors that can be opened by this process.

注意:設置了這個后,你修改worker_connections值時,是不能超過worker_rlimit_nofile的這個值,不然又會有前面的那個warn提示。

保存配置文件,退出重啟nginx。

 

如果nginx 中worker_connections 值設置是1024,worker_processes 值設置是4,按反向代理模式下最大連接數的理論計算公式:

   最大連接數 = worker_processes * worker_connections/4

查看相關資料,生產環境中worker_connections 建議值最好超過9000,計划將一台nginx 設置為10240,再觀察一段時間


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM