php讲解器是一款帮助用户在PHP目录下找到PHP.exe,用户可以运行.PHP程序的一款软件,很多用户都了解,软件的开发不能离开各种编译器,讲解器之类的东西,记者带来的这款软件就像C++的编译器,不过C++需要手工,而PHP是全自动的,用户仅需调用这款软件就能轻松的使得软件自动生成HTML代码。假如用户开发了PHP应用程序,但却不可以够正常运行,那样这款php讲解器可以让用户的应用程序代码转变为HTML代码,如此就可以正常运行了。
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的问题缘由与解决方法,其实解决问题的最好的方法还是自己去看nginx和fastcgi的errorlog。最后借用网上的万金油说法做个总结: php-cgi进程数不够用、php实行时间长、或者是php-cgi进程死掉,都会出现502错误。
502错误是所有用nginx跑php的运维职员不想看见的nginx出现502有不少缘由,但大多数缘由可以归结为资源数目不够用,也就是说后端php-fpm处置有问题,nginx将正确的推广客户端请求发给了后端的php-fpm进程,但由于php-fpm进程的问题致使不可以正确分析php代码,最后返回给了推广客户端502错误。
服务器出现502是什么原因连接超时大家向服务器发送请求因为服务器目前链接太多,致使服务器方面没办法给于正常的响应,产生此类显示错误因此假如你服务器并发量很大,那只能先增加机器,然后按以下方法优化会获得更好成效;但假如你并发不大却出现502,一般都可以归结为配置问题,脚本超时问题。
1.php-fpm进程数不够用用netstat -napo |grep "php-fpm" | wc -l查询一下目前fastcgi进程个数,假如个数接近conf里配置的上限,就需要调高进程数。
但也不可以无休止调高,可以参考服务器内存状况,可以把php-fpm子进程数调到100或以上,在4G内存的服务器上200就能。2. 调高调高linux内核打开文件数目
可以用这类命令echo 'ulimit -HSn 65536' /etc/profile
echo 'ulimit -HSn 65536' /etc/rc.localsource /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. recvfailed 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, terminatingMay 01 10:50:58.046818 [NOTICE] [pool www] child 4082 started
说一千道一万非常重要的就是程序里控制好超时,gethostbyname、curl、file_get_contents等函数的都要设置超时时间。另一个就是多说,这个东西是增加了网站的交互性,但用的多了反应就慢了,假如你网站超时且用了多说是,可以关闭它。
6、自己遇见502的解决方法:调整增大php 和Nginx 的backlog数。
PHP-FPM高负载的解决方法这里只不过介绍了php-fpm的优化办法的,但通常情况下和nginx组合用的时候,单独优化其中一项的话,用途不是特别的大,同时还需要对nginx进行优化.nginx的做法办法参考:http://blog.haohtml.com/archives/6213.上面的优化前和优化后的图,看得出前后差距还是特别的大的.
致使nginx 502 bad gateway的PHP-CGINGINX频爆502 BAD GATEWAY的错误,看了网上的课程,仍没彻底解决。
现在我总结的解决502 BAD GATEWAY的方法有:2.用reload参数定时重载php-fpm。这个重要原因是php脚本实行时间过长导致的,重载php-fpm能杜绝这个问题。怎么样彻底解决php-cgi脚本占用很多内存从而致使502错误的产生还值得进一步探讨,现在该做法不失为一种好方法。
具体的做法是,用crontab让php-fpm平滑重启,从而不影响PHP脚本的运行。*/10* * * * /usr/local/php/sbin/php-fpm reload
=================== 优化设置=========================When you running a highload websitewith PHP-FPM via FastCGI, the following tips may be useful to you : )
假如你高负载网站用PHP-FPM管理FastCGI,这类方法或许对你有用:)1.Compile PHP’s modules as less as possible, the simple the best ;
1.尽可能少安装PHP模块,最简单是最好(快)的2. Increas PHP FastCGI child number to 100 and even more.Sometime, 200 is OK! ;
2.把你的PHP FastCGI子进程数调到100或以上,在4G内存的服务器上200就能注:我的1g测试机,开64个是最好的,推荐使用重压测试获得最好值
3.Using SOCKET PHP FastCGI, and put into /dev/shm on Linux;3.用socket连接FastCGI,linux操作系统可以放在/dev/shm中
注:在php-fpm.cnf里设置/tmp/nginx.socket就能通过socket连接FastCGI了,/dev/shm是内存文件系统,放在内存中一定会快了.记得这个时候也要在nginx里的配置里进行修改,维持一致.location~ .*/.?$
{#
将Nginx与FastCGI的通信方法由TCP改为UnixSocket。TCP在高并发访问下比UnixSocket稳定,但Unix Socket速度要比TCP快。fastcgi_pass unix:/tmp/php-cgi.sock;
#fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;
include fcgi.conf;}
4. Increase Linux “max open files”, using the following command:# echo ‘ulimit -HSn 65536′ /etc/profile
# echo ‘ulimit -HSn 65536 /etc/rc.local# source /etc/profile
4.调高linux内核打开文件数目,可以用这类命令echo ‘ulimit -HSn 65536′ /etc/profile
echo ‘ulimit -HSn 65536′ /etc/rc.localsource /etc/profile
注:我是修改/etc/rc.local,加入ulimit -SHn 51200的5.Increase PHP-FPM open file description rlimit:
# vi /path/to/php-fpm.confFind “1024”
Change 1024 to 4096 or higher number.Restart PHP-FPM.
5.增加 PHP-FPM 打开文件描述符的限制:# vi /path/to/php-fpm.conf
找到“1024”
把1024更改为4096或者更高.重启PHP-FPM.
6. Using PHP code accelerator,e.g eAccelerator, XCache. And set “cache_dir” to /dev/shm on Linux.6.用php代码加速器,比如eAccelerator, XCache.在linux平台上可以把`cache_dir`指向/dev/shm
TAG标签:php解释器下载(1)
转载请说明来源于当快软件园(https://www.lrvxg.com)
郑重声明:文章来源于网络作为参考,本站仅用于分享不存储任何下载资源,如果网站中图片和文字侵犯了您的版权,请联系我们处理!邮箱3450399331@qq.com
查看全部
同类推荐