docker搭建nginx+keepalived集群

一: docker安装nginx

安装过程参考:docker离线安装nginx

二 :本地安装keepalived

keepalived安装过程省略,我安装的是2.2.7版本

  1. 第一步:安装成功 修改keepalived.conf
cd  keepalived-2.2.7
 ./configure  --prefix=/usr/local/keepalived --sysconf=/etc
 make && make install
vim /etc/keepalived/keepalived.conf
  1. 主机keepalived.conf内容:
global_defs {
	 notification_email {
	    # 指定keepalived在发生切换时需要发送email到的对象,一行一个邮件地址
        acassen@firewall.loc
		 failover@firewall.loc
		 sysadmin@firewall.loc
	 }
	 # 指定
	 notification_email_from Alexandre.Cassen@firewall.loc
	 #服务器地址
	 smtp_server 192.168.1.250
	 #连接超时时间
	 smtp_connect_timeout 30
	 #hosts
	 router_id 02
}


	vrrp_script chk_http_port {
	 script "/usr/local/src/nginx_check.sh"
	 interval 2 #(检测脚本执行的间隔)
	 weight 2
	}
	
vrrp_instance VI_1 {
   # 备份服务器上将 MASTER 改为 BACKUP  必须大写
   state MASTER 
   #网卡
   interface ens224
   # 主、备机的 virtual_router_id 必须相同   
   virtual_router_id 51 
   # 主、备机取不同的优先级,主机值较大,备份机值较小
   priority 100 
   # 设定 MASTER 与 BACKUP 负载均衡之间同步检查的时间间隔,单位为秒,两个节点设置必须一样
   advert_int 1
   
 # 设置验证类型和密码,两个节点必须一致
 authentication {
	 auth_type PASS
	 auth_pass 1111
 }
  # VRRP H 虚拟地址 可多个
 virtual_ipaddress {
     192.168.10.160
 } 
 
 }
  1. 从机配置:
global_defs {
	 notification_email {
	    # 指定keepalived在发生切换时需要发送email到的对象,一行一个邮件地址
        acassen@firewall.loc
		 failover@firewall.loc
		 sysadmin@firewall.loc
	 }
	 # 指定
	 notification_email_from Alexandre.Cassen@firewall.loc
	 #服务器地址
	 smtp_server 192.168.1.247
	 #连接超时时间
	 smtp_connect_timeout 30
	 #hosts
	 router_id 02
}


	vrrp_script chk_http_port {
	 script "/usr/local/src/nginx_check.sh"
	 interval 2 #(检测脚本执行的间隔)
	 weight 2
	}


	vrrp_instance VI_1 {
   # 备份服务器上将 MASTER 改为 BACKUP  必须大写
   state BACKUP  
   #网卡
   interface ens224
   # 主、备机的 virtual_router_id 必须相同   
   virtual_router_id 51 
   # 主、备机取不同的优先级,主机值较大,备份机值较小
   priority 50
   # 设定 MASTER 与 BACKUP 负载均衡之间同步检查的时间间隔,单位为秒,两个节点设置必须一样
   advert_int 1
   
 # 设置验证类型和密码,两个节点必须一致
 authentication {
	 auth_type PASS
	 auth_pass 1111
 }
  # VRRP H 虚拟地址 可多个
 virtual_ipaddress {
     192.168.10.160
 } 
 
 }
  1. 在/usr/local/src 添加检测脚本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
  1. 启动主从keepalived
systemctl start keepalived
Systemctl status keepalived
  1. 查看虚拟IP是否绑定
ip addr
  1. 在浏览器输入虚拟IP进行测试,然年后停止主机,再次访问
    在这里插入图片描述
  2. 访问 虚拟ip+nginx端口,例如:192.168.10.160:8114
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值