LVS+DR+apache+keepalived负载均衡

1、首先准备两台服务器

|-----|------------|
| ip | 10.0.1.32 |
| ip | 10.0.1.33 |
| vip | 10.0.1.100 |

2、关闭防火墙

```shell

systemctl stop firewalld

systemctl disable firewalld

sed -i '/^SELINUX=/s/enforcing/disabled/' /etc/selinux/config

grep '^SELINUX=' /etc/selinux/config

setenforce off

reboot

```

3、安装keepalived,两台机器都需要安装

```shell

yum -y install keepalived

```

4、打开keepalived的配置文件,首先配置主的文件

```shell

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

notification_email {

[email protected]

[email protected]

[email protected]

}

notification_email_from [email protected]

smtp_server 192.168.200.1

smtp_connect_timeout 30

router_id LVS_DEVEL

vrrp_skip_check_adv_addr

vrrp_garp_interval 0

vrrp_gna_interval 0

}

vrrp_instance VI_1 {

state MASTER #这里要改成主的

interface ens33 #这个网卡名字一定要写自己的 我的是ens33

virtual_router_id 51

priority 100 #这个是优先级主的优先级一定要比从的优先级高

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

10.0.1.100 #vip地址

}

}

virtual_server 10.0.1.100 80 {

delay_loop 6

lb_algo rr

lb_kind DR

nat_mask 255.255.255.0

protocol TCP

real_server 10.0.1.32 80 {

weight 1

TCP_CHECK {

connect_timeout 3

connect_port 80

nb_get_retry 3

delay_before_retry 3

}

}

real_server 10.0.1.33 80 {

weight 1

TCP_CHECK {

connect_timeout 3

connect_port 80

nb_get_retry 3

delay_before_retry 3

}

}

}

vrrp_strict #centos7里的keepalived有一个广播 这个需要删除 切记

```

5、配置从的文件,比主的文件有一点差别

```shell

vim /etc/keepalived/keealived.con

! Configuration File for keepalived

global_defs {

notification_email {

[email protected]

[email protected]

[email protected]

}

notification_email_from [email protected]

smtp_server 192.168.200.1

smtp_connect_timeout 30

router_id LVS_DEVEL

vrrp_skip_check_adv_addr

vrrp_garp_interval 0

vrrp_gna_interval 0

}

vrrp_instance VI_1 {

state BACKUP #这个要写从

interface ens33 #网卡名字要写成自己的

virtual_router_id 51

priority 90 #从的优先级一定要比主的优先级要低

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

10.0.1.100 #vip要和主的配置的一致

}

}

virtual_server 10.0.1.100 80 {

delay_loop 6

lb_algo rr

lb_kind DR

nat_mask 255.255.255.0

protocol TCP

real_server 10.0.1.33 80 {

weight 1

TCP_CHECK {

connect_timeout 3

connect_port 80

nb_get_retry 3

delay_before_retry 3

}

}

real_server 10.0.1.32 80 {

weight 1

TCP_CHECK {

connect_timeout 3

connect_port 80

nb_get_retry 3

delay_before_retry 3

}

}

}

vrrp_strict #centos7里的keepalived有一个广播 这个需要删除 切记

```

6、重启keepalived,两个机子都需要重启

```shell

systemctl restart keepalived

```

7、查看主的vip是否存在

```shell

root@node2 network-scripts\]# ip a 1: lo: \ mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet 10.0.1.100/32 brd 10.0.1.100 scope global lo:0 valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: \ mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:0e:cc:e5 brd ff:ff:ff:ff:ff:ff inet 10.0.1.32/24 brd 10.0.1.255 scope global noprefixroute ens33 valid_lft forever preferred_lft forever inet 10.0.1.100/32 scope global ens33 valid_lft forever preferred_lft forever inet6 fe80::67a:22ad:a7c5:73/64 scope link noprefixroute valid_lft forever preferred_lft forever \`\`\` 8、关闭主的keepalived,查看vip是否漂移到从上 主:systemctl stop keepalived 从: \[root@localhost html\]# ip a 1: lo: \ mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet 10.0.1.100/32 brd 10.0.1.100 scope global lo:0 valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: \ mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:45:8a:35 brd ff:ff:ff:ff:ff:ff inet 10.0.1.32/24 brd 10.0.1.255 scope global noprefixroute ens33 valid_lft forever preferred_lft forever inet 10.0.1.100/32 scope global ens33 valid_lft forever preferred_lft forever inet6 fe80::de48:34e2:d290:a46/64 scope link noprefixroute valid_lft forever preferred_lft forever 3: virbr0: \ mtu 1500 qdisc noqueue state DOWN group default qlen 1000 link/ether 52:54:00:65:fe:02 brd ff:ff:ff:ff:ff:ff inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0 valid_lft forever preferred_lft forever 4: virbr0-nic: \ mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000 link/ether 52:54:00:65:fe:02 brd ff:ff:ff:ff:ff:ff 复制代码 如果成功,代表keepalived配置成功 主:开启keepalived systemctl restart keepalived 9、安装ipvsadm,两个服务器都需要安装、 yum -y install ipvsadm 10、增加服务器的接口 复制代码 \[root@localhost \~\]# cd /etc/sysconfig/network-scripts/ \[root@localhost network-scripts\]# ls ifcfg-ens33 ifdown-eth ifdown-post ifdown-TeamPort ifup-eth ifup-plip ifup-sit init.ipv6-global ifcfg-lo ifdown-ib ifdown-ppp ifdown-tunnel ifup-ib ifup-plusb ifup-Team network-functions ifcfg-lo:0 ifdown-ippp ifdown-routes ifup ifup-ippp ifup-post ifup-TeamPort network-functions-ipv6 ifdown ifdown-ipv6 ifdown-sit ifup-aliases ifup-ipv6 ifup-ppp ifup-tunnel ifdown-bnep ifdown-isdn ifdown-Team ifup-bnep ifup-isdn ifup-routes ifup-wireless \[root@localhost network-scripts\]# cp ifcfg-lo ifcfg-lo:0 复制代码 11、修改cp的接口 复制代码 \[root@localhost network-scripts\]# vim ifcfg-lo:0 \[root@localhost network-scripts\]# cat ifcfg-lo:0 DEVICE=lo:0 IPADDR=10.0.1.100 NETMASK=255.255.255.255 ONBOOT=yes \[root@localhost network-scripts\]# ifup ifcfg-lo:0 ifconfig 复制代码 12、另一台服务器做同样的操作 13、查看ifconfig看两台服务器的vip添加上没有 14、两台服务器执行操作 ipvsadm --save \> /etc/sysconfig/ipvsadm ipvsadm -A -t 10.0.1.100:80 -s rr ipvsadm -a -t 10.0.1.100:80 -r 10.0.1.33:80 -g ipvsadm -a -t 10.0.1.100:80 -r 10.0.1.32:80 -g 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 route add -host 10.0.1.100 dev lo:0 systemctl restart ipvsadm systemctl status ipvsadm 复制代码 15、两台服务器执行ipvsadm查看是否成功 复制代码 \[root@localhost \~\]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -\> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 10.0.1.100:80 rr -\> 10.0.1.33:80 Route 1 0 0 -\> 10.0.1.32:80 Route 1 0 7 \[root@localhost \~\]# 复制代码 16、两台服务器查看vip是否存在 复制代码 \[root@localhost \~\]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.0.1.2 0.0.0.0 UG 100 0 0 ens33 10.0.1.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33 10.0.1.100 0.0.0.0 255.255.255.255 UH 0 0 0 lo 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0 \[root@localhost \~\]# 复制代码 17、两台服务器源码安装Apache yum -y install httpd 18、编写测试页面 第一台服务器 \[root@localhost \~\]# \[root@localhost \~\]# cat /var/www/html/index.html 1111 \[root@localhost \~\]# 第二台服务器 \[root@localhost \~\]# vim /var/www/html/index.html \[root@localhost \~\]# cat /var/www/html/index.html 2222 \[root@localhost \~\]# 19、两台服务器更改Apache配置文件 复制代码 #http的持久链接主要依靠keepalive KeepAlive OFF #关闭KeeoAlive长链接 KeepAliveTimeout 15 #长连接多久算是超时,超时之后自动断开长连接 MaxKeepAliveRequests 100 #长连接最多接受多少个请求,请求数量大于改值则自动断开 开启Apache systemctl restart httpd

相关推荐
程序猿小D11 小时前
第25节 Node.js 断言测试
后端·node.js·log4j·编辑器·vim·apache·restful
sg_knight11 小时前
Ribbon负载均衡实战指南:7种策略选择与生产避坑
java·spring boot·spring·spring cloud·微服务·ribbon·负载均衡
RR133515 小时前
图标统计页面的设计与控件 Apache echarts
前端·apache·echarts
Ares-Wang2 天前
负载均衡器》》LVS、Nginx、HAproxy 区别
负载均衡
Ares-Wang2 天前
负载均衡LB》》LVS
运维·负载均衡·lvs
tcoding2 天前
《基于Apache Flink的流处理》笔记
笔记·flink·apache
955.2 天前
k8s从入门到放弃之Service负载均衡
容器·kubernetes·负载均衡
ALLSectorSorft3 天前
上门服务小程序会员系统框架设计
小程序·apache
杨过姑父3 天前
部署开源版禅道,修改apache端口无效解决
bug·apache·软件工程·issue
酷爱码3 天前
Spring Boot 整合 Apache Flink 的详细过程
spring boot·flink·apache