美奇科技 发表于 2018-11-22 12:36:47

keepalived 的安装与apache停止或宕机配置

keepalived安装
  环境;
  系统环境:RedHat Linux 5.5-64
  系统安装这里就不说了上正题,两台服务器
  服务器A:MARSTIP:192.168.10.120
  服务器B:BACKUP IP:192.168.10.121
  心跳            IP: 192.168.10.123
  —————————————————————————————————————————————

  keepalived下载地址如下:
  http://www.keepalived.org/software/keepalived-1.1.20.tar.gz要是下载不了也可以去网上找对应的地址,本人用的keepalived是keepalived-1.1.20.tar.gz,高版本的出试了但是在make的时候报错,所以换成了这个版本的了。
  安装keepalived之前要解决keepalived的依赖包的问题,(配RedHat的yum源这在里就不说了)
  # yum -y install gcc* openssl* kernel kernel-devel   ####这里编译安装所要的依赖包。
  然后我这里先编译安装apache服务;(两个服务器都安装这里只做了MARST详细说明)
  httpd-2.0.65.tar.gz                                                                              ####apache服务版本
  # ls
  anaconda-ks.cfgDesktopinstall.loginstall.log.syslog
  # cd Desktop
  # tar -zxf httpd-2.0.65.tar.gz

  # cd httpd-2.0.65
  # ./configure --prefix=/usr/local/apache2/
  # make && make install
  # vi /usr/local/apache2/htdocs/index.html
  #####编辑apache测试页面
  # /usr/local/apache2/bin/apachectl start
  #####起动服务(两个服务器都起动)


  下面开始编译安装keepalived
  # cd Desktop/
  # ls
  httpd-2.0.65httpd-2.0.65.tar.gzkeepalived-1.1.20.tar.gz
  # tar -zxf keepalived-1.1.20.tar.gz
  # cd keepalived-1.1.20
  # ./configure --sysconf=/etc --with-kernel-dir=/usr/src/kernels/2.6.18-194.el5-x86_64/
  # make && make install
  # cp /usr/local/sbin/keepalived /usr/sbin/
  #######复制keepalived起动文件
  # vi /etc/keepalived/keepalived.conf
  #######配置keepalived文件如图
这里是MARST服务器keepalived配置文件BACKUP服务器上要把state MARSET 修改成BACKUP
  priority 100 修改成比100少的就可以。因为这里要区分哪个是MARST和BACKUP服务器。
  配置完成后要起动keepalived服务。
  然后在IE栏里输入
  http://192.168.10.123 如图显示;

  然后停止keepalived 服务如下图;

  如图所示停止MARST上的keepalived服务后F5刷新一下页面后自动跳到BACKUP服务器上去。
  接下来我模拟一下停止apache服务看keepalived是不是自动跳到BACKUP服务器上去。
  同样的可以自动跳到BACKUP服务器上去。
  但是得写一个脚本写一个关于apache的脚本;(注:在这里要强调的是关于这个APACHE的脚本,一定得给一个777或755的权限,要不然你把所有配置文件都修改完成之后依然无法切换到从HA上去的。)

  #!/bin/bash
  

  CHECK_TIME=2
  

  check()
  {
  curl http://127.0.0.1/ >/dev/null 2>&1
  ret=$?
  if [ $ret -ne 0 ];then
  return $ret;
  fi
  }
  while [ $CHECK_TIME -ne 0 ]
  do
  let "CHECK_TIME -= 1"
  check
  HTTP_OK=$?
  if [ $HTTP_OK -eq 0 ];then
  exit 0
  fi
  if [ $HTTP_OK -ne 0 ] &&[ $CHECK_TIME -eq 0 ]
  then
  exit 1
  fi
  done
  这里就完成这个实验了。



页: [1]
查看完整版本: keepalived 的安装与apache停止或宕机配置