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

相关推荐
叁金Coder22 分钟前
业务系统跳转Nacos免登录方案实践
前端·javascript·nginx·nacos
海域云SeaArea_30 分钟前
Rustdesk中继服务器搭建(windows 服务器)
运维·服务器·windows
参.商.1 小时前
【RH124 问答题】第 8 章 监控和管理 Linux 进程
linux·运维
热心市民梁先生1 小时前
oect刷入arm系统安装docker
运维·docker·容器
图扑可视化2 小时前
3D 管道如何实现流动的?
运维·数字孪生·三维可视化·管道·3d管道
爱掉发的小李3 小时前
Linux 环境下 Docker 安装与简单使用指南
java·linux·运维·c++·python·docker·php
我命由我123454 小时前
Windows 操作系统 - Windows 设置始终使用 Windows 照片查看器打开图片
运维·windows·经验分享·笔记·学习·操作系统·运维开发
Tipriest_5 小时前
ubuntu apt安装与dpkg安装相互之间的关系
linux·运维·ubuntu·apt·flatpak·dpkg·snap
liliangcsdn5 小时前
linux pip/conda 修改默认cache位置
linux·运维·pip
mortimer6 小时前
记一次网站服务器无缝扩容:利用软链接实现零停机数据迁移
linux·运维