nginx使用Keepalived

什么是Keepalived

  Keepalived是一个免费开源的,用C编写的类似于layer3,4&7交换机制软件,具备我们平时说的第三层,第四层,第七层交换机的功能。主要提供loadbalancing(负载均衡)和high-avaliability(高可用)功能,负载均衡实现需要依赖inux的虚拟服务内核模块,而高可用是通过VRRP协议实现多台机器之间的故障转移服务。

    

      上图是Keepalived的功能体系结构,大致分两层:用户空间和内核空间;

      内核空间:主要包含IPVS(IP虚拟服务器,用于实现网络服务的负载均衡)和NETLINK(提供高级路由及其他相关的网络功能)两个部分;

      用户空间

        WatchDog:负载监控checkers和VRRP进程的状况;

        VRRP Stack:负载均衡之间的失败切换FailOver,如果只用一个负载均衡器,则VRRP不是必须的;

        Checkers:负责真实服务器的健康检查healthchecking,是keepalived最主要的功能,换言之,可以没有VRRP Stack,但健康检查healthchecking是一定要有的;

        IPVS wrapper:用户发送设定的规则到内核ipvs代码;

        Netlink Reflector:用来设定vrrp的VIP地址等;

      keepalived的所有功能是配置keepalived.conf文件来实现的;

安装keepalived

  1.使用【rz】命令将上传的文件放在【/usr/local】目录下

    

  2.使用命令解压

tar -zxvf keepalived-1.2.18.tar.gz

    

   3.进入keepalived-1.2.18目录下

  4.执行【yum install -y openssl openssl-devel】命令

    

  5.使用【./configure --prefix=/usr/local/keepalived】命令编译

    编译的文件放到了/usr/local/keepalived目录里

./configure --prefix=/usr/local/keepalived

  6.使用【make】命令

   7.使用【make install】命令

  8.在/etc目录下创建文件夹

mkdir /etc/keepalived

  9.使用【cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/】命令

cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/

  10.使用【cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/】命令

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/

  11.使用【cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/】命令

cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

  12.使用【ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/】命令

ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/

  13.使用【ln -s /usr/local/keepalived/sbin/keepalived/sbin/】命令

ln -s /usr/local/keepalived/sbin/keepalived/sbin/

  14.使用rz将本地的nginx启动脚本和keepalived.conf文件上传到/etc/keepalived目录下

    

  15.修改keepalived.conf配置文件

    主机配置修改:

      

    备机配置修改:【两台虚拟机需要安装的东西是一个的,只有keepalived.conf文件不一样】

      

   16.启动keepalived

    使用【service keepalived start】命令分别启动两台机器

  17.效果

    1.当两个服务器都启动起来时,keepalived默认会找主机,备机只有当主机挂掉之后,才使用;

      

 

      当两台机器都启动时,可以使用【ip a】命令查看

        主机

          

         备机

          

     2.可以使用【service keepalived stop】命令将keepalived服务关闭,这时虚拟IP则会在备机上

        

        主机挂掉,访问的就是备机的nginx

        

    3.测试在nginx出现问题的情况下,实现切换,我们把主机的nginx服务进程杀掉,使用【kill 进程号】命令

      实现效果:关闭nginx进程,如果没有赋予权限,那么访问是将不会自动重启nginx,页面就会一直在刷新;

       自动重启不了nginx,解决方案:

        使用【chmod 777 *.sh】命令  或者  【chmod +x *.sh】命令

       配置完成后,杀掉nginx进程,再次访问,将会自动重启nginx;

原文地址:https://www.cnblogs.com/wnwn/p/12295611.html