keepalived+nginx搭建高可用and负载均衡集群

keepalived+nginx搭建高可用and负载均衡集群,第1张

keepalived+nginx搭建高可用and负载均衡集群 keepalived+nginx搭建高可用and负载均衡集群

由于生产环境的需要,需要构建一个前端双向HA备份,后端nginx代理的负载均衡集群。nginx进程基于Master+Slave(worker)多进程模型,它有非常稳定的子进程管理功能。在主进程分配模式下,主进程从不处理业务,只分配任务,从而实现主进程的生存和高可靠性。从(工)进程的所有业务信号都由主进程发送,从(工)进程的所有超时任务都会被主进程挂起,属于非阻塞任务模型。Keepalived是Linux下VRRP备份路由的一个高度可靠的运行部件。基于Keepalived设计的服务模式,真正实现了主用服务器和备份服务器故障时的瞬间无缝IP切换。

这个架构需要考虑的问题
1)如果主服务器没有挂起,主服务器占用vip,nginx在主服务器上运行
2)如果主服务器挂起,备份抢占vip,在备份上运行nginx服务
3)如果主服务器上的nginx服务挂起,那么vip资源转移到备份服务器上
4)检查后端服务器的健康状态
主服务器和备份都启动nginx服务,并且当其中一个keepalived服务停止时,vip会漂移到keepalived服务shell所在的节点。
如果要挂nginx服务,vip也会漂移到另一个节点。[

下面的实验过程由难到易,简单易用,易于 *** 作。

一、前期环境准备
  • 1.系统环境为CentOSrelease6.5(最终版)32位,在虚拟机上成功实现。

  • 所有软件包由百胜安装,百胜源码由阿里云服务器使用。

  • 为了避免不必要的麻烦,应该关闭所有的防火墙。

  • 这个实验结构的拓扑图如下:

  • 知识产权计划如下:

  • 二、后端apache安装配置
    apache1:

    1.装置

    [root@Apache1~]#yuminstall-yhttpd

    2.建立测试网页文件。

    echo"这是apache1">/var/www/html/index.html

    3.打开服务。

    服务httpd启动

    阿帕奇2:

    1.装置

    yum-y安装httpd

    2.建立测试网页文件。

    echo"这是apache2">/var/www/html/index.html

    3.打开服务。

    服务httpd启动

  • Nginx安装和配置

  • 1安装环境所需的依赖包

    yum-y安装gccgcc+gcc-c++

    yuminstallpopt-develOpenSSLOpenSSL-devellibssl-devlibnl-develpopt-devel

    yuminstall-ynet-SNMP.x86_64net-SNMP-devel.x86_64

    2.安装nginx

    yuminstall-ynginx

    3.修改nginx的配置文件

    yuminstall-ynginx

    创建自定义配置文件

    mkdir/etc/nginx/conf.d/extra/

    vim/etc/nginx/conf.d/extra/yang.conf

    4.启动nginx

    服务nginx启动

    此时可以在浏览器中测试,输入IP:192.168.1.135。

    恢复精神

    这个nginx已经配置成功了,在另一台机器上也是这样配置的,这里就不赘述了。

    以上配置文件中的内容虽然不多,但都是重要的部分,以后要用的功能也是逐步添加的。

  • keepalived的安装和配置

  • keepalived安装在机器上

    yuminstall-ykeepalive

    2.修改保持激活的配置文件

    vim/etc/keepalived/keepalived.conf

    ! Configuration File for keepalived global_defs {    notification_email {      [email protected]    }    [email protected]    smtp_server mail.shiwei.com    smtp_connect_timeout 30    router_id LVS_MASTER1  # 表示运行keepalived服务器的一个标识,发邮件时显示在邮件主题中的信息 } vrrp_script chk_http_port { script "/usr/local/keepalived/nginx.sh"#### 检测nginx状态的脚本链接 interval 2 weight 2 } vrrp_instance VI_2 {   #vrrp 实例     stateMASTER     #MASTER/BACKUP     interface eth1  ####HA  监测网络接口     virtual_router_id 51  # 虚拟路由标识,是一个数字,同一个VRRP实例使用唯一的标识,master和backup要一样     priority100          # 用于主从模式,优先级主高于100,从低于100     advert_int1           # 主备之间的通告间隔秒数     authentication{        # 认证用于主从模式,mater和backup配置一样        auth_type PASS          ### 主备切换时的验证        auth_pass 1111          # 密码     } track_script { chk_http_port ###  执行监控的服务 }     virtual_ipaddress {         192.168.1.100 dev eth1 label eth1:0  ########### 虚拟ip      } }


    3.写nginx检测脚本。

    vim/usr/local/keepalived/nginx.sh

    if[`PS-Cnginx-no-header|WC-l`-eq0];然后

    killallkeepalived

    船方不负担装货费用

    一定要给它可执行的权限。

    chmod+x/usr/local/keepalived/nginx.sh

    在另一台备份计算机上执行相同的 *** 作,注意/etc/keepalived/keepalived.conf需要修改如下:

    状态备份

    优先级99(确保小于master的值)

  • 手动添加虚拟IP。

  • 分别在主服务器和备份服务器上执行以下命令:

    ifconfigeth1:0192.168.1.100网络掩码255.255.255.0以上

    然后一查,就有两个IP了。

  • 重启nginx并在两台机器上保持活动状态以进行测试。

  • 服务nginx重新启动

    服务保持激活重启

  • 1.你可以在母版上看到。

  • 你可以在备份上看到。

    查看日志,可以看到两台服务器的MASTRE和BACUKUP都是正常的。


  • 2.当我在主服务器上手动停止nginx时,我可以看到主服务器日志

  • 此时查看备份日志

    显然,vip已经被成功接管。

    自此,这个实验成功完成。


    欢迎分享,转载请注明来源:内存溢出

    原文地址: https://outofmemory.cn/zz/778022.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-05-03
    下一篇 2022-05-03

    发表评论

    登录后才能评论

    评论列表(0条)

    保存