- 准备虚拟机(已安装nginx), 安装教程 : 链接地址
- 设置固定 IP : 链接地址
- Keepalived
- 官网地址 : https://www.keepalived.org/
- 下载地址 : https://yonxin.lanzous.com/b00zjg5hi
密码 : 4aru - 先安装 gcc 和 gcc++
yum install gcc
yum install gcc-c++
- 解压缩keepalived到指定目录
tar -zxvf keepalived-1.4.2.tar.gz -C /usr/local/src/
安装openssl
yum install -y openssl openssl-devel
安装Keepalived
- 解压缩keepalived到指定目录
tar -zxvf keepalived-1.4.2.tar.gz -C /usr/local/src/
- 如图
- 进入解压目录
cd /usr/local/src/keepalived-1.4.2
- 执行配置
./configure --prefix=/usr/local/keepalived
- 如图
- 编译安装
make && make install
- 如图
初始化配置及启动测试:
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
- 配置 keepalived 命令可以在任意目录下执行
cp /usr/local/keepalived/sbin/keepalived /usr/local/bin/
2. 将 keepalived 脚本放到 /etc/init.d/
目录下
cp /usr/local/src/keepalived-1.4.2/keepalived/etc/init.d/keepalived /etc/init.d/
3. 拷贝 keepalived.conf
配置文件到 /etc/keepalived/
目录下, 当 keepalived
启动的时候默认就会到 /etc/keepalived/
目录下找配置文件
mkdir /etc/keepalived cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
4. 启动、关闭、重启、查看状态
service keepalived start|stop|restart|status
- 启动 keepalived 服务
6. 启动完后查看状态发现启动失败, 说配置文件有错误, 如图
上述错误下面解决
准备从机
- 关闭当前主机(避免ip冲突), 克隆一台
- 选中当前主机, 右键 管理 克隆
- 然后下一步, 下一步, 创建完整的克隆
- 然后选择修改虚拟机名称, 及克隆存放路径
- 等待完成关闭即可
- 重置网卡mac地址
- 修改静态IP , 配置文件修改 : 链接地址
- 手动修改
- 按一下关闭打开即可生效
- 然后启动主机
主备配置文件修改
- 修改主服务器keepalived.conf配置文件
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.230.201
smtp_connect_timeout 30
router_id nginx_master
vrrp_skip_check_adv_addr
vrrp_garp_interval 0
vrrp_gna_interval 0
}
#检测脚本定义
vrrp_script chk_http_port {
script "/etc/keepalived/nginx_check.sh"
interval 2 # 脚本执行的间隔
weight 2 # 权重等级
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
#主从的优先级, 主机一定要大于从机
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
# VIP: 提供给外部访问的地址, 必须和主从在同一个网段内, 主从地址不能相同
virtual_ipaddress {
192.168.230.190
}
}
- 如图
- 修改完后按
esc
删除没用的行, 保存退出!
d200d
- 修改从机服务器
keepalived.conf
配置文件
vim /etc/keepalived/keepalived.conf
- 如图
- 修改完后按
esc
删除没用的行, 保存退出!
d200d
主从服务器创建相同的检查脚本文件
- 主机在
/etc/keepalived/
目录下创建nginx_check.sh
脚本配置文件
vim /etc/keepalived/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
- 如图
- 保存退出!
- 从机操作和上面一样
- 给
nginx_check.sh
文件设置可执行权限,[主从都要设置
]
chmod 777 /etc/keepalived/nginx_check.sh
配置完信息后在主从机中分别启动nginx 和 keepalived
测试
- 修改主备nginx的
index.html
页面显示内容区分主备
vim /usr/local/nginx/html/index.html
- 添加一句话测试, 如图
- 在浏览器地址栏输入配置的虚拟IP访问成功能, 表示高可用搭建完成!!
双主模式
- 在主机keepalived.conf最后一行添加
vrrp_instance VI_2 {
state BACKUP
interface ens33
virtual_router_id 52
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.230.191
}
}
2. 在从机keepalived.conf最后一行添加
vrrp_instance VI_2 {
state MASTER
interface ens33
virtual_router_id 52
priority 190
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.230.191
}
}
3. 修改完后重新加载配置文件
service keepalived reload
感谢阅读, 如有什么更好的建议或方法 ,可以留言或进群交流:1101584918,欢迎大家加入。