nginx返回500 Internal Server Error的一种处理情况
Jmeter压测nginx反向代理服务器,发现线程启动到600左右时会出现HTTP请求失败的情况,Jmeter中返回的response显示500 Internal Server Error.于是查看nginx错误日志文件error.log(/usr/local/nginx/logs/error.log),发现出现大量too many open files错误,网上寻找原因发现这是Linux系统中常见的错误,从字面意思上看就是说程序打开的文件数过多,不过这里的files不单是文件的意思,也包括打开的通讯链接(比如socket),正在监听的端口等等,所以有时候也可以叫做句柄(handle),这个错误通常也可以叫做句柄数超出系统限制。 通过命令ulimit -a可以查看当前系统设置的最大句柄数是多少,修改方法是打开etc/security/limits.conf,在文件结尾写入
* soft nofile 65534
* hard nofile 65534
65534就是设置的最大句柄数,保存完reboot重启系统生效