查过网上的资源,基本都是认为是php线程打开文件句柄受限导致的错误。具体的解决的办法如下:
?
1、提升服务器的文件句柄打开打开
/etc/security/limits.conf : (增加)
* ? ?soft ? ?nofile ? ?51200
* ? ?hard ? ?nofile ? ?51200
# vi /etc/security/limits.conf?加上
* soft nofile 51200
* hard nofile 51200
* soft nofile 51200
* hard nofile 51200
?
2、提升nginx的进程文件打开数
?
nginx.conf : worker_rlimit_nofile 51200;
?
3、修改php-fpm.conf文件,主要需要修改2处。
?
命令 ulimit -n 查看限制的打开文件数,php-fpm.conf 中的选项rlimit_files 确保和此数值一致。
?
?<value name="max_requests">10240</value>
?
<value name="rlimit_files">51200</value>
?
4、
# vi /etc/sysctl.conf?
底部添加
fs.file-max=51200
底部添加
fs.file-max=51200
完成以上修改,重启PHP,警告信息再也没了。
?
世界从此安宁,502 Bad Gateway 没有了。