首页 > 编程知识 正文

php代替curl的方式(如何让php直接502)

时间:2023-05-05 18:09:13 阅读:71102 作者:978

502 bad网关是php-fpm的问题,针对这个问题是配置参数的问题。 以下整理了php-fpm错误问题的解决方案。 具体如下。

今天,在升级PHP后,发生了502 bad网关错误。 根据经验,这是php-fpm的问题,但是即使看网上的访问量和子进程的设定等,我的服务器也没有流量。 所以只能从轮廓上看到

[ global ] PID=/usr/local/PHP/var/run/PHP-fpm.PID error _ log=/usr/local/PHP/var/log/PHP-fpm.PHP-CGI.sock user=www group=www pm=动态pm.max _ children=20pm.start _ servers=2pm.min _ spap 查看php-cgi.sock后,我直观地意识到它应该是一个文件,所以当我访问此目录查看权限时,文件的所有者是root:root,我的nginx和php-fpm进程正在ww用户上运行所以我认为是权限的问题。

配置文件中的user=www和group=www也设置了权限,通过ps -aux|grep php发现它是php-fpm进程的所有者。

知道问题发生源后,开始检查php-fpm的配置,检查listen.ower listen.group的设定。

这是一个改进的文件:

[ global ] PID=/usr/local/PHP/var/run/PHP-fpm.PID error _ log=/usr/local/PHP/var/log/PHP-fpm.PHP-CGI.sock listen.owner=www listen.group=www user=www group=www pm=动态pm.max _ children=2000

1、确认当前PHP FastCGI进程数是否足够:

如果实际使用的“FastCGI进程数”接近预设的“FastCGI进程数”,则netstat-anpo (组) PHP-CGI (快速进程数)足够多

2、部分PHP程序运行时间超过Nginx等待时间时,可以适当增加nginx.conf配置文件中FastCGI的timeout时间。 例如,如下所示。

. http { . fastcgi _ connect _ time out 300; fastcgi_send_timeout300; fastcgi_read_timeout300;.

添加另一篇文章

1.php-fpm进程数量不够

必须使用netstat-Napo-grep-fpm-WC-l检查当前fastcgi进程的数量,如果数量接近conf设置的上限,则必须增加进程数量。

但是,不能无中断地提高。 根据服务器的内存情况,将php-fpm子进程数设定为100以上,在4G内存的服务器上200即可。

增加linux内核打开的文件数

可以使用这些命令。 必须是根帐户

echo ' ulimit-hsn 65536 '/etc/profile echo ' ulimit-hsn 65536 '/etc/RC.local source/etc/profile3.脚本运行时间

如果脚本由于某种原因长时间等待而不返回,并且没有处理新来的请求,则可以适当减小,如下。

nginx.conf主要包括以下内容

fastcgi_connect_timeout300; fastcgi_send_timeout300; fastcgi_read_timeout300; 在php-fpm.conf中如下

request_terminate_timeout=10s 4.缓存设置较小

修改或添加到nginx.conf的配置

proxy_buffer_size64k; proxy_buffers512k; proxy_busy_buffers_size128k; 5 .故障(recv ) 104:连接resetbypeer whilereadingresponseheaderfromupstream可能导致的机房网络丢包或机器规则

但最重要的是为程序设置超时,而不使用php-fpm中的request_terminate_timeout。

优选设为request_terminate_timeout=0;

因为此参数直接杀死php进程,然后重新启动php进程,所以前端nginx返回104:连接重置by peer。 这个过程很慢,总体上网站很卡。

may 0110336050336058.044162 [ warning ] [ pool www ] child 4074,script '/usr/local/nginx/html/quancha/same IP/deded

may 0110336050336058.045725 [ warning ] [ pool www ] child 4074 exitedonsignal 15 sigterm after 90.227060 secondsfromstart

may 0110336050336058.046818 [ notice ] [ pool www ] child 4082 started

说千道一万,最重要的是程序中控制超时,gethostbyname、curl、file_get_contents等函数的都要设定超时时间。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。