环境条件:两台centos7的服务器;
IPnginx端口192.168.6.13680192.168.6.13880安装成功后会有/usr/local/keepalived目录,如果安装过程报错,一般就是少包,看步骤一是否缺少包。
/usr/local/keepalived 目录下结构:常用命令:
systemctl daemon-reload #重新加载 systemctl start keepalived.service #启动 systemctl stop keepalived.service #停止 systemctl enable keepalived.service #开机启动 systemctl disable keepalived.service #取消开机启动 systemctl status keepalived.service #服务状态添加心跳检测脚本:
vim nginx_check.sh #以下是脚本内容 #!/bin/bash # 容器名称 containerName=nginx currTime=`date +"%Y-%m-%d %H:%M:%S"` # 查看进程是否存在 exist=`docker inspect --format '{{.State.Running}}' ${containerName}` if [ "${exist}" != "true" ]; then #如果关闭了可以重启我们这里方便测试跳过 # docker restart ${containerName} # 记录 echo "${currTime} 重启docker容器,容器名称:${containerName}" >> /mnt/xvde1/ms_ctynyd/scripts/wbwf_monitor.log fi服务器连接不了外网的话请参考:https://editor.csdn.net/md/?articleId=107047628
docker pull nginx #下载nginx镜像 docker run -d --name nginx nginx:latest #启动一个镜像 mkdir /usr/share/; #创建nginx页面目录 docker cp nginx:/etc/nginx /etc/ #拷贝出配置文件 docker cp nginx:/usr/share /usr/share #拷贝出基础页面 docker stop nginx;#停止容器 docker rm nginx;#删除容器 #映射端口和数据卷,确保宿主机的80端口没被占用 docker run -it -d --name nginx --restart=always -p 80:80 -v /etc/nginx/:/etc/nginx/ -v /usr/share/nginx:/usr/share/nginx --privileged nginx修改nginx的默认页面
vi /usr/share/nginx/html/index.html将Welcome to nginx!修改成Welcome to nginx! Master
1,将上面的步骤环境在操作一遍
2,配置keepalived.conf如下: 需要修改的就是mcast_src_ip 、state 、priority 这三个参数
vrrp_script chk_nginx { script "/etc/keepalived/nginx_check.sh" interval 2 weight -20 } vrrp_instance VI_1 { state BACKUP #指定为BACKUP interface ens33 #网卡名 virtual_router_id 121 #路由id需要一致 mcast_src_ip 192.168.6.138 #广播本机ip priority 80 #权重 nopreempt advert_int 1 #检测时间 1s authentication { #认证 auth_type PASS auth_pass 1111 } track_script { chk_nginx } virtual_ipaddress { 192.168.6.100 #虚拟ip,得是统一ip段的 } }3,修改nginx的默认页面
vi /usr/share/nginx/html/index.html将Welcome to nginx!修改成Welcome to nginx! Slave
systemctl restart keepalived.service #重启keepalived systemctl status keepalived.service #检测一下日志如果日志输出一下内容则没问题
1.客户端测试: 打开dos窗口->输入:curl 192.168.6.100
2,现在我们把docker容器的nginx停了看一下
docker stop nginx重开dos窗口:
大功告成,楼主在搭建的时候遇到了很多坑。需要耐心,如果错误了细心看了keepalived的日志解决。