nginx提示:Too many openfiles這種錯誤問題的原因是因為linux文件系統(tǒng)最大可打開文件數(shù)為1024而你的nginx中的error.log出現(xiàn)大量的Too many open files,說明文件句柄不夠用了所以就錯誤提示出來了。
如果nginx的error.log出現(xiàn)大量的Too many open files,說明文件句柄不夠用了,這時候我們需要加大系統(tǒng)的文件句柄數(shù)和nginx的允許最大的連接數(shù)。
默認情況下linux文件系統(tǒng)最大可打開文件數(shù)為1024,對于一個應用于生產(chǎn)環(huán)境下的服務器來說,這個設置太下,例如在用nginx做web服務器,當并發(fā)達到一定數(shù)量時,可以看到error.log里出現(xiàn)大量的“Nginx accept() failed (24: Too many open files)” 錯誤。解決這個問題的辦法有兩種:
方法一:
使用ulimit -n 655350 把打開文件上限設置為655350,同時還需要修改nginx的配置文件,把worker_rlimit_nofile 值 worker_connections 值設置為一樣。
方法二:
在/etc/security/limits.conf文件中添加如下信息:
- soft nofile 655360
- hard nofile 655360