apache 和 nginx 切换

回复 收藏
背景:web服务器上默认跑apache,但是偶尔会有负载超级高的时候,(可能是配置了华盾),idc机房又要求必须使用华盾,而且华盾不支持nginx。我们的服务器跑nginx两年一直好好的,可换apache后总是负载很高。所以我想到,当负载高到一定程度时,就切换nginx,当负载降下来再切换回apache。
  1. #! /bin/bash
  2. killphp(){
  3. if `pgrep  'php-fpm'>/dev/null` ; then
  4.         /usr/local/php/sbin/php-fpm stop
  5.         killall -9 php-fpm
  6. fi
  7. }
  8. killnginx(){
  9. if `pgrep  'nginx' >/dev/null`; then
  10.         /etc/init.d/nginx stop
  11.         killall -9 nginx
  12. fi
  13. }
  14. killhttpd(){
  15. if `pgrep 'httpd'>/dev/null`; then
  16.         killall httpd
  17.         kill -9 `ps aux |grep httpd |grep -v 'grep ' |awk '{print $2}'`
  18. fi
  19. }
  20. starthttpd(){
  21. if `pgrep 'httpd'>/dev/null`; then
  22.         echo ok >/dev/null
  23. else
  24.         /usr/local/apache2/bin/apachectl start
  25. fi
  26. }
  27. startibsys(){
  28. if `pgrep 'ibsysServer'>/dev/null`; then
  29.         echo ok >/dev/null
  30. else
  31.         /usr/local/ibsys/ibsysServer
  32. fi
  33. }
  34. Load(){
  35. w|grep load |awk -F 'average:' '{print $2}'|awk '{print $1}' |cut -d'.' -f 1
  36. }
  37. rmail="15810682599@139.com"
  38. L="35"
  39. while :; do
  40.         killphp
  41.         killnginx
  42.         starthttpd
  43.         startibsys
  44.         load=`Load`
  45.         if [ $load -gt $L ]; then
  46.                 free >>/tmp/load.log
  47.                 top -bn1 |head -n 100 >>/tmp/load.log
  48.                 killhttpd
  49.                 killall -9 ibsysServer
  50.                 sleep 30
  51.                 killphp
  52.                 killnginx
  53.                 /usr/local/php/sbin/php-fpm start 2>/tmp/mail.txt
  54.                 killhttpd
  55.                 /etc/init.d/nginx start 2>>/tmp/mail.txt
  56.                 echo "web-rr load is more than 50 and the apache stop." >>/tmp/mail.txt && mail -s 'web-rr load' $rmail /mail.txt
  57.                 sleep 120
  58.                 load2=`Load`
  59.                 if [ $load2 -lt 15 ]; then
  60.                         killphp
  61.                         killnginx
  62.                         starthttpd
  63.                         startibsys
  64.                 fi
  65.         fi
  66.         sleep 3
  67. done
把这个脚本丢到后台运行即可。
2011-04-19 16:49 举报
已邀请:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: