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

常见的原因可能是php-cgi进程数不够用、php执行时间长(mysql慢)、或者是php-cgi进程死掉,都会出现502错误。

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

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

3. 磁盘空间不足,可以使用 # df -h命令查看磁盘使用量

4. php-cgi进程死掉了。

通常的排查方法如下:

1、查看php fastcgi的进程数(max_children值)

# netstat -anop | grep php-cgi | wc -l

# netstat -anpo | grep php-fpm | wc -l

假如显示是5

2、查看当前进程

# ps aux | grep php-fpm 观察fastcgi/php-fpm进程数,假如使用的进程数等于或高于5个,说明需要增加。

3、调整/usr/local/php/etc/php-fpm.conf 的相关设置

pm.max_children = 5

request_terminate_timeout = 60

max_children最多5个进程,按照每个进程20MB内存,最多100MB。也就是1分钟。max_children增多,则php-cgi的进程多了就会处理的很快,排队的请求就会很少。 但是设置max_children也需要根据服务器的性能进行设定,一般来说一台服务器正常情况下每一个php-cgi所耗费的内存在20M左右。根据自己服务器购买的内存来实际决定。

request_terminate_timeout执行的时间为60秒,request_terminate_timeout值可以根据服务器的性能进行设定。一般来说性能越好你可以设置越高,20分钟-30分钟都可以。

4. 部分PHP程序的执行时间超过了Nginx的等待时间,可以适当增加nginx.conf配置文件中FastCGI的timeout时间,例如:

http

{

......

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

......

}

java nginx 502_Nginx 502 bad gateway问题的解决方法相关推荐

  1. NGINX 502 Bad Gateway 用upstream解决方法

    一般nginx搭配php都采用这样的方式: location ~ \.php$ {     proxy_pass http://localhost:9000;     fastcgi_param SC ...

  2. nginx常见502错误提示原因和解决方法

    Nginx 502错误情况1: 网站的访问量大,而php-cgi的进程数偏少. 针对这种情况的502错误,只需增加php-cgi的进程数.具体就是修改/usr/local/php/etc/php-fp ...

  3. nginx PHP执行 502 bad gateway 或空白解决笔记

    配置安装好NGINX PHP 等WEB服务,刚开始执行PHP的时候会变成下载:这是因为nginx没有设置好无法把PHP传递到后方的php-fpm解释器.目录安装不一样,可能都会有不同. 看看你的ngi ...

  4. nginx 返回 502 Bad Gateway

    问题描述: nginx 返回502 Bad Gateway 原因分析: 查看nginx错误日志大量 upstream timed out (110: Connection timed out) 排查后 ...

  5. Nginx 出现504 Gateway Time-out的解决方法

    Nginx 出现504 Gateway Time-out的解决方法 参考文章: (1)Nginx 出现504 Gateway Time-out的解决方法 (2)https://www.cnblogs. ...

  6. opengl中的Floatbuffer和IntBuffer与java中数据的存储方式不同的解决方法,编辑一个自己的BufferUtil工具类

    opengl中的Floatbuffer和IntBuffer与java中数据的存储方式不同的解决方法,编辑一个自己的BufferUtil工具类 参考文章: (1)opengl中的Floatbuffer和 ...

  7. 我爱Java系列---【 maven依赖版本冲突的解决方法】

    我爱Java系列---[ maven依赖版本冲突的解决方法] 参考文章: (1)我爱Java系列---[ maven依赖版本冲突的解决方法] (2)https://www.cnblogs.com/hu ...

  8. linux下java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider解决方法

    linux下java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider解决方法 参考文章: ( ...

  9. Java进程占用内存过高,排查解决方法

    Java进程占用内存过高,排查解决方法 参考文章: (1)Java进程占用内存过高,排查解决方法 (2)https://www.cnblogs.com/eeexu123/p/10913389.html ...

最新文章

  1. 3年5000家,苏宁小店如何立足“中国第一O2O社区小店”?
  2. Linux内核2.6的进程调度
  3. linux内核杂记(18)-内核链表结构(2)
  4. verilog 简单module_一个简单的verilog小程序
  5. clientHeight.offsetHeight.scrollHeight等的区别
  6. 微信网页授权,并获取用户头像,昵称等基本信息代码实例
  7. python读取python源代码文件_python 学习源码练习(2)——简单文件读取
  8. QT学习-核心类列表-12、QtDesigner
  9. 《游戏学习》java实现连珠五子棋完整代码
  10. python字体大小设置苹果电脑_如何调整Mac字体大小Mac字体大小调整方法
  11. autosar 与osek 的nm
  12. Animation动画播放
  13. dismiss ios pop效果_iOS自定义转场动画-present和dismiss
  14. java controller注解原理_SpringMVC运行流程与原理【Controller接口实现注解实现】
  15. 变量的作用域和生存期:_生存分析简介:
  16. 计算机课师生互动过多,《计算机应用基础》课师生互动教学策略的个案研究.doc...
  17. 竞争性传输函数:compet
  18. 报错 -Uncaught ReferenceError: axios is not defined
  19. 这篇Docker的网络通信与数据共享文章看不懂你来打我吧
  20. json解析到map

热门文章

  1. Spring boot项目打的jar包太大,如何让他瘦下来
  2. html之文本框的onkeydown()响应Enter键——键盘事件
  3. 创建日志表和插日志信息的sp
  4. Spring声明式事务@Transactional 注解参数详解
  5. 可拆卸智能安全帽之创新极品~智能帽衬
  6. 内核编程Makefile名开头要大写,scripts/Makefile.build:44: /home/linux/Makefile: 没有那个文件或目录
  7. 软件工程(QLGY2015)博客点评总结
  8. JavaCV的摄像头实战之三:保存为mp4文件
  9. 3*3矩阵乘法 c语言,c语言矩阵相乘
  10. MacBook Air 快捷键