最近项目之余,领导叫解决下系统网站经常出现502的问题,作为小头头的我,怎能不顶上。

流程开始走起,先查nginx,嗯,配置是大众的。是不是缓存溢出了呢。调节buffer的值 。貌似也没什么影响啊。502是系统资源读取失败造成的。那肯定是php 的进程死掉了。开始检查php配置php.ini  php-fpm配置。

百度大大了解到,

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

计算的方式如下:
如果你的服务器性能足够好,且宽带资源足够充足,PHP脚本没有系循环或BUG的话你可以直接将”request_terminate_timeout”设置成0s。0s的含义是让PHP-CGI一直执行下去而没有时间限制。而如果你做不到这一点,也就是说你的PHP-CGI可能出现某个BUG,或者你的宽带不够充足或者其他的原因导致你的PHP-CGI能够假死那么就建议你给”request_terminate_timeout”赋一个值,这个值可以根据你服务器的性能进行设定。一般来说性能越好你可以设置越高,20分钟-30分钟都可以。由于我的服务器PHP脚本需要长时间运行,有的可能会超过10分钟因此我设置了900秒,这样不会导致PHP-CGI死掉而出现502 Bad gateway这个错误。

而”max_children”这个值又是怎么计算出来的呢?这个值原则上是越大越好,php-cgi的进程多了就会处理的很快,排队的请求就会很少。设置”max_children”也需要根据服务器的性能进行设定,一般来说一台服务器正常情况下每一个php-cgi所耗费的内存在20M左右,因此我的”max_children”我设置成40个,20M*40=800M也就是说在峰值的时候所有PHP-CGI所耗内存在800M以内,低于我的有效内存1Gb。而如果我的”max_children”设置的较小,比如5-10个,那么php-cgi就会“很累”,处理速度也很慢,等待的时间也较长。如果长时间没有得到处理的请求就会出现504 Gateway Time-out这个错误,而正在处理的很累的那几个php-cgi如果遇到了问题就会出现502 Bad gateway这个错误。

max_requests即是说每个进程若超过这个数目(跟php进程有一点点关系,关系不大),就自动杀死..我这里应该设置512的,不过懒得压力测试了,设置大一点,不过也不要设置过大,是个结构体,没测试过,接近8K到9K大小.网上动辄设置100k,有点浪费内存了.一个进程浪费大小接近1M.按照网上常用配置的128个进程,大概浪费100M左右.好吧,我承认100M是白菜价,但也别这样浪费..= =

max_children基本就是进程数,跟nginx的进程没有想象中的那么大,因为FPM会自己管理进程(有待考证,起码我简单浏览了一下源码,认为是这个意思).参数不宜设置过大,很占内存,进程的消耗就不用我多说了.

max_children较好的设置方式根据req/s来设置,若程序是 100 req/s的处理能力..最大并发是10K,那么就设置 100比较好,这是动态来调整的.

不过你若用php 5.3,也可以把style设置为apache-like,那么设置start_servers,min_spare_servers,max_spare_servers三个参数就可以自动调整
很简单,具体看配置文件,这样的设置之后,在高负载和复杂的php程序会省事一点,毕竟测试req/s是可恶的体力活.

转载于:https://www.cnblogs.com/wujf-myblog/p/10437434.html

网站出现502 bad getway相关推荐

  1. 502 宝塔 部署tomcat_宝塔面板网站出现502 Bad Gateway问题几个排查解决方案

    今天早上有看到群友在询问自己的1G1M服务器搭建的宝塔面板网站还没有访问量,为什么会经常出现"502 Bad Gateway"这样的错误问题,是不是服务器配置比较低,是否需要升级带 ...

  2. php网站调试出现的简单问题,调试php时网站出现502的解决方法

    这是第二次遇到该问题了,上次解决后因为没有记录,结果这次遇到后又得重新查找解决方法.记忆力严重减退了啊,还是要保持边学边记录的习惯 网站在正常运行时是没有问题的,但是在使用xdebug进行远程调试时, ...

  3. 网站出现 502 Bad Gateway 怎么解决?

    为什么80%的码农都做不了架构师?>>>    打开某网站出现一个问题如下图(这里就不说是哪个网站了),那么下面就针对这个问题分享下解决思路. 1.什么是 502 badgatewa ...

  4. php fpm 优化502,Nginx+PHP-FPM环境访问网站出现502错误的优化方法 - Nginx - 数安时代(GDCA)SSL证书官网...

    游戏后端代码采用Nginx+PHP-FPM的方式部署.放问游戏的时候偶尔会出现502错误. Nginx错误日志出现以下日志 2014/07/05 17:20:58 [error] 18431#0: * ...

  5. 网站出现502报错是出现什么问题,应该怎么解决

    1.服务器故障问题就需要检查当前的服务器是否故障是否在线.以及我们当前服务器的WEB环境.数据库等是否正在运行.同时,我们也需要检查当前服务器的IP是否有问题.2.DNS故障问题,检查域名的解析DNS ...

  6. 网站502错误分析解决办法

    出现502错误的原因分析 将请求提交给网关,如php-fpm执行,但是由于某些原因没有执行完毕导致php-fpm进程终止执行.那么出现问题的地方便与网关服务如php-fpm的配置有关.max_chil ...

  7. 502 bad gateway是什么意思?502 bad gateway怎么解决!

    您可以尝试清除浏览器缓存 访问一下你的FTP看是否可以登陆 产生原因 服务器(不一定是Web服务器)是作为网关或代理,以满足客户的要求(如Web浏览器或我们的CheckUpDown机器人)来访问所请求 ...

  8. 前端报502 bad gateway的原因及解决方案

    502 Bad Gateway服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答. 解决办法是:再刷新一下网页或清理一下电脑的缓冲文件在打开你想打开的网页就好了. 一般 ...

  9. 解决:502 bad gateway

    转自:http://my.oschina.net/junn/blog/147923 502 Bad Gateway服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答. ...

最新文章

  1. 笔记 | PyTorch张量Tensor的一些必备操作
  2. weblogic java虚拟机_weblogic server 性能及调优-调优 java 虚拟机.doc
  3. android仿苹果SwitchButton效果的实现
  4. 【深度学习】60题PyTorch简易入门指南,做技术的弄潮儿
  5. asp.net生命周期
  6. SpringBoot学习:在Interillj Idea上快速搭建SpringBoot项目
  7. Intel Realsense d435 使用python对深度图进行预处理
  8. Metal Framework基础使用教程
  9. java struts2 作用_struts2是什么?如何使用?
  10. JAVA 中一个非常轻量级只有 200k 左右的 RESTful 路由框架
  11. JavaScript高级程序设计(第3版)中文在线阅读,也可以免费下载~
  12. Windows强制删除文件的方法
  13. 基于STM32的智能电子药盒设计
  14. Apple Pay 详解
  15. 如何通过数据驱动业务发展
  16. 计算机专业教室三行诗,当学霸写起三行情书,看完第一个就懵了……
  17. 程序设计思维与实践 Week15 实验
  18. cv::fitLine用法
  19. oracle上机题库_Oracle笔试题库附参考答案
  20. 2008年度最佳开源软件大奖

热门文章

  1. 万域之王小说百科_万域之王 小说
  2. coding-summaries
  3. java 小球抛物线_小球抛物线运动
  4. [POI2005]Sza-Template
  5. Mysql-错误处理: Found option without preceding group in config file
  6. 推荐一个开源的任务管理工具DooTask(支持私有部署)
  7. golang版本管理gvm
  8. pandas中如何选取某几列_Pandas 2:如何在数据集中选取列
  9. 电视连接WiFi中心服务器异常,网络电视登录失败怎么办?为什么电视连接wifi常常显示登陆失败?...
  10. win10网络显示已连接到服务器异常,如何解决win10网络连接配置异常的问题