nginx配置高可用的集群

nginx的高可用集群配置 主要是用来解决nginx挂了之后无法工作的问题。因此通过虚拟的ip指向多个nginx,这样一个nginx宕机之后会自动从备份的nginx执行服务。.
nginx配置高可用的集群_第1张图片

准备工作

  1. 准备两台linux服务器,并且分别装上nginx和keepalived
    我准备的环境一台是centos6.8 另一台是centos6.9
    安装nginx,我在之前的博客里面就已经介绍。
    安装keepalived
    快速安装命令
    yum -y install keepalived
    检查是否安装成功
    rpm -qa keepalived
    在这里插入图片描述
  2. 配置keepalived
    目录/etc/keepalived
    里面的文件keepalived.conf就是keepalived的配置文件
    我们需要修改主nginx上面的keepalived.conf为下面这样 两台服务器都要修改。注意下面的配置文件有所不同
global_defs {
   notification_email {
   #如果没有配置邮箱的服务器,里面的内容可以省略
     [email protected]
     [email protected]
     [email protected]
   }
   #notification_email_from [email protected]
   #smtp_server 192.168.11.3
   #smtp_connect_timeout 30
   router_id LVS_DEVEL
}
## 作用就是没间隔两秒执行/usr/local/src目录下的nginx_check.sh脚本
vrrp_script chk_http_port{
     script "/usr/local/src/nginx_check.sh"
     interval 2
     #检测脚本执行的间隔
     weight 2
}

vrrp_instance VI_1 {
    state MASTER   #备份服务器将master 改为backup
    interface eth0
    virtual_router_id 51     #主备机的虚拟路由id必须相同
    priority 100  #主备机取不同的优先级 主机值较大 备机值较小
    advert_int 1  #每间隔一秒就检测下自己是否活着
    
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    #虚拟的ip地址
    virtual_ipaddress {
        192.168.11.50
    }
}

脚本nginx_check.sh 放到/usr/local/src/

#!/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
service keepalived start
4. 两台机都启动nginx
/usr/local/nginx/sbin下执行./nginx

效果
现在执行192.168.11.50可以访问到nginx的首页
现在我们将其中一台nginx和keepalived 关闭访问虚拟ip 依旧能够访问。

你可能感兴趣的:(nginx)