关于nginx在大并发请求下出现500 Internal Server Error


0x01 问题
500 Internal Server Error

服务器用户量很大, 每秒的连接数>6000, 每分钟的更新量>1000, 查询数未统计. 服务器出现了各种奇怪的问题


0x02 参考方法1

测了一下发现在高并发的请求下有很多500 Internal Server Error错误请求,看了一下日志发现并不是应用服务器抛的而是nginx抛的,查了一下发现原因是和文件打开句柄太小有关。

解决方法如下:
在Linux下输入

$ ulimit -n
256

我之前的显示结果是256,限制只能打开256个文件,ulimit命令是设置当前用户一个进程可拥有的文件描述符的数量。
调整为:
$ ulimit -n 65535

nginx是默认系统最大限制数,所以不用修改了,如果想限制nginx要在conf文件头上加入:
worker_rlimit_nofile 65535

服务器是两台前端 + 两台后端 + 两台mysql+两台文件服务器, 撑不住, 配置了没有解决

但是服务器压力不大, 现在不知道丢包的报错出现在什么地方!


0x03 参考方法2

水平扩容

准备把前端 变为3台

后端变为3台, 看看是否还会出问题!



原文链接: 关于nginx在大并发请求下出现500 Internal Server Error 版权所有,转载时请注明出处,违者必究。
注明出处格式:流沙团 ( https://www.gyarmy.com/post-608.html )

发表评论

0则评论给“关于nginx在大并发请求下出现500 Internal Server Error”