相信自己,加油!

****

nginx+php 出现502 bad gateway,一般这都不是nginx的问题,而是由于 fastcgi或者php的问题导致的

服务器出现 502 的原因是连接超时 我们向服务器发送请求 由于服务器当前链接太多,导致服务器方面无法给于正常的响应 , 产生此类报错

因此如果你服务器并发量非常大,那只能先增加机器,然后按以下方式优化会取得更好效果 ; 但如果你并发不大却出现 502 ,一般都可以归结为配置问题,脚本超时问题。

****

1、memory_limit/etc/php/7.2/cli/php.ini

如果有个别php程序进程需要占用极大内存时这个必须注意

2、max_childrenphp-fpm.conf

设置不合理,php-fpm 进程数不够用,设置过小会因为没有足够的cgi进程处理请求,设置过

大会出现一会儿有响应正常,一会儿等很久才有响应的情况,使用 netstat -napo |grep "php-

fpm" | wc -l 查看一下当前 fastcgi 进程个数,如果个数接近 conf 里配置的上限,就需要调高

进程数(一般情况下children 按照内存计算,比如说1G设置64,2G128。这个根据实际情况

自行调整。)

3、pstreamsent too big header while reading response  headerfrom upstreamnginx日志

检查client head buffer,fastcgi buffer  size是否过小

4、timeoutPHP程序执行时间过长而超时

检查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、max_requestsphp-fpm

该参数指明了每个children最多处理多少个请求后便会被关闭。在大量处理请求下,如果该值

设置过小会导致 children频繁的自杀和建立 而浪费大量时间,若所有的children差不多都在这

个时候自杀,则重建前将没有children响应请求,于是出现502。可以将该值设置大一些或者

是0[无限]。

6、调高 linux 内核打开文件数量

( 必须是 root 帐号 )

echo 'ulimit -HSn 65536'>> /etc/profile

echo 'ulimit -HSn 65536'>> /etc/rc.local

source /etc/profile

7、脚本执行时间超时

如果脚本因为某种原因长时间等待不返回 ,导致新来的请求不能得到处理,调小如下配置。

nginx.conf 里面主要是如下

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

php-fpm.conf 里如要是如下

request_terminate_timeout =10s

8、缓存设置较小

修改或增加配置到 nginx.conf

proxy_buffer_size 64k;

proxy_buffers  512k;

proxy_busy_buffers_size 128k;

9、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 。这个过程是很慢,总体感觉就是网站很卡。

还应该注意到php.ini中的max_execution_time参数。当请求终止时,也会出现502错误的。

10、调整增大php 和Nginx 的backlog数

listen.backlog = 4096

为什么PHP项目运行报错502,PHP的502报错相关推荐

  1. laravel项目运行 php artisan cache:clear 命令报错

    laravel项目运行 php artisan cache:clear 命令报错 vscode 项目运行 php artisan cache:clear 命令 出现报错 Failed to clear ...

  2. vue/cle3项目运行报错sockjs-node/info解决方案

    https://cloud.tencent.com/developer/article/1489598 vue/cle3项目运行报错sockjs-node/info解决方案 在这篇文章中: bug复现 ...

  3. 创建Spring boot项目运行出现报错: java: 无效的源发行版: 14

    触发场景:创建Spring boot项目运行出现报错\ 首先在左边的项目中选择pom.xml文件 找到这行,把中间的版本改成自己下载的java版本 我的是1.8,改好后再点maven刷新即可

  4. vue项目运行报错 node_modules/.bin/vue-cli-service: Permission denied

    vue项目运行 npm run serve 报错 sh: /Users/wang/WebstormProjects/test_web/node_modules/.bin/vue-cli-service ...

  5. 【项目运行报错】These dependencies were not found: core-js/modules/es6.array.fill in ./node_modules

    项目运行报错 These dependencies were not found: core-js/modules/es6.array.fill in ./node_modules/cache-loa ...

  6. vue 项目运行报错 multiple chunks emit assts to the same filename js/401.js(chunks 401 and 401)

    VUE项目运行报这个错误也没有说哪里有错误,只说有名字冲突,整个项目搜下来都没发现有相同的名字,百度也没人说.自己摸索的解决掉了.有两种情况. 情况一:如果是添加路由的时候就报这个错 解决办法: 把c ...

  7. Python项目运行报错 django.core.exceptions.ImproperlyConfigured: WSGI application ‘WebTool.wsgi.application

    问题描述:使用Pycharm运行python项目报错:django.core.exceptions.ImproperlyConfigured: WSGI application 'WebTool.ws ...

  8. 【吭】django项目运行jira项目突然报错TypeError: session() takes 1 positional argument but 2 were given

    在linux重新部署时,pip install jira 默认安装最新版本3.0,导致项目运行时报错如下: 解决办法,卸载jira库,重新安装指定版本: 也可以修改代码使用最新的jira库.

  9. 点击项目任意页面都是404,且报错class path resource [] cannot be opened because it does not exist等

    问题:点击项目任意页面都是404,且报错class path resource [] cannot be opened because it does not exist等 产生:从svn拉取项目运行 ...

  10. 解决导入maven项目之后pom.xml中的project标签报错:批量删除没有下载完全的pom依赖bat脚本

    报错现象: 导入maven项目之后pom.xml中的project标签报错. 问题原因: 这个项目我来来回回导入的很多次,有些依赖没有下完全,只下了一半.当我再一次导入该项目时,那些没有下载完全的依赖 ...

最新文章

  1. 【创新应用】小图像,大图景:AI彻底改变了显微镜技术
  2. 利用InfoPath实现SharePoint Server 2013列表的级联选择(Cascading Drop Down List)
  3. SpringMVC开发过程中的中文乱码问题
  4. BZOJ 1026 [SCOI2009]windy数
  5. Segnet的caffe训练环境搭建
  6. zigzag模式提取矩阵元素
  7. require include php5中最新区别,百度上好多错的。
  8. vue 按钮根据状态切换_一个vue实现的标尺插件 - vue-sketch-ruler
  9. Extjs下拉多选框
  10. opengl es坐标变换理解1
  11. Structs2.0.11.1升级到2.5.30
  12. SIM800A模块发短信调试中出现的问题并解决
  13. photoshop第九章:文字和场景效果的制作
  14. 大数据领域常用算法总结
  15. 【YbtOJ 线段树 - 2】公园遛狗
  16. 保险行业的“偿二代”
  17. java 账本 创建数据库_想用你所学的JAVA与数据库写一个属于自己的账本吗?一起来看看呗!看如何用java项目操作数据库...
  18. Yolov5(1):Detect源码逐行解析
  19. Ubuntu16.04LTS部署CEPH文件存储集群
  20. 一、Java环境介绍

热门文章

  1. python两层for循环嵌套的执行过程_Python for循环嵌套
  2. 商城订单模块实战 - 数据库设计、ABA问题处理、读写分离分库分表
  3. jQuery 一次定时器_用 jQuery 手写一个小游戏
  4. 2018年全国职业院校技能大赛中职组“网络空间安全”正式赛卷及评分标准
  5. ElGamal Encryption
  6. MFC窗口风格 WS_style/WS_EX_style(超详细)
  7. 深入理解什么是双亲委派模型(Java图文详解)
  8. 《MySQL必知必会》学习笔记十(增删改语句使用)------掌握部分
  9. 直播APP平台应该如何规范化管理
  10. 基于SSM的在线课程教学系统