
正文
php数据太大出现502 php处理大数据量数据的思路
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
运行php文件出现502 bad gateway 怎么解决
确认php-fpm进程正常php数据太大出现502,然后从运行环境入手php数据太大出现502,调整超时和缓冲区大小配置。
例如一个 iptables + haproxy + nginx + php-fpm 运行环境,haproxy和nginx都可能触发502,或许是你的php运行时间超出php数据太大出现502了haproxy或nginx的超时设置,或许是你的php输出了大量的cookie数据等等。这个详细的解答视频php数据太大出现502我刚刚在后盾人看见了,专门针对你们的问题,还送价值两千元的后盾人会员卡
相关问答
Q1: 502 bad gateway怎么解决
502badgateway要先找到nginx配置的路径。
然后找到nginx所在的error日志文件来查看具体原因。
如果是客户端浏览器配置的问题php数据太大出现502,以360浏览器为例,出现502BadGateway可能是设置php数据太大出现502了代代理导致的。
取消浏览器代理之后,刷新一下就可以访问php数据太大出现502了。
502BadGateway是一种报错提示,这一错误并不意味着上游服务器已关闭(无响应网关/代理),而是上游服务器和网关/代理不同意的协议交换数据。
鉴于互联网协议是相当清楚的,它往往意味着一个或两个机器已不正确或不完全编程。
Q2: 运行php文件出现502 bad gateway怎么解决?
可以尝试根据lnmp一键安装包中的脚本手动安装一下,看看是什么错误导致的。
出现502 bad gateway 打不开网页:
1.基本刷新:右击刷新或者按F5刷新一下网页或清理一下电脑的缓冲文件,之后就可以打开网页了。这个方法能解决一部分人的问题。
2.从服务器刷新:快捷键 ctrl+F5,这样就是重新向服务器发送请求了。
3.如果服务器能正常给予你响应你就可以看到页面了。
4.可以尝试清除浏览器缓存。
5.你的ISP了重大设备故障/过载,只有您的ISP可以帮助您。
Q3: phpcms后台显示502
是502错误。
php-cgi进程数不够用、php执行时间长、或者是php-cgi进程死掉,都会出现502错误。
PHPCMS(PHPContentManageSystem)是一款由文章、下载、图片、分类信息、影视、商城、采集、财务20多个功能模块组成的强大、易用、可扩展的优秀网站管理软件。
Q4: 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数据太大出现502; php-fpm中的request_terminate_timeout,php.ini中的max_execution_time)
5. php-fpm有一个参数 max_requests ,该参数指明php数据太大出现502了每个children最多处理多少个请求后便会被关闭。在大量处理请求下,如果该值设置过小会导致children频繁的自杀和建立而浪费 大量时间,若所有的children差不多都在这个时候自杀,则重建前将没有children响应请求,于是出现502 。可以将该值设置大一些或者是0[无限]。
如果php数据太大出现502你服务器并发量非常大,那只能先增加机器,然后按以下方式优化会取得更好效果;但如果你并发不大却出现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等函数的都要设置超时时间。
另一个就是多说,这个东西是增加php数据太大出现502了网站的交互性,但是使用的多了反应就慢了,如果你网站超时且使用了多说是,可以关闭它。
6、自己遇到502的解决办法:
调整增大php 和Nginx 的backlog数。
php数据太大出现502的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php处理大数据量数据的思路、php数据太大出现502的信息别忘了在本站进行查找喔。







