边城主机已经全面采用Nginx建站,并且大部分采用控制面板的默认配置。最近部分站点出现Nginx 500错误,而刷新下又能正常打开页面,错误日志提示:

socket() failed (24: Too many open files) while connecting to upstream

于是判断可能是由于资源配置的问题引起的,进程打开文件数太低所致 ,下面提供解决办法。

1、首先检查并增加文件打开数限制。(通常是:1024):

# ulimit -n
# ulimit -n 16384
2、打开/etc/security/limits.conf文件,最后增加2行:


soft nofile 65535
hard nofile 65535

3、打开/etc/nginx/nginx.conf
在worker_processes的下面增加一行
worker_rlimit_nofile 65535;worker_rlimit_nofile
这个指令是指当一个Nginx配置文件进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与Nginx进程数相除,但是Nginx分配请求并不是那么均匀,所以最好与ulimit -n的值保持一致。

修改后,完美解决Nginx 500 错误的问题。

发表评论

您的电子邮箱地址不会被公开。