有一台服务器某天因为促销活动导致访问量激增,频繁报“500 Internal Server
Error”错误。我查了一下nginx的错误日志(apt-get方式安装的nginx的错误日志在/var/log/nginx/error.log),发现了大量的“
xxxxx#0: accept() failed (24: Too many open
files)”
我上网查了一下,说这是超过了最大打开文件数的限制。
解决方法是:
1
打开/etc/security/limits.conf文件,加上两句
*
soft nofile 65535
*
hard nofile 65535
2
打开/etc/nginx/nginx.conf
在worker_processes的下面增加一行
worker_rlimit_nofile
65535;
3
重新启动nginx,重新载入设置
kill
-9 `ps -ef | grep php | grep -v grep | awk '{print
$2}'`
/usr/bin/spawn-fcgi
-a 127.0.0.1 -p 9000 -C 100 -u www-data -f
/usr/bin/php-cgi
killall
-HUP nginx
重启后再看nginx的错误日志,也没有发现500报错的情况了。
最后添加我自己的经历:
如果按上述方法仍然解决不了问题,就可能是配置或是程序有错误了。
(1)查看nginx的错误日志,找到可能的原因。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Nginx频繁出现500错误的解决方案 - Python技术站