zoukankan      html  css  js  c++  java
  • Nginx+keepalived配置实现nginx服务器高可用

    前一篇帖子里,把nginx在linux里的安装部署搞完了,现在接着安装配置keepalived。

    1、keepalived主要用来防止服务器单点故障。简单来说,需要在两台nginx服务器上都安装上keepalived,设置为一主一备(或者多台备份服务器),主服务器工作,备份服务器不工作;当主服务器故障时,备份服务器根据预设规则选举出一台新的主服务器顶上,直到原来的主服务器活过来。对于客户端来说,直接访问的ip地址并不是主服务器或者备份服务器的ip,而是一个虚拟ip,这样不管哪台服务器出现故障,只要还有一台服务器可用,客户端是感知不到的。keepalived是通过实现VRRP协议来达到这个效果的,具体可自行百度。

    2、nginx服务器两台:172.16.170.41(备份)、172.16.170.41(主),通过keepalived虚拟对外的服务地址172.16.170.43

    3、安装keepalived:网上帖子一大把,参考这个照做即可:https://www.cnblogs.com/yaboya/p/9107442.html。不过我的配置更简单,暂时没有涉及到检测nginx服务的死活、以及发生故障时邮件发送设置等内容。

    4、安装完了修改配置文件:vi /etc/keepalived/keepalived.conf 

      

      参数说明:

      router_id:服务器的路由标识,每台机器不同不要重复;

      state:路由状态,主服务器为MASTER,备份服务器为BACKUP;

      interface:服务器绑定的网卡;

      mcast_src_ip:广播源ip,就是服务器的实际ip地址;

      virtual_router_id:虚拟路由标识,两台服务器必须一样,而且得是0~255之间的数字;

      priority:优先级,数字越大优先级越高,应该就是根据这个在N个备份服务器里选举谁来临时当主服务器;

      advert_int:集群监控时间,单位为秒,默认是1秒,我们测试没必要这么高要求。意思是超过这个时间如果收不到MASTER还活着的消息,那么就要选举一个新的MSATER;

      auth_type、auth_pass:集群间通信用来验证身份的,配置成一样即可;

      virtual_ipaddress:统一对外提供的虚拟地址。

     5、配置完毕后两台机器分别重启服务,访问一下虚拟地址试试:

      

      OK了。再试一试关闭主服务器的keepalived服务(或者是直接关闭或重启centos服务器),看看备份服务器能不能顶上。

      关闭MASTER服务器服务: service keepalived stop 再看看:

      

      43还是OK的,说明配置起效了。再把备份服务器服务也关了再看看:

      

      说明刚才BACKUP确实起效了。OK,重启主备,服务恢复:

      

  • 相关阅读:
    java spring boot 跳转
    了解什么是 redis 的雪崩、穿透和击穿
    小白学k8s(12)-k8s中PV和PVC理解
    小白学k8s(11)-k8s中Secret理解
    小白学k8s(10)-k8s中ConfigMap理解
    小白学k8s(9)-gitlab-runner实现go项目的自动化发布
    小白学k8s(8)-Bazel部署go应用
    记go中一次http超时引发的事故
    小白学k8s(7)helm[v3]使用了解
    小白学k8s(6)使用kubespray部署k8s
  • 原文地址:https://www.cnblogs.com/coldlight/p/11910958.html
Copyright © 2011-2022 走看看