寻觅生命中的那一片浅草......

每日存档 六月 25th, 2009

Nginx 502错误排查

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

1.查看FastCGI进程是否已经启动
NGINX 502错误的含义是sock、端口没被监听造成的。我们先检查fastcgi是否在运行

2.检查系统Fastcgi进程运行情况
除了第一种情况,fastcgi进程数不够用、php执行时间长、或者是php-cgi进程死掉也可能造成nginx的502错误
运行以下命令判断是否接近FastCGI进程,如果fastcgi进程数接近配置文件中设置的数值,表明worker进程数设置太少
netstat -anpo | grep “php-cgi” | wc -l

3.FastCGI执行时间过长
根据实际情况调高以下参数值
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;

4.头部太大
nginx和apache一样,有前端缓冲限制,可以调整缓冲参数
fastcgi_buffer_size 32k;
fastcgi_buffers 8 32k;
如果你使用的是nginx的负载均衡Proxying,调整
proxy_buffer_size  16k;
proxy_buffers      4 16k;
参见:http://www.ruby-forum.com/topic/169040

5.https转发配置错误
正确的配置方法
server_name www.mydomain.com;
location /myproj/repos {
set $fixed_destination $http_destination;
if ( $http_destination ~* ^https(.*)$ )
{
set $fixed_destination http$1;
}
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Destination $fixed_destination;
proxy_pass http://subversion_hosts;
}
参见:http://www.ruby-forum.com/topic/169040

当然,还要看你后端用的是哪种类型的FastCGI,我用过的有php-fpm,流量约为单台机器40万PV(动态页面), 现在基本上没有碰到502。

转载自:http://www.jefflei.com/post/1049.html

同时连接数需求量计算公式

记不清是从那位兄弟伙的blog中看到这个公式,觉得很有用

每日PV数 / 86400秒 * 10个派生连接数 * 5秒内响应 * 5倍峰值) / Web服务器台数 = 同时连接数

转载自:http://www.ynog.com/index.php/archives/296

摸索了个nginx 502 Bad Gateway 的一种解决方法

昨天装上nginx后在高负载的时候,论坛上传图片或者执行较长时间脚本的时候就不停的

出现502 Bad Gateway ,网上搜了,大多数都是张大师的那篇解决方案,他的解决方案


http
{
……
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
……
}
增加了fastcgi的相应请求时间。但是我在实际中碰到了这个问题,设置到500,还是会出

现,只是比我设置120的时候要少一些。后来发现主要是在一些post或者数据库操作的时

候出现这种情况,静态页面是不会出现的。
反复的查问题,调试,也加大了CGI的进程数。
<value name=”max_children”>128</value>
256再加上去可能会变得很慢。占用内存大了。
在php-fpm.conf设置中还有一项,可能当时没注意到,无意中改了这个值。
request_terminate_timeout
这个值是max_execution_time,就是fast-cgi的执行脚本时间。
<value name=”request_terminate_timeout”>0s</value>
0s为关闭,就是无限执行下去。(当时装的时候没仔细看就改了一个数字)
发现,问题解决了,执行很长时间也不会出错了。
优化fastcgi中,还可以改改这个值<value

name=”process_control_timeout”>5s</value> 。看看效果
终于发现502的错误其实不是nginx的问题,哈哈
php-cgi进程数不够用、php执行时间长、或者是php-cgi进程死掉,都会出现502错误

转载自:http://blog.nowans.com/content/log.2008.10.29.229.html

Glype:虚拟主机兼职在线代理

Eureka 写道 “不少使用海外虚拟主机的用户同时也有使用代理的需求,除了Tor等专门配合软件使用的代理外,可以使用SSH作代理,不过SSH不是每个主机商都支持。 如果你有海外虚拟主机并且有使用代理的需求,并且虚拟主机有充足的流量,则可以考虑使用基于PHP的Glype代理。 Glype下载后解压缩传到服务器上即可。使用起来很方便,并且能够对URL甚至网页内容进行编码以避过监听,也可以选择是否开启Cookie和脚本支持。 相比同类PHP代理,Glype提供了一个后台界面方便进一步设置管理,如开启缓存、日志、续传等。 对于blogger来说,你可以把Glype作为一个私人代理服务,这样速度和可靠性有保证,而且本地无需安装额外的软件; 对于没有合适空间的用户,也可以试试官方网站给出的一些在线代理。”

转载自:http://solidot.org/internet/09/03/31/0134210.shtml

CentOS 5.3下安装ispCP后proftpd启动失败和无法登陆的故障

在CentOS5.3下安装ispCP后,进入管理后台,建立用户和ftp帐号,一开始proftpd无法启动,一启动就失败,后来修改过后终于可以启动 了,但是启动后无论如何都无法使用ftp登录建立好的网站,采用域名访问和使用PUTTY登录服务器查看,显示网站已经建立。经过一番查看后,终于把问题 解决了。
先解决无法启动proftpd的问题,因为ispCP自带的proftpd的配置文件与目前安装的proftpd文件在版本上可能有一些出入,而安装 ispCP的过程中,将使用ispCP的模板来替换原有的proftpd配置文件,最终导致出现启动失败,启动失败的问题出在这一行:
DisplayFirstChdir          message
我们只要在他前面增加个“#”来屏蔽这行配置或者将其删除即可,可改为如下:
DisplayChdir          message
而启动后不能FTP,老是用户验证失败的问题,经过仔细查看,最后目光落在proftpd的配置文件/etc/proftpd.conf这个文件中的一行,内容如下:
AuthOrder                  mod_sql.c mod_auth_pam.c* mod_auth_unix.c
这里分别采用了几种验证方式,莫非因为验证方式过多引起的??于是把多余的验证方式删除,改成如下内容:
AuthOrder                  mod_sql.c mod_auth_pam.c mod_auth_unix.c
再次FTP登录,结果成功了。我猜想可能是由于登录的验证方式过多,而且优先级不同,结果造成了验证无法通过。当然,这种猜想不一定正确,但是确实解决了无法ftp的问题。

转载自:http://www.ispcpcn.com/article/15/

2009年六月
« 5月   7月 »
1234567
891011121314
15161718192021
22232425262728
2930