为keepalived集群设置一个唯一的虚拟IP,虚拟IP默认会与master机器绑定在一起
即master机器将会有两个ip地址,一个是自己的源ip,一个是keepalived给的虚拟IP地址
当master机器出现故障时,keepalived第一时间收回虚拟IP地址并分配给slave机器,此时相当于slave机器升级为master机器,此时用户只需要记住keepalived的虚拟IP地址即可。
若master机器恢复正常,则不会被分配虚拟IP地址,直到slave机器出现故障后,master才会被分配虚拟IP地址
3.进入nginx通过命令解压 tar -zxvf nginx-xxxx安装包
5,通过 ./configure 进行预编译
6,安装四个依赖(gcc,zlib,openssl,pcre)
yum install gcc
yum install zlib zlib-devel
yum install openssl openssl-devel
yum install pcre pcre-devel
10,安装完毕通过 whereis nginx 查看安装目录
三.配置systemctl启动方法
1.创建一个nginx.service
在 /usr/lib/systemd/system/目录下面新建一个nginx.service文件。并赋予可执行的权限
vim /usr/lib/systemd/system/nginx.service
chmod +x /usr/lib/systemd/system/nginx.service
[Unit] //对服务的说明
Description=nginx - high performance web server //描述服务
After=network.target remote-fs.target nss-lookup.target //描述服务类别
[Service] //服务的一些具体运行参数的设置Type=forking //后台运行的形式
PIDFile=/usr/local/nginx/logs/nginx.pid //PID文件的路径
ExecStartPre=/usr/local/nginx/sbin/nginx -t //启动准备
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf //启动命令
ExecReload=/usr/local/nginx/sbin/nginx -s reload //重启命令
ExecStop=/usr/local/nginx/sbin/nginx -s stop //停止命令
ExecQuit=/usr/local/nginx/sbin/nginx -s quit //快速停止
PrivateTmp=true //给服务分配临时空间
[Install]WantedBy=multi-user.target //服务用户的模式
在启动服务之前,需要先重载systemctl命令
4.如果出现端口被占用情况
systemctl daemon-reload
systemctl start nginx.service
在nginx配置文件中 /usr/local/nginx/conf/nginx.conf
3、搭建Keepalived+Nginx高可用负载均衡服务器
准备两台Nginx服务器(一主一丛),分别安装Keepalived
yum -y install keepalived
ip addr
打开配置文件
使用set nu 能够显示行号
13.vrrp_skip_check_adv_addr
删除后:
备:
启动keepalived, 得到虚拟IP地址
systemctl start keepalived
systemctl stop keepalived
这时备用机器会收到ip
在 /etc/keepalived目录中编写一个可执行的脚本check_nginx.sh让keepalived监视nginx运行状态
输入命令 vi check_nginx.sh 进行创建编辑
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx
Systemctl restart nginx //配置systemctl方式启动
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
exit 1
else
exit 0
fi
else
exit 0
fi
第一行:检查nginx是否已经启动(ps任务管理器中是否有nginx进程)
第二行:IF nginx已经启动,keepalived认为当前机器没有问题,exit 0
IF nginx未启动,keepalived尝试去启动nginx
第四行:IF 能够启动成功nginx,keepalived认为当前机器没有问题,exit 0
IF 不能启动成功nginx,keepalived认为当前机器有问题,exit 1
此时nginx不需要我们自己启动,交给keepalived帮助我们去启动它
执行脚本 ./check_nginx.sh
需要授予权限,绿色代表有执行权限
修改权限命令:chmod 744 check_nginx.sh
在执行执行check_nginx.sh脚本之前,nginx未启动
在执行check_nginx.sh脚本之后,则nginx已经被启动了
在/etc/keepalived目录下输入vi keepalived.conf 命令 打开keepalived.conf 定义一个策略,策略名为"check_nginx"
vrrp_script check_nginx {
script "/etc/keepalived/check_nginx.sh"
interval 1 //时长
weight -20
}
track_script {
check_nginx
}
再同时启动keepalived 虚拟IP默认在MASTER机器
systemctl start keepalived
1:systemctl enable keepalived.service 设置开机自动启动
2:systemctl disable keepalived.service 取消开机自动启动
查看服务是否开机启动命令:
首先修改 /etc/rc.d/rc.local文件添加如下内容:
执行以下命令,使/etc/rc.d/rc.local变成可执行文件。
chmod +x /etc/rc.d/rc.local