keepalived 配置nginx进行ha主备切换,没解决

发布时间 2023-09-17 02:49:49作者: 三号小玩家

Keepalived

keepalived默认的yum 1.3.5有BUG,根本跑不起来,所以我们换成源码压缩包下载后编译安装的方式进行安装,如果你也是1.3.5
keepalived默认的yum 1.3.5有BUG,根本跑不起来,所以我们换成源码压缩包下载后编译安装的方式进行安装,如果你也是1.3.5
keepalived默认的yum 1.3.5有BUG,根本跑不起来,所以我们换成源码压缩包下载后编译安装的方式进行安装,如果你也是1.3.5
keepalived默认的yum 1.3.5有BUG,根本跑不起来,所以我们换成源码压缩包下载后编译安装的方式进行安装,如果你也是1.3.5
keepalived默认的yum 1.3.5有BUG,根本跑不起来,所以我们换成源码压缩包下载后编译安装的方式进行安装,如果你也是1.3.5
keepalived默认的yum 1.3.5有BUG,根本跑不起来,所以我们换成源码压缩包下载后编译安装的方式进行安装,如果你也是1.3.5
keepalived默认的yum 1.3.5有BUG,根本跑不起来,所以我们换成源码压缩包下载后编译安装的方式进行安装,如果你也是1.3.5
keepalived默认的yum 1.3.5有BUG,根本跑不起来,所以我们换成源码压缩包下载后编译安装的方式进行安装,如果你也是1.3.5
keepalived默认的yum 1.3.5有BUG,根本跑不起来,所以我们换成源码压缩包下载后编译安装的方式进行安装,如果你也是1.3.5
keepalived默认的yum 1.3.5有BUG,根本跑不起来,所以我们换成源码压缩包下载后编译安装的方式进行安装,如果你也是1.3.5

Keepalived是一个基于VRRP协议来实现的服务高可用方案。VRRP协议(虚拟路由冗余协议——
Virtual Router Redundancy Protocol,简称VRRP),是由IETF提出的解决局域网中配置静态网关
出现单点失效现象的路由协议,1998年已推出正式的RFC2338协议标准。VRRP广泛应用在边缘网络
中,它的设计目标是支持特定情况下IP数据流量失败转移不会引起混乱,允许主机使用单路由器,以
及即使在实际第一跳路由器使用失败的情形下仍能够维护路由器间的连通性。
大白话来说就是,VRRP协议允许一台机器可以拥有一个或者多个虚拟IP。在高可用的一组机器中,有
一个master,多个slave,对外提供一个虚IP,通过虚IP访问master,slave负责监控master,如果
master宕机,则选举其中一个slave接管master,虚IP绑定到新的master上(俗称IP漂移),从而实
现了高可用。

docker 运行centos7

docker run --name c7-d11 --net=host   --privileged=true     -v /usr/local/docker/keepalived:/etc/keepalived   centos:7 /usr/sbin/init

进入容器

docker exec -it  c7-d11  /bin/bash  

安装nginx

# vi /etc/yum.repos.d/nginx.repo
写入:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

安装

yum install -y nginx

启动

systemctl start nginx

配置系统自动启动

systemctl enable nginx

控制台输出这个:
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
该日志消息表明在 /etc/systemd/system/multi-user.target.wants/ 目录下创建了一个符号链接(symlink),将 /usr/lib/systemd/system/nginx.service 的路径映射到 nginx.service。

这种操作通常是为了在系统启动时自动启动 Nginx 服务。通过将符号链接放置在 multi-user.target.wants 目录中,可以指示 systemd 在多用户模式下启动时启动 Nginx 服务。

符号链接是一种特殊的文件,它将一个路径映射到另一个路径。在这种情况下,符号链接将 /usr/lib/systemd/system/nginx.service 的路径映射到 /etc/systemd/system/multi-user.target.wants/nginx.service,从而将 Nginx 服务与启动过程中的正确目标关联起来。
通过创建该符号链接,当系统启动到多用户模式时,systemd 将自动启动 Nginx 服务,以便在后台运行网页服务器。

访问:http://localhost/

不要用这个了  yum install -y keepalived  

keepalived默认的yum 1.3.5有BUG,根本跑不起来,所以我们换成源码压缩包下载后编译安装的方式进行安装,如果你也是1.3.5

安装依赖

yum install -y gcc gcc-c++  openssl-devel

keepalived官网下载,可以下载最新的
http://www.keepalived.org/download.html

导入安装包到docker容器目录之后,解压,进入解压后的目录执行下面命令

./configure --prefix=/usr/local/keepalived && make && make install
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
mkdir -p /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp ./keepalived/etc/init.d/keepalived /etc/init.d/
chmod 755 /etc/init.d/keepalived
 编译后安装到这个目录 /usr/local/keepalived/sbin/keepalived

 
 ps -ef | grep keepalived  
  
  journalctl -f  用来看日志

check_nginx.sh

#!/bin/bash
counter=$(ps -C nginx --no-heading|wc -l)
if [ "${counter}"= "0" ]; then
systemctl start nginx
sleep 2
counter=$(ps -C nginx --no-heading|wc -l)
if [ "${counter}"= "0" ]; then
systemctl stop keepalived
fi
fi

keepalived.conf

! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
script "/etc/keepalived/check_nginx.sh"
interval 2
weight -5
}

vrrp_instance VI_1 {
state MASTER
interface wlo1
virtual_router_id 51
priority 101
advert_int 2
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.31
}
track_script {
chk_nginx
}}

太困了,明天换最新的zip包试试