• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    nginx结合keepalived实现高可用的完整步骤

    前言

    为了满足系统的高可用,一般都需要搭建集群。当主机挂掉的时候,我们的系统还可以继续提供服务。当我们使用nginx作为反向代理和动静分离服务器的时候,也是如此。实现系统的高可用性,是我们程序员关注的重点。本文介绍了nginx结合keepalived实现主从模式搭建高可用集群。

    前提知识

    本文不作过多的nginx相关配置介绍,默认读者已经了解nginx的相关知识。

    keepalived的介绍

    Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。

    系统架构图

    实现步骤

    1.环境配置

    1.1 安装nginx

    安装相关依赖

    yum install pcre-devel zlib zlib-devel openssl openssl-devel

    上传解压压缩包

    tar zxvf nginx-1.12.2.tar.gz

    创建目录,检测配置

    mkdir -p /usr/local/nginx
    ./configure --prefix=/usr/local/nginx

    预编译和安装

    make && make install

    启动、停止相关命令

    cd /usr/local/nginx/sbin/
    ./nginx
    ./nginx -s stop
    ./nginx -s start

    1.2 安装keepalived

    yum install -y keepalived

    2.主机配置

    修改keepalived配置文件

    vim /etc/keepalived/keepalived.conf

    修改的内容如下

    #新增的配置
    vrrp_script chk_http_port {
     script "/shell/nginx_check.sh" #脚本地址
     interval 2 #检测脚本执行的间隔
     weight 2 #比重
    }
    
    vrrp_instance VI_1 {
     state MASTER #主服务器为MASTER,从服务器为BACKUP
     interface eth0 #网卡
     virtual_router_id 51 #主、备机的virtual_router_id必须相同
     priority 100 #主、备机不同的优先级,主机优先级较大,备机值较小,默认是100
     advert_int 1
     authentication {
      auth_type PASS
      auth_pass 1111
     }
     #虚拟IP地址
     virtual_ipaddress {
      192.168.126.88
     }
    }

    创建编写脚本文件

    mkdir /shell/nginx_check.sh
    vim /shell/nginx_check.sh

    脚本文件内容如下

    #!/bin/bash
    A=`ps -C nginx –no-header |wc -l`
    if [ $A -eq 0 ];then
      /usr/local/nginx/sbin/nginx
      sleep 2
      if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
        killall keepalived
      fi
    fi

    3.从机配置

    修改keepalived配置文件

    vrrp_instance VI_1 {
      state BACKUP #主服务器为MASTER,从服务器为BACKUP
      interface eth0 #网卡
      virtual_router_id 51 #主、备机的virtual_router_id必须相同
      priority 50 #主、备机不同的优先级,主机优先级较大,备机值较小
      advert_int 1
      authentication {
        auth_type PASS
        auth_pass 1111
      }
      #虚拟IP地址
      virtual_ipaddress {
        192.168.126.88
      }
    }

    4.启动服务

    启动

    service keepalived start

    查看虚拟IP地址

    ip addr
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
      link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
      inet 127.0.0.1/8 scope host lo
      inet6 ::1/128 scope host 
        valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
      link/ether 00:0c:29:4f:31:ce brd ff:ff:ff:ff:ff:ff
      inet 192.168.126.100/24 brd 192.168.126.255 scope global eth0
      inet 192.168.126.88/32 scope global eth0
      inet6 fe80::20c:29ff:fe4f:31ce/64 scope link 
        valid_lft forever preferred_lft forever

    5.关闭防火墙测试

    关闭防火墙

    service iptables stop
    #查看防火墙是否开机自启动
    chkconfig --list | grep iptables
    chkconfig iptables off

    登陆虚拟IP地址查看

    http://192.168.126.88/

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

    上一篇:Linux traceroute命令使用详解
    下一篇:Centos7备份文件时备份文件加入备件日期
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    nginx结合keepalived实现高可用的完整步骤 nginx,结合,keepalived,实现,