您的位置:

php响应时间久502(php出现502)

本文目录一览:

手机上网老是错误代码502什么意思?

手机上复网错误代码502的意思是连接超时,当我们向服务器发送请求,由于服务器当前链接太多,导致服务器方面无法给于正常的响应,就会产生此类报错。

常见的原制因可能是php-cgi进程数不够用、MySQL语句执行慢导致PHP执行时间长、或者是php-cgi进程异常中断,都会出现502错误。

扩展资料:

大多数网站都是通过多个服务器或第三方代理来运行的。如果所在的服务器由于维护或其他原因关闭,网站可能会出现502BadGatewayError页面。唯一的解决办法就是等待服务器完成维护或是修复好故障。

网站防火墙相当于网站的守卫者,保护你的网站免受非法用户的侵入和分布式拒绝服务(DDOS)的攻击。有时,防火墙设置错误会导致防火墙将从内容分发网络(CDN)过来的访问请求视为对服务器的攻击,因此拒绝其访问,从而导致502错误网关。

运行php文件出现502 bad gateway 怎么解决

解决办法:

1.电脑左下角开始--搜索”php.exe“,记录下路径,如我的是C:\xampp\php\

2.点击phpstorm里的configured PHP Interpreter(见下图)

3.点击下图里的红框

4.在下图红框输入步骤1里的php的文件夹路径确认即可。

希望回答对你有帮助,如果有疑问,在后盾人上有详解!

apach php 502 bad gateway怎么解决

目前lnmp一键安装包比较多的问题就是502 Bad Gateway,大部分情况下原因是在安装php前,脚本中某些lib包可能没有安装上,造成php没有编译安装成功。

解决办法:可以尝试根据lnmp一键安装包中的脚本手动安装一下,看看是什么错误导致的。

在php.ini里,eaccelerator配置项一定要放在Zend Optimizer配置之前,否则也可能引起502 Bad Gateway

在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 将其中的max_children值适当增加。

php执行超时,修改/usr/local/php/etc/php.ini 将max_execution_time 改为300

磁盘空间不足,如mysql日志占用大量空间

查看php-cgi进程是否在运行

Nginx 502 Bad Gateway的含义是请求的PHP-CGI已经执行,但是由于某种原因(一般是读取资源的问题)没有执行完毕而导致PHP-CGI进程终止,一般来说Nginx 502 Bad Gateway和php-fpm.conf的设置有关。

php-fpm.conf有两个至关重要的参数,一个是max_children,另一个是request_terminate_timeout,但是这个值不是通用的,而是需要自己计算的。

在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 将其中的max_children值适当增加。 有空的话你也可以去后盾人看看php基础教学视频看看,也是不错的选择,希望能帮到你,给个采纳吧谢谢(〃ノωノ)

php 502 bad gateway怎么解决

1. php.ini的memory_limit 过小(如果有个别php程序进程需要占用极大内存时这个必须注意)

2. php-fpm.conf中max_children或者max_requests 设置不合理(设置过小会因为没有足够的cgi进程处理请求,设置过大会出现一会儿有响应正常,一会儿等很久才有响应的情况,一般情况下children按 照内存计算,比如说1G设置64,2G128。这个根据实际情况自行调整。另外查看当前的PHP FastCGI进程数是否够用的命令为:netstat -anpo |grep “php-cgi” | wc -l 如果实际使用的“FastCGI进程数”接近预设的“FastCGI进程数”,那么,说明“FastCGI进程数”不够用,需要增大。)

3. 查看nginx错误日志,发现 pstream sent too big header while reading response headerfrom upstream ,则检查client head buffer,fastcgi buffer size是否过小,可设置为32K。

4. php程序执行时间过长而超时,检查nginx和fastcgi中各种timeout设置。(nginx 中的 fastcgi_connect_timeout 300;fastcgi_send_timeout 300 :fastcgi_read_timeout300; keepalive_timeout ; php-fpm中的request_terminate_timeout,php.ini中的max_execution_time)

5. php-fpm有一个参数 max_requests ,该参数指明了每个children最多处理多少个请求后便会被关闭。在大量处理请求下,如果该值设置过小会导致children频繁的自杀和建立而浪费 大量时间,若所有的children差不多都在这个时候自杀,则重建前将没有children响应请求,于是出现502 。可以将该值设置大一些或者是0[无限]。

如果你服务器并发量非常大,那只能先增加机器,然后按以下方式优化会取得更好效果;但如果你并发不大却出现502,一般都可以归结为配置问题,脚本超时问题。

1.php-fpm进程数不够用

使用netstat -napo |grep "php-fpm" | wc -l查看一下当前fastcgi进程个数,如果个数接近conf里配置的上限,就需要调高进程数。

但也不能无休止调高,可以根据服务器内存情况,可以把php-fpm子进程数调到100或以上,在4G内存的服务器上200就可以。

2. 调高调高linux内核打开文件数量

可以使用这些命令(必须是root帐号)

echo 'ulimit -HSn 65536' /etc/profile

echo 'ulimit -HSn 65536' /etc/rc.local

source /etc/profile

3.脚本执行时间超时

如果脚本因为某种原因长时间等待不返回,导致新来的请求不能得到处理,可以适当调小如下配置。

nginx.conf里面主要是如下

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

php-fpm.conf里如要是如下

request_terminate_timeout =10s

4.缓存设置比较小

修改或增加配置到nginx.conf

proxy_buffer_size 64k;

proxy_buffers 512k;

proxy_busy_buffers_size 128k;

5. recv()failed (104: Connection reset by peer) while reading response header fromupstream

可能的原因机房网络丢包或者机房有硬件防火墙禁止访问该域名

但最重要的是程序里要设置好超时,不要使用php-fpm的request_terminate_timeout,

最好设成request_terminate_timeout=0;

因为这个参数会直接杀掉php进程,然后重启php进程,这样前端nginx就会返回104: Connection reset by peer。这个过程是很慢,总体感觉就是网站很卡。

May 01 10:50:58.044162[WARNING] [pool www] child 4074, script'/usr/local/nginx/html/quancha/sameip/detail.php' execution timed out(15.129933 sec), terminating

May 01 10:50:58.045725 [WARNING] [pool www] child 4074 exited on signal 15SIGTERM after 90.227060 seconds from start

May 01 10:50:58.046818 [NOTICE] [pool www] child 4082 started

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

另一个就是多说,这个东西是增加了网站的交互性,但是使用的多了反应就慢了,如果你网站超时且使用了多说是,可以关闭它。

6、自己遇到502的解决办法:

调整增大php 和Nginx 的backlog数。

网站出现502错误,我要怎么解决?

你好,我们只需进行浏览器的设置,然后重启浏览器即可。

理由和具体措施:

1.我们打开网页时出现502 bad gateway,说明服务器没有相应,也就是我们的web服务器没有接到有效的信息导致的。

2.我们浏览器使用了代理,我们打开桌面的浏览器找到右上角的工具打开,在下拉菜单中找到代理服务器选项。

3.在弹出的代理服务器选项中,选择不使用代理的选项在前面打勾,然后重启浏览器即可。

网站502是怎么回事,该怎样解决

什么原因导致502错误?

1:php-cgi进程数不够用 (我就是采用此方法解决的)

vim php-fpm.conf

修改其中的2个参数

(1)在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 将其中的max_children值适当增加

这个数值是不确定的 需要我们自己算的,这个值原则上是越大越好,php-cgi的进程多了就会处理的很快,排队的请求就会很少,减小出现502错误的机率。

一般来说,一台服务器的正常情况下每一个php-cgi要耗费的内存为20M左右。如果我就将此值设为80,那么也就是说大概要耗费服务器1600M内存。

查看一下当前系统中有多少个php-cgi进程在运行

netstat -anpo | grep php-cgi | wc -l

如果这个值接近你的在配置文件里面设置的值,说明需要增加

注:这要根据机器的实际情况而定,每个机器的硬件设施和环境不一样

参数为:value name=”max_children”80/value

(2)另外一个参数就是php-cgi脚本的执行时间

value name=”request_terminate_timeout”0s/value这里写0s的意思是让php-cgi一直执行下去,没有时间限制。

注意:如果你做不到这一点,也就 是说你的PHP-CGI可能出现某个BUG,或者你的宽带不够充足或者其他的原因导致你的PHP-CGI假死那么就建议你给 request_terminate_timeout赋一个值,这个值可以根据服务器的性能进行设定。一般来说性能越好你可以设置越高,20分钟-30分 钟都可以。

修改完这两个参数,重启一下php-cgi,看是否还出现502错误

2: php执行时间长

php执行超时,修改/usr/local/php/etc/php.ini 将max_execution_time 改为300

重启一下php-cgi,看是否还出现502错误

3: php-cgi进程死掉

杀死其进程,重启php-cgi