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

相关推荐
智塑未来4 小时前
自动化立体库工业无线通信:AGV、AMR、RGV、穿梭车、无人叉车、堆垛机全覆盖
运维·自动化
SendTomo4 小时前
【技术交流】从0到1构建一个汉字学习平台:汉字吧(hanzi8.com)的技术架构猜想
redis·mysql·nginx·php·个人开发
Elastic 中国社区官方博客5 小时前
教程:使用 ES|QL 进行威胁狩猎
大数据·运维·数据库·elasticsearch·搜索引擎·全文检索·安全威胁分析
bwz999@88.com6 小时前
Ubuntu Server 24.04 设置中文
linux·运维·ubuntu
Cx330❀6 小时前
【Linux网络】网络层协议 IP :从网络层原理到 Linux 内核源码
linux·运维·服务器·网络·tcp/ip·ai·ai编程
志栋智能6 小时前
运维超自动化的变更管理实践
运维·自动化
全栈攻略6 小时前
Docker 中 ROS2 工作流 Topic 验证与常用命令指南
运维·docker·容器
Gl�ria7 小时前
Linux 清理日志常用命令
linux·运维·服务器
j7~9 小时前
【Linux网络加餐(二)】《进程组,会话,控制终端,作业控制和守护进程》---详解
linux·运维·服务器·守护进程·会话·进程组·控制终端