工作中遇到两次 Nginx 报 24: Too many open files,每次都给业务带来一些损失,记录一下。
问题
报错原因是达到句柄限制,一般是 Nginx 配置问题。
解决方案
1. 系统句柄设置
# /etc/security/limits.conf
2. /etc/nginx/nginx.conf
# worker_rlimit_nofile 30000;
# https://nginx.org/en/docs/ngx_core_module.html#worker_rlimit_nofile
3. 使用 Systemd 管理的进程需要额外的设置进程的句柄数量
# /etc/systemd/system/nginx.service
# LimitNOFILE=500000
References
Nginx socket() failed (24: Too many open files)