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

相关推荐
Lsir10110_10 分钟前
【Linux】中断 —— 操作系统的运行基石
linux·运维·嵌入式硬件
Doro再努力43 分钟前
【Linux操作系统12】Git版本控制与GDB调试:从入门到实践
linux·运维·服务器·git·vim
全栈工程师修炼指南1 小时前
Nginx | stream content 阶段:UDP 协议四层反向代理浅析与实践
运维·网络·网络协议·nginx·udp
Lsir10110_1 小时前
【Linux】进程信号(上半)
linux·运维·服务器
开开心心就好2 小时前
发票合并打印工具,多页布局设置实时预览
linux·运维·服务器·windows·pdf·harmonyos·1024程序员节
火车叼位2 小时前
脚本伪装:让 Python 与 Node.js 像原生 Shell 命令一样运行
运维·javascript·python
鹏北海2 小时前
micro-app 微前端项目部署指南
前端·nginx·微服务
迎仔2 小时前
06-存储设备运维进阶:算力中心的存储管家
运维
?re?ta?rd?ed?2 小时前
linux中的调度策略
linux·运维·服务器
全栈工程师修炼指南3 小时前
Nginx | stream content 阶段:TCP 协议四层反向代理浅析与实践
运维·网络·网络协议·tcp/ip·nginx