Nginx 504 Gateway Time-out和502 Bad Gateway

在CentOS下配置lnmp组合基本上用的都是同样的配置文件,一直都没出现过问题,可最近在一个vps上安装同样的环境之后,网站在线10多人就出 现了打开速度非常缓慢的情况,有好几次都是直接达到了nginx中设置的脚本最大超时时间300秒,结果导致nginx往客户端浏览器发送了一个504 Gateway Time-out的错误代码,分析了之后改动了几处配置文件,终于避免了该情况的出现。

从错误代码基本可以确定跟nginx本身无关,主要是提交给php-fpm的请求未能正确反馈而导致,一般情况下,提交动态请求的时候,nginx会直接把 请求转交给php-fpm,而php-fpm再分配php-cgi进程来处理相关的请求,之后再依次返回,最后由nginx把结果反馈给客户端浏览器,但 我这个vps目前跑的是个纯php应用内容,实际上用户所有的请求都是php请求,有的耗费时间比较久,php-cgi进程就一直都被用满,而php- fpm本身的配置文件只打开了10组php-cgi进程,这样的话在线用户稍微多的话就会导致请求无法被正常处理而出错。

大概分析出了原 因,下面做就比较容易了,首先是更改php-fpm的几处配置:

把max_children由之前的10改为现在的30,这样就可以保证 有充足的php-cgi进程可以被使用;
把request_terminate_timeout由之前的0s改为60s,这样php-cgi进程 处理脚本的超时时间就是60秒,可以防止进程都被挂起,提高利用效率。

接着再更改nginx的几个配置项,减少FastCGI的请求次 数,尽量维持buffers不变:

fastcgi_buffers由 4 64k 改为 2 256k;
fastcgi_buffer_size 由 64k 改为 128K;
fastcgi_busy_buffers_size 由 128K 改为 256K;
fastcgi_temp_file_write_size 由 128K 改为 256K。

好了,重新加载php-fpm和nginx的配置,再次测试,至今两周时间内没有再出现504 Gateway Time-out的情况,算是达到效果了。
另外,php-fpm的默认静态处理方式会使得php-cgi的进程长期占用内存而无法释放,这也是导致nginx出错的原因之一,因此可以将php-fpm的处理方式改成apache模式。
apache-like
从更改完毕到现在的测试表明上述方式的效果还是很明显的,并没有发现一次Nginx502 bad gateway或504 Gateway Time-out错误。当然,如果你的VPS或者服务器的性能足够好可以根据具体情况不必做无谓的改动。

关于lnmp一键安装包的nginx 502 Bad Gateway错误
第一种原因:目前lnmp一键安装包比较多的问题就是502 Bad Gateway,大部分情况下原因是在安装php前,脚本中某些lib包可能没有安装上,造成php没有编译安装成功。

解决方法:
可以尝试根据lnmp一键安装包中的脚本手动安装一下,看看是什么错误导致的,在网上搜索一下,或者把错误信息发上来。我们给你分析一下错误原因。

第二种原因:
在php.ini里,eaccelerator配置项一定要放在Zend Optimizer配置之前,否则也可能引起502 Bad Gateway

第三种原因:
在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 将其中的max_children值适当增加。
也有可能是max_requests值不够用。

第四种原因:
php执行超时,修改/usr/local/php/etc/php.ini 将max_execution_time 改为300

第五种原因:
磁盘空间不足,如mysql日志占用大量空间http://www.vpser.net/manage/delete-mysql-mysql-bin-0000-logs.html

第六种原因:
查看php-cgi进程是否在运行
1、调整php-fpm.conf的相关设置(lnmpa没有此文件)
80
30s
2、调整nginx.conf的相关设置
fastcgi_connect_timeout 600;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
fastcgi_buffer_size 256k;
fastcgi_buffers 16 256k;
fastcgi_busy_buffers_size 512k;
fastcgi_temp_file_write_size 512k;
3、编辑:/usr/local/apache/conf/extra/下的httpd-vhosts.conf文件
查找:
php_admin_value open_basedir
修改为:
php_admin_value open_basedir “/home/wwwroot:/tmp/:/var/tmp/:/proc/:/etc/”
(#或者直接将它注释掉)
然后,重启LNMPA。
/root/lnmpa restart
打开/usr/local/php/etc/,编辑php.ini文件:
max_execution_time 设置为0

LNMP一键安装包的Nginx 502 Bad Gateway错误可能原因及解决方法[转]

第一种原因:目前lnmp一键安装包比较多的问题就是502 Bad Gateway,大部分情况下原因是在安装php前,脚本中某些lib包可能没有安装上,造成php没有编译安装成功。可以看一下是否存在/usr/local/php/sbin/php-fpm ,如果没有肯定没安装成功
解决方法:
可以尝试根据lnmp一键安装包中的脚本手动安装一下,看看是什么错误导致的,在网上搜索一下,或者把错误信息发上来。如果实在不会提供按http://lnmp.org/install.html这个安装时的lnmp.log日志文件(可以用winscp登陆下载lnmp.log,压缩并上传到本论坛),没有错误信息我们没法说什么原因。

第二种原因:
在php.ini里,eaccelerator配置项一定要放在Zend Optimizer配置之前,否则也可能引起502 Bad Gateway

第三种原因:
在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpm.conf (lnmpa没有此文件)将其中的max_children值适当增加。
也有可能是max_requests值不够用。

第四种原因:
php执行超时,修改/usr/local/php/etc/php.ini 将max_execution_time 改为300

第五种原因:
磁盘空间不足,如mysql日志占用大量空间清理一下磁盘上的文件,有部分剩余空间,重启即可恢复。

第六种原因:
查看php-cgi进程是否在运行

第七种原因:
将nginx.conf里的
fastcgi_connect_timeout
fastcgi_send_timeout
fastcgi_read_timeout都调大一点。

第八种可能原因:http://bbs.vpser.net/thread-1654-1-1.html

九、也可以尝试将unix套接字改成tcp/ip的,修改/usr/local/php/etc/php-fpm.cnf 里设置/tmp/nginx.socket改成127.0.0.1:9000,同时/usr/local/nginx/conf/nginx.conf 及其/usr/local/nginx/conf/vhost/ 下面的虚拟主机配置里的fastcgi_pass unix:/tmp/php-cgi.sock; 替换为fastcgi_pass 127.0.0.1:9000; 之后重启试试。

十、如果虚拟主机的日志文件过大也可能会造成502问题。
建议定期清空一下虚拟主机的日志文件。

十一、有些程序或者程序的主题有死循环或其他非常占用资源的代码也可能会引起502,可以尝试暂时注释掉可能的主机的配置文件,重启看看是否还会502。

十二、如果以上方法都试过,但还有时会出现502错,可以尝试添加502自动重启脚本:http://chenyouyi.com/285

lnmpa 502 Bad Gateway 自动重启脚本[转]

安装lnmpa后,经常会有502错误。按vpser上的检查问题也无法解决,只好用以下脚本解决问题。顺便说下,我重新安装了VPS,首先更新了我的系统,然后再装lnmpa便极少出现502错误 了,看来再安装的时候还是尽量避免出现问题,否则很容易出现502。 下面是脚本内容,保存为502fix.sh,然后
chmod +x /root/502fix.sh

脚本内容:
[cce]
#!/usr/bin/php
<?
$url = ‘http://11.111.112.88’;
$cmd = ‘/etc/init.d/httpd restart’;

for($i = 0; $i < 5; $i ++){
$exec = “curl –connect-timeout 3 -I $url 2>/dev/null”;
$res = shell_exec($exec);

if(stripos($res,’502 Bad Gateway’) !== false){
shell_exec($cmd);
exit();
}
}
?>
[/cce]
记得把IP或网址改为你自己VPS的。
原理就是用curl获取HTTP头,一旦502 就重启apache。

然后添加下定时任务
[cce]
crontab -e

*/1 * * * * /root/502fix.sh
[/cce]

vi编辑器,首先按i键,在文件末尾按crontab命令格式输入 */1 * * * * /root/502fix.sh,再按ESC键,按Shift+:,输入wq回车存退出

 

定时内容为,每一分钟检查一次。
crontab 教程:http://www.vpser.net/manage/crontab.html

Nginx 502 Bad Gateway 自动重启脚本[转]

推荐脚本
需要确保系统已安装curl,centos可以执行:yum install curl,debian/ubuntu可以执行:apt-get install curl

用winscp或vi有或nano在/root目录下创建502.sh 内容如下:
[cce]
#!/bin/bash
# author: licess
# website: http://www.lnmp.org

CheckURL=”http://chenyouyi.com”

STATUS_CODE=`curl -o /dev/null -m 10 –connect-timeout 10 -s -w %{http_code} $CheckURL`
#echo “$CheckURL Status Code:\t$STATUS_CODE”
if [ “$STATUS_CODE” = “502” ]; then
/etc/init.d/php-fpm restart
fi
[/cce]
chmod +x /root/502.sh

 

用crontab 一分钟执行一次。上面的http://chenyouyi.com改成你的地址,如果该页面是静态,需换成以php的页面地址。
crontab 教程:http://www.vpser.net/manage/crontab.html
原理就是用curl获取HTTP头,发现502状态码就执行重启php-fpm的命令。

升级到WordPress 3.4.2 主题不见了 不能编辑主题

刚刚升级到WordPress 3.4.2

发现主题全部看不到了,没法切换主题

也不能编辑当前主题文件 提示:“噢,没有这个文件。请重新检查文件名,然后再试。谢谢。”

开始以为是wordpress的问题,在线重装了一边,后来发现还是不行。

解决办法

在Google搜索一番之后发现了问题的根源,原来是升级的时候,我用的是LNMP 0.9 一键安装包,PHP默认禁用了很多的函数,导致Wordpress不能正常列目录影响了主题功能的使用。

知道原因之后就好改了。
找到PHP.ini的目录:
修改文件
[cce]
/usr/local/php/etc/php.ini
[/cce]

把其中disable_functions 项目后面的
Scandir函数给删除。

如果改完上传不上去,是因为不可写,执行chmod 777 /usr/local/php/etc/php.ini 再上传即可

改完重启下PHP
service php-pfm restart
Wordpress就正常使用主题功能了。

IIS出现The specified module could not be found解决方法

打开IIS 信息服务,在左侧找到自己的计算机,点右键,选择属性,在主属性中选编辑,打开“目录安全性”选项卡,单击“匿名访问和验证控制”里的“编辑”按钮,在弹出的对话框中确保只选中了“匿名访问”和“集成Windows验证”两项,单击匿名访问中的编辑,去掉“允许IIS控制密码”;
ok了。

转自:http://www.cnblogs.com/hanxianlong/archive/2008/10/25/1319269.html

忘记帝国CMS后台密码 该怎么办?(图文教程)

帝国网站管理系统英文名EmpireCMS,简称“帝国CMS”,忘记帝国CMS网站后台登录密码时,

可以通过phpmyadmin软件 修改网站数据库中的phome_enewsuser数据表进行密码重置操作:

一、【网站使用帝国CMS5.0版本以及帝国CMS版本号小于5.0版本时】:

用phpmyadmin修改phome_enewsuser表,把password字段的值设为:e10adc3949ba59abbe56e057f20f883e

后台登录密码就是:123456

二、【网站使用帝国CMS5.1版本以及帝国CMS版本号大于5.1版本时】:

用phpmyadmin修改phome_enewsuser表里的记录:把password字段的值设为:“322d3fef02fc39251436cb4522d29a71”;把salt字段的值设为:“abc”.

后台登录密码就是:123456

以下为操作图示:

以下为操作图示:

EmpireCMS5.0版本以及EmpireCMS版本号小于5.0的版本 操作图示

EmpireCMS5.1版本以及EmpireCMS版本号大于5.1的版本 操作图示

phpmyadmin是MySQL的数据库管理工具,可访问官方网站下载:www.phpmyadmin.net

帝国cms模板标签—笔记

文章简介调用:灵动标签<?=$bqr[‘smalltext’]?>

文章简介调用:灵动标签 可以控制简介字数 <?=esub($bqr[smalltext],50)?>

文章标题图片:<?=$bqr[‘titlepic’]?>

站点标题:<?=$public_r[sitename]?>

帝国cms灵动标签没有标题图片的时候显示默认图片:

src=”<?=$bqr[titlepic]?$bqr[titlepic]:’不存在显示的图片地址.gif’ ?>”

帝国cms:文章没有设置标题图片就显示指定的图片

 

帝国cms随机调用信息

按表随机调用:
[ecmsinfo]”select * from phome_ecms_news order by rand() desc limit 6 “,6,18,0,24,2,0[/ecmsinfo]

loop随机方法:

[e:loop={“select * from [!db.pre!]ecms_news order by rand() desc limit 15″,10,24,0}]

<li><a href=”<?=$bqsr[titleurl]?>” title=”<?=$bqr[‘title’]?>”><img src=”<?=$bqr[‘titlepic’]?>” alt=”<?=$bqr[‘title’]?>” width=”130″ height=”110″ /><span class=”title”><?=esub($bqr[title],20)?></span></a></li>
[/e:loop]

 

 

随机调用本栏目:
[ecmsinfo]”select * from phome_ecms_news where classid=’$GLOBALS[navclassid]’ order  by  rand()  desc  limit 6″,6,18,0,24,2,0[/ecmsinfo]

其中:news为表名,两个6表示调用的数量为6条,18表示标题取18个字符,第一个0表示不显示栏名名,随机调用的操作类型固定为24,2表示模板ID,第二个0标题图片不存在也调用…………,sql中栏目id要用终极栏目id

关键词调用文章
[e:loop={“select * from phome_ecms_news where title like ‘%关键词%’ and checked=1 order by newstime desc limit 10″,10,24,0}]
[/e:loop]

[e:loop={‘news’,10,18,0,”title like ‘%关键词%'”,”}]

[/e:loop]

第一句是在任何一个版本中都可以用

第二句在帝国6.6中可以用

 

如果想要调用多个关键词的文章就用or

[e:loop={‘news’,10,18,0,”title like ‘%关键词%’ or title like ‘%关键词2%'”,”}]

[/e:loop]

 

帝国cms栏目别名调用:

[e:loop={“select bname from phome_enewsclass where classid=’$GLOBALS[navclassid]'”,1,24,0}]
<?=$bqr[bname]?>
[/e:loop]

或者用<?=$class_r[$GLOBALS[navclassid]][bname]?>  未鉴定是否有效,好像是封面模版用不了

 

网站十八大背景代码、背景图片

网站十八大背景代码

[cce]
<style>
body { background-image:url(18da.jpg); background-repeat:no-repeat; background-position: top center; padding-top:80px;}
.main01{clear:both;width:778px;margin:10px auto 0px auto;overflow:hidden;}
.main01 .left {float: left;width: 300px;}
</style>

[/cce]

background-image:url(18da.jpg);

这里18da.jpg换成图片的路径

十八大网站背景图片
http://chenyouyi.com/wp-content/uploads/2012/10/18da.jpg

喜迎中共第十八次全国代表大会