欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > LVS+Keepalived+nginx

LVS+Keepalived+nginx

2025/6/21 4:47:08 来源:https://blog.csdn.net/shumeigang/article/details/148760343  浏览:    关键词:LVS+Keepalived+nginx

LVS+Keepalived+nginx
1 安装依赖
sudo yum install ipvsadm keepalived -y
查询是否安装成功
rpm -q -a keepalived

2 配置虚拟IP并安装ipvsadm
/etc/sysconfig/network-scripts
cp ifcfg-ens33  ifcfg-ens33:1
修改里面配置文件
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPADDR=172.16.15.201
NETMASK=255.255.255.0
GATEWAY=172.16.15.2
IPV4_FAILURE_FATAL="no"
IIPV6INIT="no"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="eb60d6d6-4ec8-4dbf-bb41-f548ffbd378c"
DEVICE="ens33"
ONBOOT="yes"
HWADDR=00:0C:29:B0:3A:79
DNS1=8.8.8.8
DNS2=8.8.4.4
~                                   


3 配置 LVS Director 节点(主/备)
vi /etc/keepalived/keepalived.conf

bal_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id had1(不能重复)
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type ad
        auth_pass 123123
    }
    virtual_ipaddress {
        172.16.15.201
    }
}
 
virtual_server 172.16.15.201 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    protocol TCP
 
    real_server 172.16.15.130 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
        }
    }
    real_server 172.16.15.131 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
        }
    }
}

4 给个权限
chmod 777 /etc/keepalived/nginx_check.sh

nginx+keepalived实现高可用: 主从服务器新增nginx_check.sh脚本 (通过判断Nginx服务是否还存活来判断,如果没有nginx服务,重启机器)
vi /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

5 启动服务
sudo systemctl enable keepalived
sudo systemctl start keepalived
systemctl stop keepalived
查看是否存在
ps aux | grep keepalived


6 安装 Nginx
sudo yum install nginx -y

7 VIP与路由配置Nginx服务器

 在 172.16.15.130和 172.16.15.131构建虚拟网络接口子接口
进入到/etc/sysconfig/network-scripts

cd /etc/sysconfig/network-scripts
拷贝一份ifcfg-lo命名为ifcfg-lo:1

cp ifcfg-lo ifcfg-lo:1
修改里面配置文件

DEVICE=lo.1
IPADDR=172.16.15.201
NETMASK=255.255.255.255
NETWORK=172.0.0.0
# If you're having problems with gated making 127.0.0.0/8 a martian,
# you can change this to something else (255.255.255.255, for example)
BROADCAST=127.255.255.255
ONBOOT=yes
NAME=loopback2

重起
service network restart

8 realserver的配置

两台web服务器都要执行下面脚本:

#!/bin/bash

    SNS_VIP=172.16.15.201

    #/etc/rc.d/init.d/functions

    case "$1" in

    start)

        ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP

        /sbin/route add -host $SNS_VIP dev lo:0

        echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore

        echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce

        echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore

        echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

        sysctl -p >/dev/null 2>&1

        echo "RealServer Start OK"

        ;;

    stop)

        ifconfig lo:0 down

        route del $SNS_VIP >/dev/null 2>&1

        echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore

        echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce

        echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore

        echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce

        echo "RealServer Stoped"

        ;;

    *)

        echo "Usage: $0 {start|stop}"

        exit 1

    esac

exit 0

 执行:

chmod u+x /etc/rc.d/init.d/realserver.sh

启动

./realserver.sh start (注意目录  cd # pwd
/etc/rc.d/init.d)
9 起动Nginx
systemctl start nginx


 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词