- 浏览: 524055 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
xuyifeng:
[img][/img][b][/b][/i]玩儿[i][u][ ...
win/linux 网关绑定MAC,ARP攻击 -
icarusli:
一般是要根据具体情况来分析,只不过基本都会是上面所说的原因,但 ...
nginx 502 bad故障原因及解决方法收集 -
haohetao:
博主有Mydigit邀请码吗,给送个haohetao@gmai ...
U盘量产功能增多
如题,最近网站频繁出现502错误,简直无法正常运转,出现这种情况大多是php-cgi超时没有返回信息,或进程僵死等情况造成的。我们的nginx已经配置到极致这些都已经老早做过修改了,但现在又出然出现。
代理服务器,ip查询,手机号,proxy,天气预报,火车时刻,身份证号码,飞机航班,新华字典查询等经过分析将nginx的error log打开,发现”pstream sent too big header while reading response header from upstream”这样的错误提示,查阅了一下资料,大意是nginx缓冲区有一个bug造成的,我们网站的页面消耗占用缓冲区可能过大。参考老外写的修改办法增加了缓冲区容量大小设置,502问题彻底解决,后来系统管理员又对参数做了调整只保留了2个设置参数:client head buffer,fastcgi buffer size。
参考:代
http://www. sudone .com/nginx/nginx_400_bad_request.html
http://blog. rackcorp .com/?p=14
二、昨天装上nginx后在高负载的时候,论坛上传图片或者执行较长时间脚本的时候就不停的出现502 Bad Gateway ,网上搜了,大多数都是张大师的那篇解决方案,他的解决方案是
http
{
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
增加了fastcgi的相应请求时间。但是我在实际中碰到了这个问题,设置到500,还是会出现,只是比我设置120的时候要少一些。后来发现主要是在一些post或者数据库操作的时候出现这种情况,静态页面是不会出现的
反复的查问题,调试,也加大了CGI的进程数。
务器,ip查询,手机号,proxy,天气预报,火车时刻,身份证号码,飞机航班,新华字典查询等 S6 b4 \) y& c( \! j) ]
256再加上去可能会变得很慢。占用内存大了。123cha.com1 u& }. p1 [7 b% L/ \0 \
在php-fpm.conf设置中还有一项,可能当时没注意到,无意中改了这个值。
request_terminate_timeout
这个值是max_execution_time,就是fast-cgi的执行脚本时间。
0s 123cha.com* S( v, U9 D5 q6 T; i* z6 u- R
0s为关闭,就是无限执行下去。(当时装的时候没仔细看就改了一个数字)
发现,问题解决了,执行很长时间也不会出错了。
优化fastcgi中,还可以改改这个值5s 。看看效果
终于发现502的错误其实不是nginx的问题,
php-cgi进程数不够用、php执行时间长、或者是php-cgi进程死掉,都会出现502错误
三、
一台服务器上运行着nginx php(fpm) xcache,访问量日均 300W pv左右
最近经常会出现这样的情况: php页面打开很慢,cpu使用率突然降至很低,系统负载突然升至很高,查看网卡的流量,也会发现突然降到了很低。这种情况只持续数秒钟就恢复了
检查php-fpm的日志文件发现了一些线索
在这几句的前面,是1000多行的关闭children和开启children的日志
原来,php-fpm有一个参数 max_requests ,该参数指明了,每个children最多处理多少个请求后便会被关闭,默认的设置是500。因为php是把请求轮询给每个children,在大流量下,每个childre到达max_requests所用的时间都差不多,这样就造成所有的children基本上在同一时间被关闭。
在这期间,nginx无法将php文件转交给php-fpm处理,所以cpu会降至很低(不用处理php,更不用执行sql),而负载会升至很高(关闭和开启children、nginx等待php-fpm),网卡流量也降至很低(nginx无法生成数据传输给客户端)) O" ], O w$ q/ v1 X* D
解决问题很简单,增加children的数量,并且将 max_requests 设置未 0 或者一个比较大的值,重启php-fpm
四、
nginx 502错误的原因比较多,是因为在代理模式下后端服务器出现问题引起的。这些错误一般都不是nginx本身的问题,一定要从后端找原因!但nginx把这些出错都揽在自己身上了,着实让nginx的推广者备受置疑,毕竟从字眼上理解,bad gateway?不就是bad nginx吗?让不了解的人看到,会直接把责任推在nginx身上,希望nginx下一个版本会把出错提示写稍微友好一些,至少不会是现在简单的一句502 Bad Gateway,另外还不忘附上自己的大名。
502错误最通常的出现情况就是后端主机当机,当然还有。在upstream配置里有这么一项配置:proxy_next_upstream,这个配置指定了nginx在从一个后端主机取数据遇到何种错误时会转到下一个后端主机,里头写上的就是会出现502的所有情况拉,默认是error timeout,error就是当机、断线之类的,timeout就是读取堵塞超时,比较容易理解。我一般是全写上的:
proxy_next_upstream error timeout invalid_header http_500 http_503;
不过现在可能我要去掉http_500这一项了,http_500指定后端返回500错误时会转一个主机,后端的jsp出错的话,本来会打印一堆stacktrace的错误信息,现在被502取代了。但公司的程序员可不这么认为,他们认定是nginx出现了错误,我实在没空跟他们解释502的原理了……
invalid_header我也没认真查清到底指的什么,我也很想先把它弄下来
503错误就可以保留,因为后端通常是apache resin,如果apache死机就是error,但resin死机,仅仅是503,所以还是有必要保留的
昨日,有朋友问我,他将Web服务器换成Nginx 0.6.31 + PHP 4.4.7(FastCGI)后,有时候访问会出现“502 Bad Gateway”错误,如何解决。
我让按照以下两个步骤去解决,最后在第2步中将FastCGI的timeout时间增加为300,问题解决:
PS:比较羡慕迅雷的Web服务器,16G内存。
1、查看当前的PHP FastCGI进程数是否够用:
如果实际使用的“FastCGI进程数”接近预设的“FastCGI进程数”,那么,说明“FastCGI进程数”不够用,需要增大。
2、部分PHP程序的执行时间超过了Nginx的等待时间,可以适当增加nginx.conf配置文件中FastCGI的timeout时间,例如:
http
{
......
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
......
}
......
发表评论
-
重启Drac卡
2013-01-10 22:54 1494Drac重启。 有个卡的WEb也连不上,重启后正常了。 s ... -
Nginx下WordPress设置Rewrite(含二级域名跳转)
2011-09-28 16:05 15988Apache 在Apache下,利用mod_rewrite来实 ... -
NFS 性能调优
2011-10-10 23:11 1681NFS 性能调优 在 NFS 网络中,服务器是调优的主要目标, ... -
NFS 檔案分享
2011-09-27 03:13 01 NFS 的用途 2 掛 ... -
NFS,Memcached,Tokyo tyrant实现session共享性能测试
2011-09-27 03:04 0<p>在我负责的某个 ... -
php open_basedir安全与性能的取舍
2011-09-27 02:53 9672open_basedir 严重影响PHP I/O性能 这是昨 ... -
php include 和io流的效率
2011-09-27 02:36 2529之前看了,平凡的世界大大的一篇文章 <a href=&q ... -
eAccelerator 配置(PHP代码加速器)
2011-09-27 02:33 1545eAccelerator是一个自 ... -
php-cgi日志php-fpm出现setrlimit(RLIMIT_NOFILE) failed 错误
2011-09-15 18:40 12270tail -n 100 php-fpm.log[WARNI ... -
Centos下安装rrdtool
2011-01-29 12:46 1533yum install ruby*rpm -ivh rr ... -
Linux环境下不重新编译php添加扩展模块
2011-01-29 12:41 3938添加ftp模块为例子进入源码目录cd php-5.2.8 ... -
IIS出现HTTP500内部错误以及COM+8004e00f错误的解决办法(MSDTC) COM+无法与Microsoft分布式事务协调程序交谈
2010-07-23 11:38 1640IIS出现HTTP500内部错误以 ... -
应用程序池 'DefaultApppool' 提供服务的进程意外终止
2010-06-23 17:13 4768问题描述:1,机器中毒,杀过毒。2,IIS6方式重启服务是正常 ... -
nfs 共享session方式 session_start 慢 问题解决
2010-06-13 15:30 4448近几天php搭建了个新的运行平台,但出了个问题, ... -
nginx的rewrite 参数和例子
2010-06-11 14:19 2156正则表达式匹配,其中: * ~ 为区分大小写匹配 * ... -
no input file specified nginx 多个虚拟主机
2010-06-11 03:12 11206今天配置nginx rewrite 的时候遇到一个问题,就是访 ... -
Nginx的Rewrite配置
2010-06-08 01:21 1943Nginx的Rewrite经过网上 ... -
nginx二级域名匹配根目录下的子文件夹
2010-05-24 00:23 12189绑定域名 server_name *.abcd.com; 获取 ... -
nginx虚拟目录(alias与root的区别)
2010-05-24 00:20 2379nginx貌似没有虚拟目录的说法,因为它本来 ... -
Centos yum nginx php mysql 安装
2010-05-22 02:28 3759系统 Centos 5.0+首先,更新PH ...
相关推荐
Nginx 502 bad gateway问题的解决方法,希望能帮忙大家
Nginx常见故障Nginx 502 Bad Gateway解决方案汇总,主要针对phpWeb服务器,有需要的朋友可以下载收藏
本篇文章是对Nginx 502 Bad Gateway错误的解决方法进行了详细的分析介绍,需要的朋友参考下
nginx+php-fpm解决502 Bad Gateway.zip
以下是小编搜集整理的一些Nginx 502错误的排查方法,供参考: Nginx 502错误的原因比较多,是因为在代理模式下后端服务器出现问题引起的。这些错误一般都不是nginx本身的问题,一定要从后端找原因!但nginx把这些...
Nginx 502 Bad Gateway 的错误已经遇到好几次了,这里做一下记录,备忘哈哈。 会有好多种情况出现502错误,下面我们分情况来说一下。 一、fastcgi缓冲区设置过小 出现错误,首先要查找nginx的日志文件,目录为/...
主要介绍了Nginx 502 Bad Gateway错误常见的4种原因和解决方法,本文适用FastCGI环境,其中多数原因通过配置相关参数即可解决,需要的朋友可以参考下
解决这两个问题其实是需要综合思考的,一般来说Nginx 502 Bad Gateway和php-fpm.conf的设置有关,而Nginx 504 Gateway Time-out则是与nginx.conf的设置有关。 Nginx 504 Gateway在之前的文章中已经记录
fastcgi_send_timeout 300; fastcgi_read_timeout 300;... 您可能感兴趣的文章:Nginx 502 bad gateway和Nginx 504 Gateway Time-out错误解决方法 错误解决办法Nginx 遇到502 Bad Gateway 自动重启的脚本代
主要介绍了nginx加php-fpm环境中出现502 bad gateway错误的5种解决方法,总结归纳服务器出现502错误的原因多数为连接过多和脚本超时,本文总结了5种解决方法,需要的朋友可以参考下
nginx安装wordpress 502 Bad Gateway.docx
常见的Nginx 502 Bad Gateway解决办法如下: Nginx 502错误情况1: 网站的访问量大,而php-cgi的进程数偏少。 针对这种情况的502错误,只需增加php-cgi的进程数。具体就是修改/usr/local/php/etc/php-fpm.conf ...
nginx+php 出现502 bad gateway,一般这都不是nginx的问题,而是由于 fastcgi或者php的问题导致的,常见的有以下几种。 1. php.ini 的memory_limit 过小(如果有个别php程序进程需要占用极大内存时这个必须注意) 2....
今天登陆博客,显示502 bad gateway,NGINX最烦人的地方就是经常会出现这个错误,由于我并不打算在技术上花费过多的时间,所以一般是遇到了相关问题,通过搜索引擎解决后即可,不会去深究。废话不多说,说说我的坎坷...
也可以通过查看Nginx日志文件定位到Nginx重启失败的原因,Nginx日志文件的路径一般在:/var/log/nginx目录下 总结 文章没什么技术含量,每天都攒一点基础知识 您可能感兴趣的文章:nginx centos 服务开机启动设置...
我让按照以下两个步骤去解决,最后在第2步中将FastCGI的timeout时间增加为300,问题解决: PS:比较羡慕迅雷的Web服务器,16G内存。 1、查看当前的PHP FastCGI进程数是否够用: netstat -anpo | grep “php-cgi” | ...