全球主机交流论坛

标题: 用了大猫的LNMP 在安装一个半月左右 出现502 已经出现三次了 [打印本页]

作者: berliz    时间: 2010-10-3 15:11
标题: 用了大猫的LNMP 在安装一个半月左右 出现502 已经出现三次了
论坛设置的 在线保持时间(分钟):360
我在想这个应该不影响服务器的 而且我是linode 360  现在升级为512M内存了
作者: forags    时间: 2010-10-3 15:12
才三次啊
很不错的了
呵呵
作者: 小夜    时间: 2010-10-3 15:13
如果一直502,可以用cron设置lnmp定时restart。
我一个小偷站,因为要频繁读取SOSO数据。当IP过3W以后,就经常502,我设置lnmp每隔1小时重启一遍,好多了。最起码,假如12.30的时候502了,那13点整就会恢复。这样不会造成长时间502。

[ 本帖最后由 小夜 于 2010-10-3 15:14 编辑 ]
作者: berliz    时间: 2010-10-3 15:13
之前怎么改都不行 后来就从新安装
中午发现又挂了 刚才从其vps后 又挂了~~
作者: berliz    时间: 2010-10-3 15:14
标题: 回复 3# 的帖子
这命令怎么用?在哪配置呢?
作者: domin    时间: 2010-10-3 15:16
才三次而已...
解决很简单. 每分钟自动检测一次, 如出现502就自动重启
作者: 小夜    时间: 2010-10-3 15:16
原帖由 berliz 于 2010-10-3 15:14 发表
这命令怎么用?在哪配置呢?

crontab -e

然后,输入:

00 01 * * * /root/lnmp restart
00 02 * * * /root/lnmp restart

前面的是时间

分钟 小时 * * * 命令行,这样就可以了。

设置好以后,可以用crontab -l 检查一下是否成功。
作者: Cat    时间: 2010-10-3 15:19
默认只开5个进程..可能是处理不过来.试试开10个..

修改
/usr/local/php/etc/php-fpm.conf

<value name="max_children">5</value>

将5改为10试试....512内存..开到10都OK的
作者: 小夜    时间: 2010-10-3 15:20
CAT哥,这个些最基本的,应该都会改吧?
我512内存的,通常都开16个呢。
作者: berliz    时间: 2010-10-3 15:21
0 */1 * * * /root/lnmp restart
貌似这样就可以了
作者: 小夜    时间: 2010-10-3 15:23
原帖由 berliz 于 2010-10-3 15:21 发表
0 */1 * * * /root/lnmp restart
貌似这样就可以了

我烂七八糟的命令好多呢。像定时备份数据库,发邮件。定时备份网站,然后FTP。
另外,像晚上高峰期,我设置15分钟重启一次。半夜的时候人少,3个小时重启一次。
所以,我都是按照设置好的时间,分钟,小时,这样排序的。修改的时候,也一目了然。
作者: Cat    时间: 2010-10-3 15:25
放到crontab里一分钟执行一次。url和cmd根据自己的改。
原理就是用curl获取HTTP头,发现502状态码就执行重启php-fpm的命令。
总感觉PHP用来作系统管理很脆弱,哪位同学试过了不妨反馈下。需要的话可以继续改进。
  1. #!/usr/bin/php
  2. <?
  3. $url = 'http://www.diahosting.com';
  4. $cmd = '/usr/local/php/sbin/php-fpm restart';

  5. for($i = 0; $i < 5; $i ++){
  6.         $exec = "curl --connect-timeout 3 -I $url 2>/dev/null";
  7.         $res = shell_exec($exec);

  8.         if(stripos($res, '502 Bad Gateway') !== false){
  9.                 shell_exec($cmd);
  10.                 exit();
  11.         }
  12. }
  13. ?>
复制代码
http://fd.vvwvv.eu.org/viewthread.php?tid=19208&page=1#pid235729
作者: berliz    时间: 2010-10-3 15:40
标题: 回复 7# 的帖子
00 01 * * * /root/lnmp restart
00 02 * * * /root/lnmp restart
这个是24小时制的吗?
作者: 组长    时间: 2010-10-3 15:45
在帮 猫 宣传么
作者: berliz    时间: 2010-10-3 15:46
貌似我一直都不会用 vi 命令
一输入就有问题 也不能粘贴

底部提示:  
"/tmp/crontab.XXXX6TC3ht" [converted] 0L, 0C

去直接去修改这个文件就可以了把

其次就是12楼 cat哥说的 把这句话放到命令里 每分钟执行一次 完整的应该是这样的吗?
  1. 01 */* * * * /root/lnmp restart
  2. #!/usr/bin/php
  3. <?
  4. $url = 'http://www.diahosting.com';
  5. $cmd = '/usr/local/php/sbin/php-fpm restart';

  6. for($i = 0; $i < 5; $i ++){
  7.         $exec = "curl --connect-timeout 3 -I $url 2>/dev/null";
  8.         $res = shell_exec($exec);

  9.         if(stripos($res, '502 Bad Gateway') !== false){
  10.                 shell_exec($cmd);
  11.                 exit();
  12.         }
  13. }
  14. ?>
复制代码

作者: Cat    时间: 2010-10-3 15:47
标题: 回复 14# 的帖子
看他的命令.就知道不是用我的安装包了
作者: 小夜    时间: 2010-10-3 15:47
原帖由 berliz 于 2010-10-3 15:40 发表
00 01 * * * /root/lnmp restart
00 02 * * * /root/lnmp restart
这个是24小时制的吗?

对,24小时制。
作者: Cat    时间: 2010-10-3 15:52
标题: 回复 15# 的帖子
将代码保存为 502.sh
然后加权限chmod +x  502.sh

最后放到crontab里面,例如:

*/1 * * * * /home/502.sh

就可以每分钟检测一次了.
作者: 小夜    时间: 2010-10-3 15:56
原帖由 Cat 于 2010-10-3 15:47 发表
看他的命令.就知道不是用我的安装包了

嗯嗯,因为我一开始的时候,用的就是他的。我除了女人外,别的都喜欢旧的。
lnmp的虚拟主机文件,还有目录结构都是一样的。我换来换去,也都是直接打包。如果用了猫侠的,就要改好多文件,我还不会弄,我也是个菜鸟。
作者: berliz    时间: 2010-10-3 16:36
我非常确定及肯定 用的cat的包 哈哈~
上面的那个命令 是我瞎拼的

我刚才从启之后 nginx不会从启  手动从启后 论坛还是出现502


]# /usr/local/nginx/sbin/nginx -s reopen
[error]: open() "/usr/local/nginx/nginx.pid" failed (2: No such file or directory)
# /usr/local/nginx/sbin/nginx
# /usr/local/nginx/sbin/nginx -s reopen
# /etc/rc.d/init.d/mysql start
Starting MySQL. ERROR! Manager of pid-file quit without updating file.
作者: berliz    时间: 2010-10-3 16:49
Discuz! info: Can not connect to MySQL server

Time: 2010-10-3 4:48pm
Script: /index.php

Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Errno.: 2002
作者: sunday    时间: 2010-10-3 16:55
mysql 没有启动吧
作者: berliz    时间: 2010-10-3 16:58
标题: 回复 22# 的帖子
# /etc/rc.d/init.d/mysql restart
ERROR! MySQL manager or server PID file could not be found!
Starting MySQL.. ERROR! Manager of pid-file quit without updating file.
作者: Freedown    时间: 2010-10-3 17:04
已经有 MYSQL的...KILL掉再试试重启
作者: berliz    时间: 2010-10-3 17:23
标题: 回复 24# 的帖子
不会kill ········
作者: berliz    时间: 2010-10-3 17:24
ps aux | grep -i mysql
root      2553  0.1  0.2   2460  1156 ?        S    05:18   0:00 /bin/sh /etc/rc3.d/S64mysql start
root      2562 40.2  0.7   5276  4052 ?        R    05:18   2:06 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/var --pid-file=/usr/local/mysql/var/li96-51.pid
root     20408  0.0  0.1   1836   512 ttyp0    S+   05:23   0:00 grep -i mysql
[root@li96-51 ~]#
[root@li96-51 ~]# kill 2562
[root@li96-51 ~]# /etc/rc.d/init.d/mysql start
Starting MySQL. ERROR! Manager of pid-file quit without updating file.
作者: mojave    时间: 2010-10-3 17:27
我用猫的挺好的
作者: berliz    时间: 2010-10-3 18:12

作者: 绝对菜鸟    时间: 2010-10-3 18:35
原帖由 Cat 于 2010-10-3 15:19 发表
默认只开5个进程..可能是处理不过来.试试开10个..

修改
/usr/local/php/etc/php-fpm.conf

5

将5改为10试试....512内存..开到10都OK的


512M的开20个 比较合适  我是VZ的
作者: zyypp    时间: 2010-10-3 19:01
原帖由 小夜 于 2010-10-3 15:20 发表
CAT哥,这个些最基本的,应该都会改吧?
我512内存的,通常都开16个呢。


真的有人不会改这个的 而且不是一两个
虽然这应该是常识~~
作者: 大飞机    时间: 2010-10-3 19:12
2楼采集的  赐教站点学习学习吧
作者: zyypp    时间: 2010-10-3 19:53
  1. #!/bin/sh
  2. LANG=C
  3. server_url_list=( \
  4. http://fd.vvwvv.eu.org \
  5. http://fd.vvwvv.eu.org \
  6. )
  7. cmd_to()
  8. {
  9.         /usr/local/php/sbin/php-fpm restart
  10. }
  11. server_url_len=${#server_url_list[*]}
  12. i=0
  13.         while  [ $i -lt $server_url_len ]
  14.         do
  15.         code=`curl -I -k /dev/null -s ${server_url_list[$i]}/ | grep 'HTTP' | awk '{print $2}'`
  16.         if [ $code -ne '502' ] || [ $code -ne '505' ]; then
  17.                 exit;
  18.         else
  19.                 cmd_to;
  20.         fi
  21. let i++
  22. done
复制代码
试试这个脚本




欢迎光临 全球主机交流论坛 (https://fd.vvwvv.eu.org/) Powered by Discuz! X3.4