解决php-cgi假死导致页面出现502 Bad gateway问题
来源:互联网 发布:淘宝自动好评加分吗 编辑:程序博客网 时间:2024/06/05 14:24
解决php-cgi假死导致页面出现502 Bad gateway问题
1) . php执行时间长
如果服务器性能足够好,且宽带资源足够充足,PHP脚本没有系循环或BUG的话你可以直接将”request_terminate_timeout”设置 成0s。
php-fpm.conf 103行左右
<value name=”request_terminate_timeout”>0s</value>
0s的含义是让PHP-CGI一直执行下去而没有时间限制。
而如果做不到这一点,也就是说你的PHP-CGI可能出现某个BUG,或者你的宽带不 够充足或者其他的原因导致你的PHP-CGI能够假死那么就建议你给”request_terminate_timeout”赋一个值,这个值可以根据你 服务器的性能进行设定。一般来说性能越好你可以设置越高,20分钟-30分钟都可以。由于我的服务器PHP脚本需要长时间运行,有的可能会超过10分钟因 此我设置了900秒,
<value name=”request_terminate_timeout”>900s</value>
这样不会导致PHP-CGI死掉而出现502 Bad gateway这个错误
2) php-cgi进程数不够用
默认的php-cgi连接数如果在连接数很大的时候,默认的连接数配置限制会导致502的结果。
php-fpm.conf 79行左右
如果您高负载网站使用PHP-FPM管理FastCGI,这些技巧也许对您有用:)
1. Compile PHP’s modules as less as possible, the simple the best (fast);
1.尽量少安装PHP模块,最简单是最好(快)的
2. Increas PHP FastCGI child number to 100 and even more. Sometime, 200 is OK! ( On 4GB memory server);
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里设置<value name=”listen_address”>/tmp/nginx.socket</value>就可以通过socket连接FastCGI了,/dev/shm是内存文件系统,放在内存中肯定会快了
4. Increase Linux “max open files”, using the following command (must be root):
# echo ‘ulimit -HSn 65536′ >> /etc/profile
# echo ‘ulimit -HSn 65536 >> /etc/rc.local
# source /etc/profile
4.调高linux内核打开文件数量,可以使用这些命令(必须是root帐号)
echo ‘ulimit -HSn 65536′ >> /etc/profile
echo ‘ulimit -HSn 65536′ >> /etc/rc.local
source /etc/profile
注:我是修改/etc/rc.local,加入ulimit -SHn 51200的
5. Increase PHP-FPM open file description rlimit:
# vi /path/to/php-fpm.conf
Find “<value name=”rlimit_files”>1024</value>”
Change 1024 to 4096 or higher number.
Restart PHP-FPM.
5. 增加 PHP-FPM 打开文件描述符的限制:
# vi /path/to/php-fpm.conf
找到“<value name=”rlimit_files”>1024</value>”
把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
补充个nginx+php-cgi的内存开销情况:
Nginx进程 每个进程数15M左右 有参数 worker_processes 来决定开启个数 一般8个就可以
php-cgi进程 每个消耗20M左右内存,看情况,一般128或者256,大内存机器512或者更高
这个数值根据机子的性能和php的执行消耗的系统性能来配置。
- 解决php-cgi假死导致页面出现502 Bad gateway问题
- 解决nginx+php(php-fpm)出现502 bad gateway问题
- php-cgi导致的502 Bad Gateway错误
- php 解决:502 bad gateway
- phpstorm运行php出现502 Bad Gateway
- phpstorm 运行 php 出现 502 Bad Gateway
- 解决:502 bad gateway
- 解决:502 bad gateway
- php 502 bad gateway
- lnmp升级php出现502 bad gateway错误
- nginx+php-fpm出现502 bad gateway错误解决方法
- nginx+php-fpm出现502 bad gateway错误解决方法
- nginx+php-fpm出现502 bad gateway错误解决方法
- nginx+php-fpm出现502 bad gateway错误解决方法
- nginx+php-fpm出现502 bad gateway错误解决方法
- nginx+php-fpm出现502 bad gateway错误解决方法
- 解决nginx 502 bad gateway
- 502 Bad Gateway The CGI was not CGI/1.1 compliant
- 编程错误日志二
- HDU 2070 Fibbonacci Number【递推】
- Java heap space解决
- 为啥REST如此重要?
- uva 562 Dividing Coins
- 解决php-cgi假死导致页面出现502 Bad gateway问题
- DB2常用函数详解(二):类型转换函数
- Mac 远程连接 Windows
- Mysql 存储过程示例
- HDU - 2604 Queuing DFA + 矩阵二分
- 使用Cocos 坑 总结
- 面向对象(四)内部类与异常机制
- HDU 3215 The first place of 2^n(计算2^0到2^n首位出现的1,2,3...9的个数)
- android 电池(二):android关机充电流程、充电画面显示