文档章节

nginx 502

t
 tystys
发布于 2017/07/23 22:17
字数 1029
阅读 8
收藏 0
点赞 0
评论 0

 

通常是由于前段服务器the frontend webserver--尝试连接 backend application handlers后端服务器 breakdown时

以下是执行过程|执行时又可能出现502|超时等

 

当然,配置错误也会爆502        

取决于不同的应用服务器--诊断502错误方案亦不同 

常见问题

PHP-FastCGI    (PHP-FPM)   NGINX.  

php-fpm未运行--502

php-fpm 无法启动

nginx无法和php-fpm通讯

nginx 超时

php-fpm超时 

PHP-FPM未运行

 ps +grep     查看是否运行php-fpm

 

root@nginx0:/var/log/nginx# ps aux | grep php
root     29191  0.0  1.7 133628 18108 ?        Ss   20:41   0:00 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)
www-data 29193  0.0  0.5 133628  5956 ?        S    20:41   0:00 php-fpm: pool www
www-data 29194  0.0  0.5 133628  5956 ?        S    20:41   0:00 php-fpm: pool www

 

未运行|

则运行

init system command
SysV service php5-fpm start
Systemd systemctl start php5-fpm.service
init.d /etc/init.d/php5-fpm start
Upstart

initctl start php5-fpm

 

 

PHP-FPM启动失败 

如果无法启动--发起一个php页面的请求---tail nginx 错误日志 

www-data@nginx0:/var/log/nginx$ tail /var/log/nginx/error.log
2016/09/19 20:39:30 [crit] 28751#28751: *9 connect() to unix:/var/run/php5-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 192.0.2.101, server: example.com, request: "GET /test.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "192.0.2.255"
2016/09/19 20:39:50 [crit] 28751#28751: *9 connect() to unix:/var/run/php5-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 192.0.2.101, server: example.com, request: "GET /test.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "192.0.2.255"
2016/09/20 16:39:44 [crit] 28751#28751: *33 connect() to unix:/var/run/php5-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 192.0.2.101, server: example.com, request: "GET /test.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "192.0.2.255"

  PHP-FPM 启动失败几乎百分百是配置问题

www-data@nginx0:/var/log/nginx$ tail /var/log/syslog
Sep 20 16:39:10 nginx0 kernel: [77167.468712] init: php5-fpm main process (3551) terminated with status 78
Sep 20 16:39:11 nginx0 kernel: [77167.468727] init: php5-fpm main process ended, respawning

 

www-data@nginx0:/var/log/nginx$ cat /usr/include/sysexits.h | grep 78
#define EX_CONFIG       78      /* configuration error */

  PHP-FPM配置错误

  PHP-FPM 配置问题

  fat fingers, or a genuine configuration conflict配置冲突.

首先确认保证php-fpm所在用户组对通讯目录是有写权限的.

Next, verify that the socket is being created with the appropriate user permissions.

In particular, check your worker pool configurations (in /etc/php5/fpm/pool.d/*.conf)

and verify:

  • socket path
  • process owner/group
  • listen.owner/listen.group
user = www-data
group = www-dat

listen = /var/run/php5-fpm.sock

listen.owner = www-data
listen.group = www-data

Notice the typo in the configuration file above: group = www-dat should read group = www-data.

Fixing this typo and restarting the PHP-FPM daemon resolves the issue.

NGINX 通讯PHP-FPM失败

 

如果PHP-FPM和你的application应用都没问题 are working properly, 那么问题可能出现在NGINX’s 配置上.  (/etc/nginx/sites-enabled/default, by default) and verify that the fastcgi_pass directive matches the socket (listen) in your PHP-FPM worker pool configuration.

[...]
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_nam$
                include fastcgi_params;

        }

配置更改后记得重启NGINX.

 

 

NGINX超时

如果后端应用正在运行,却出现了502,问题多数出现在正在请求|正在访问的应用上尤其应用没有设置时间限制,而nginx是有时间限制的,超出配置的时间,是不再等待的 

 不同的应用下,执行时间大于30秒的可能会被执行,这时就需要增加ngixn最大超时时间,

如果程序执行时间是异常导致的超时,就需要优化了, 

 配置最大超时时间--首先打开PHP-FPM’s configuration file (/etc/php5/fpm/php.ini),

找到

max_execution_time = 30

然后 打开/etc/nginx/nginx.conf),

添加如下内容到http模块

add the following within the http block to increase timeout windows, buffers, and buffer sizes:

http { 
...

fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}

最后重启reload NGINX and PHP-FPM:

PHP-FPM:

init system command
SysV service php5-fpm reload
Systemd systemctl reload php5-fpm.service
init.d /etc/init.d/php5-fpm reload
Upstart initctl reload php5-fpm

NGINX:

init system command
SysV service nginx reload
Systemd systemctl reload nginx.service
init.d /etc/init.d/nginx reload
Upstart initctl reload nginx

PHP-FPM is timing out

有时,增加超时时间只是临时解决方案。

更多的应该是去找到你的应用程序,分析,优化,降低执行时间,  

例如,程序 在查询数据库时可能花费了大量的时间,直接超过了最大执行时间。  

如果nginx的执行时间足够高,临时解决方案是把php执行时间 set_time_limit()打开

当然 --长期的解决方案--还是去优化程序

 

© 著作权归作者所有

共有 人打赏支持
t
粉丝 2
博文 72
码字总数 82272
作品 0
解决:502 bad gateway

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

Junn ⋅ 2013/07/28 ⋅ 0

Nginx防盗链 Nginx访问控制 Nginx解析php相关配置 Nginx代理

12.13 Nginx防盗链 cd /usr/local/nginx/conf/vhost vi test.com.conf 将以上内容复制到下图位置 测试,成功 前提data/wwwroot/test.com目录下要有1.gif 12.14 Nginx访问控制 cd /usr/local/...

cwliang ⋅ 03/15 ⋅ 0

Nginx 502 Bad Gateway 错误的原因及解决方法

刚才在调试程序的时候,居然服务器502错误,昨天晚上也发生了,好像我没有做非常规的操作。然后网上寻找了下答案, 把一些原因及解决方法汇总一下,以防生产环境下的502![在此输入图片描述]...

zhouyuan24 ⋅ 2013/03/30 ⋅ 0

nginx错误总结

Nginx 502 Bad Gateway错误触发条件与解决方法 一些运行在Nginx上的网站有时候会出现“502 Bad Gateway”错误,有些时候甚至频繁的出现。以下是从Google搜集整理的一些Nginx 502错误的排查方...

五大三粗 ⋅ 2015/05/21 ⋅ 0

nginx 502 Bad Gateway 错误解决办法

nginx 502 Bad Gateway 错误解决办法 一些运行在Nginx上的网站有时候会出现“502 Bad Gateway”错误,有些时候甚至频繁的出现。以下是小编搜集整理的一些Nginx 502错误的排查方法,供参考: ...

coolner ⋅ 2017/07/04 ⋅ 0

nginx 502 Bad Gateway 错误解决办法

一些运行在Nginx上的网站有时候会出现“502 Bad Gateway”错误,有些时候甚至频繁的出现。以下是小编搜集整理的一些Nginx 502错误的排查方法,供参考:   Nginx 502错误的原因比较多,是因...

yearnfar ⋅ 2014/04/23 ⋅ 0

PHP脚本监控Nginx 502错误并自动重启php-fpm

最近服务器时不时出现Nginx 502 Bad Gateway,如果在电脑旁边还好,要是半夜或者出去了,怎么办? 没关系,写个脚本检测服务状态,发现异常,自动重启。 自动重启脚本: 复制代码代码如下: <...

老查 ⋅ 2016/03/02 ⋅ 0

CentOS 7中nginx反向代理因为selinux出现错误的解决办法

因为项目需要,要使用nginx实现反向代理,但是在部署中发现出现了502错误代码,经排查是centos7中的selinux造成的。 0、相关环境 centos:7.0 nginx:1.8.1 selinux为系统自带 1、错误现象 ...

阿信sxq ⋅ 2016/03/12 ⋅ 0

Nginx 502错误原因和解决方法总结

一、NGINX 502错误排查 NGINX 502 Bad Gateway错误是FastCGI有问题,造成NGINX 502错误的可能性比较多。将网上找到的一些和502 Bad Gateway错误有关的问题和排查方法列一下,先从FastCGI配置...

szxy1234 ⋅ 2017/02/15 ⋅ 0

502 bad gateway怎么解决

方法/步骤 目前lnmp一键安装包比较多的问题就是502 Bad Gateway,大部分情况下原因是在安装php前,脚本中某些lib包可能没有安装上,造成php没有编译安装成功。 解决办法:可以尝试根据lnmp一...

lg2045 ⋅ 2013/08/26 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Kubeflow实战系列:利用TFJob导出分布式TensorFlow模型

介绍 本系列将介绍如何在阿里云容器服务上运行Kubeflow, 本文介绍如何使用TfJob导出分布式模型训练模型。 第一篇:阿里云上使用JupyterHub 第二篇:阿里云上小试TFJob 第三篇:利用TFJob运行...

全部原谅 ⋅ 11分钟前 ⋅ 0

007. 深入JVM学习—老年代

老年代空间的主要目的是用于存储由Eden发送来的对象,一般在经历好几次“Minor GC”还会保存下来的对象,才会被复制到老年代,这样就可以存放更多的对象,同时在老年代中执行GC的次数也相对较...

影狼 ⋅ 12分钟前 ⋅ 0

常见的一些C#开源框架或者开源项目

原:https://blog.csdn.net/qq_27825451/article/details/70666044 Json.NET http://json.codeplex.com/ Json.Net 是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更......

whoisliang ⋅ 13分钟前 ⋅ 0

设计模式基本原理

刚开始接触编程这行的时候看过设计模式,当时感觉学这些模式没有太大的用处,当时也看不太懂。但是随着慢慢接触这一行,经过一段时间的编程以后,再回过头来看设计模式,发现设计模式的确是太...

王子城 ⋅ 17分钟前 ⋅ 0

阿里云全面支持IPv6!一文揽尽4位大咖精彩演讲

摘要: 自从去年11月以来,阿里巴巴高度重视数据中心的网络改造、云产品改造、应用及网络改造等多个维度,经过半年以来的建设,阿里云已经完成了域名解析等关键产品的分析,现在阿里云已经完...

传授知识的天使 ⋅ 27分钟前 ⋅ 0

windows Android sdk 配置

1、下载Android SDK,点击安装,直接默认路径即可! 下载地址:http://developer.android.com/sdk/index.html 2、默认路径安装后,安装完成,开始配置环境变量。 3、打开计算机属性——高级系...

阿豪boy ⋅ 30分钟前 ⋅ 0

bash shell script 简明教程

User <--> bash <--> kernel shell is not kernel or part of kernel various shells: tcsh, csh, bash, ksh find the using shell: echo $SHELL find all the shells: cat /etc/shells what......

mskk ⋅ 32分钟前 ⋅ 0

Service Mesh简史

William Morgan Service Mesh是一个相当新的概念,讲它的“历史”似乎有些勉强。就目前而言,Service Mesh已经在部分企业生产环境中运行了超过18个月,它的源头可以追溯到2010年前后互联网公...

好雨云帮 ⋅ 32分钟前 ⋅ 0

10个免费的服务器监控工具

监控你的WEB服务器或者WEB主机运行是否正常与健康是非常重要的。你要确保用户始终可以打开你的网站并且网速不慢。服务器监控工具允许你收集和分析有关你的Web服务器的数据。 有许多非常好的服...

李朝强 ⋅ 45分钟前 ⋅ 0

压缩工具之zip-tar

zip 支持目录压缩。使用yum安装zip包,使用yum安装unzip包 zip 1.txt.zip 1.txt #将1.txt文件压缩,新生成的压缩文件为1.txt.zip,原文件保留 zip -r 123.zip 123/ #-r对目录操作。将123/目录...

ZHENG-JY ⋅ 45分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部