lvs的dr模式配置http和https以及配置mysql负载均衡

lvs的dr模式配置http和https以及配置mysql负载均衡

LVS(Linux Virtual Server)是基于 Linux 内核的负载均衡技术,可以用于构建高可用、高性能的服务集群。LVS 包含四种工作模式:NAT 模式、IP 隧道模式、DR直接路由模式和IP 地址重写模式。这里我将重点介绍DR直接路由模式的原理以及配置方法:

LVS(Linux Virtual Server)的DR(Direct Routing)模式是一种负载均衡模式,其工作原理如下:

1.客户端请求到达负载均衡器,负载均衡器根据一定的算法(如轮询、最小连接数等)选择一台真实服务器。
2.负载均衡器将请求的目标 MAC 地址修改为选定服务器的 MAC 地址,并将请求的 IP 地址不做修改直接转发给选定服务器。
3.选定服务器接收到请求后,处理请求并直接将响应返回给客户端,绕过负载均衡器。

配置步骤通常包括:

1.在负载均衡器上配置 LVS,指定 DR 模式,并配置虚拟 IP 地址。
2.在真实服务器上配置网络,确保能够响应虚拟 IP 地址的请求。
3.在负载均衡器上配置转发规则,以确定请求应该转发到哪台真实服务器。

注意事项包括:

1.需要确保负载均衡器和真实服务器之间的网络配置正确,特别是在直接路由模式下,负载均衡器不会更改数据包的目标 IP 地址,因此真实服务器需要配置正确的路由表来处理返回流量。
2.需要考虑负载均衡器和真实服务器之间的网络延迟,以及负载均衡器的性能,避免成为性能瓶颈。
3.需要定期监控负载均衡器和真实服务器的运行状态,以及负载均衡器的负载情况,及时调整配置以应对流量变化。

lvs的dr模式配置http和https以及配置mysql负载均衡

实验环境:
第一台机:192.168.159.142
第二台机:192.168.159.143
第三台机:192.168.159.144

dr上的配置
[root@dr ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> 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
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever

2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000		
    link/ether 00:0c:29:b5:d1:27 brd ff:ff:ff:ff:ff:ff
    altname enp11s0
    inet 192.168.159.142/24 brd 192.168.159.255 scope global dynamic noprefixroute ens192
       valid_lft 1636sec preferred_lft 1636sec
    inet6 fe80::a80e:2f9:f0d:e89a/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

配置ip
[root@dr ~]# cd /etc/NetworkManager/system-connections/
[root@dr system-connections]# ls
ens192.nmconnection
[root@dr system-connections]# vim ens192.nmconnection 
[root@dr ~]# cat /etc/NetworkManager/system-connections/ens192.nmconnection 
[connection]
id=ens192
type=ethernet
autoconnect-priority=-999
interface-name=ens192
timestamp=1701705397

[ethernet]

[ipv4]
method=manual
address1=192.168.159.142/24,192.168.159.2
address2=192.168.159.250/32
dns=114.114.114.114

[ipv6]
addr-gen-mode=eui64
method=auto

[proxy]

[root@dr system-connections]# vim /etc/rc.d/rc.local 
添加下列两行
touch /var/lock/subsys/local
route add -host 192.168.159.250 dev ens192
[root@dr system-connections]# chmod +x /etc/rc.d/rc.local 

重启使其生效
[root@dr system-connections]# reboot
[root@dr ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> 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
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:b5:d1:27 brd ff:ff:ff:ff:ff:ff
    altname enp11s0
    inet 192.168.159.142/24 brd 192.168.159.255 scope global noprefixroute ens192 (dip)
       valid_lft forever preferred_lft forever
    inet 192.168.159.250/32 scope global noprefixroute ens192	(vip)
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:feb5:d127/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@dr ~]# ip route
default via 192.168.159.2 dev ens192 proto static metric 100 
192.168.159.250 dev ens192 scope link 
192.168.159.0/24 dev ens192 proto kernel scope link src 192.168.159.142 metric 100 


rs1一个网卡

[root@rs1 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> 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
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000			(rip)
    link/ether 00:0c:29:f6:3c:d5 brd ff:ff:ff:ff:ff:ff
    altname enp11s0
    inet 192.168.159.143/24 brd 192.168.159.255 scope global dynamic noprefixroute ens192
       valid_lft 1591sec preferred_lft 1591sec
    inet6 fe80::be29:eb28:8529:52f5/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

配置rip
[root@rs1 ~]# cd /etc/NetworkManager/system-connections/
[root@rs1 system-connections]# ls
ens192.nmconnection
[root@rs1 system-connections]# vim ens192.nmconnection 
[root@rs1 system-connections]# cat ens192.nmconnection 
[connection]
id=ens192
type=ethernet
autoconnect-priority=-999
interface-name=ens192
timestamp=1702409089

[ethernet]

[ipv4]
method=manual
address1=192.168.159.143/24,192.168.159.2
dns=114.114.114.114

[ipv6]
addr-gen-mode=eui64
method=auto

[proxy]

[root@rs1 system-connections]# vim /etc/sysctl.conf 
添加如下内容
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
[root@rs1 system-connections]# cd
使其生效
[root@rs1 ~]# sysctl -p
net.ipv4.all.all.arp_ignore = 1
net.ipv4.all.all.arp_announce = 2
然后重启才能再去配vip
[root@rs1 ~]# reboot
rs1跟rs2的vip需要跟dr的vip一致
将vip配在lo上(临时生效)
[root@rs1 ~]# yum -y install net-tools
[root@rs1 ~]# ifconfig lo:0 192.168.159.250/32 broadcast 192.168.159.250 up
配置路由
[root@rs1 ~]# route add -host 192.168.159.250 dev lo:0
将临时配置命令写到开机自启文件里面去
[root@rs1 ~]# chmod +x /etc/rc.d/rc.local
[root@rs1 ~]# vim /etc/rc.d/rc.local 
在里面添加下列两行
ifconfig lo:0 192.168.159.250/32 broadcast 192.168.159.250 up
route add -host 192.168.159.250 dev lo:0
然后重启修改的vip才会生效
[root@rs1 ~]# reboot
[root@rs1 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> 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 192.168.159.250/0 brd 192.168.159.250 scope global lo:0
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:f6:3c:d5 brd ff:ff:ff:ff:ff:ff
    altname enp11s0
    inet 192.168.159.143/24 brd 192.168.159.255 scope global noprefixroute ens192
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fef6:3cd5/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
       
安装nginx
[root@rs1 ~]# yum -y install nginx
修改网页的测试页面并启动服务
[root@rs1 ~]# rm -rf /usr/share/nginx/html/index.html 
[root@rs1 ~]# echo rs1 > /usr/share/nginx/html/index.html
[root@rs1 ~]# systemctl enable --now nginx
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.

配置证书
[root@rs1 ~]# mkdir /etc/nginx/ssl
[root@rs1 ~]# cd /etc/nginx/ssl
[root@rs1 ssl]# openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout nginx.key -out nginx.crt -subj "/C=CN/ST=WH/L=WH/0=www/CN=test.com"
........+...+..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*..+.............+.....+.......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.+...........+..........+...+...........+.+..+......+.+.....+.........+.+.........+.........+.................+...+...+...+.+........+.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
.+....+..+.........+......+.+...+.........+..+.+...+..+....+........+...............+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*..+.......+.....+...+.......+...+........+.............+.........+...+.....+......................+...+.....+.........+....+......+.....+...+...+.........+.+...............+...............+...+.........+.....+.+.........+........+....+.......................+...+...................+...+......+..+.......+..+......+.......+.....+.+..+..........+.........+.....+...+.+......+.....+.+...+......+...+.....+......+.....................+.+..+..........+.....+.............+.....+....+...+...+...+....................+......+......+.............+.........+.....+..................+........................+....+.....+.+.....+.+...+..+.......+..+.........+..........+.....+............+.......+......+.....+.......+..+.+............+........+.+........+.+..............+............+.+...+.........+..+..........+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-----
req: Skipping unknown subject name attribute "0"
[root@rs1 ssl]# ls
nginx.crt  nginx.key
[root@rs1 ssl]# vim /etc/nginx/nginx.conf
    server {
        listen       443 ssl http2;
        listen       [::]:443 ssl http2;
        server_name  _;
        root         /usr/share/nginx/html;
#
        ssl_certificate "/etc/nginx/ssl/nginx.crt";
        ssl_certificate_key "/etc/nginx/ssl/nginx.key";
#        ssl_session_cache shared:SSL:1m;
#        ssl_session_timeout  10m;
#        ssl_ciphers PROFILE=SYSTEM;
        ssl_prefer_server_ciphers on;
}
[root@rs1 ssl]# systemctl restart nginx
[root@rs1 ssl]# ss -antl
State     Recv-Q    Send-Q       Local Address:Port        Peer Address:Port    Process    
LISTEN    0         511                0.0.0.0:443              0.0.0.0:*                  
LISTEN    0         128                0.0.0.0:22               0.0.0.0:*                  
LISTEN    0         511                0.0.0.0:80               0.0.0.0:*                  
LISTEN    0         511                   [::]:443                 [::]:*                  
LISTEN    0         128                   [::]:22                  [::]:*                  
LISTEN    0         511                   [::]:80                  [::]:*                  

rs2一个网卡

[root@rs2 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> 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
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000		(rip)
    link/ether 00:0c:29:b6:d6:09 brd ff:ff:ff:ff:ff:ff
    altname enp2s5
    inet 192.168.159.144/24 brd 192.168.159.255 scope global dynamic noprefixroute ens37
       valid_lft 1610sec preferred_lft 1610sec
    inet6 fe80::dba6:4d12:cba0:e412/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

配置rip
[root@rs2 ~]# cd /etc/NetworkManager/system-connections/
[root@rs2 system-connections]# ls
ens37.nmconnection
[root@rs2 system-connections]# vim ens37.nmconnection 
[root@rs2 system-connections]# cat ens37.nmconnection 
[connection]
id=ens37
type=ethernet
autoconnect-priority=-999
interface-name=ens37
timestamp=1704968644

[ethernet]

[ipv4]
method=manual
address1=192.168.159.144/24,192.168.159.2
dns=114.114.114.114

[ipv6]
addr-gen-mode=eui64
method=auto

[proxy]

[root@rs2 system-connections]# vim /etc/sysctl.conf 
添加如下内容
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
[root@rs2 system-connections]# cd
刷新使其生效
[root@rs2 ~]# sysctl -p
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
然后重启才能再去配vip
[root@rs2 ~]# reboot
rs1跟rs2的vip需要跟dr的vip一致
将vip配在lo上(临时生效)
[root@rs2 ~]# yum -y install net-tools
[root@rs2 ~]# ifconfig lo:0 192.168.159.250/32 broadcast 192.168.159.250 up
配置路由
[root@rs2 ~]# route add -host 192.168.159.250 dev lo:0
将临时配置命令写到开机自启文件里面去
[root@rs2 ~]# chmod +x /etc/rc.d/rc.local
[root@rs2 ~]# vim /etc/rc.d/rc.local 
在里面添加下列两行
ifconfig lo:0 192.168.159.250/32 broadcast 192.168.159.250 up
route add -host 192.168.159.250 dev lo:0
然后重启修改的vip才会生效
[root@rs2 ~]# reboot
[root@rs2 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> 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 192.168.159.250/0 brd 192.168.159.250 scope global lo:0
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:b6:d6:09 brd ff:ff:ff:ff:ff:ff
    altname enp2s5
    inet 192.168.159.144/24 brd 192.168.159.255 scope global noprefixroute ens37
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:feb6:d609/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

安装nginx
[root@rs2 ~]# yum -y install nginx
修改网页的测试页面并启动服务
[root@rs2 ~]# rm -rf /usr/share/nginx/html/index.html 
[root@rs2 ~]# echo rs1 > /usr/share/nginx/html/index.html
[root@rs2 ~]# systemctl enable --now nginx
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.

配置证书
[root@rs2 ~]# mkdir /etc/nginx/ssl
[root@rs2 ~]# cd /etc/nginx/ssl
[root@rs2 ssl]# openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout nginx.key -out nginx.crt -subj "/C=CN/ST=WH/L=WH/0=www/CN=test.com"
..+.+...+...+..+.+..+.........+.........+......+.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*...+....................+.+.....+...+.+.....+......+....+..+..........+..+..........+..+......+............+...+.......+............+.........+..+...+....+.....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*...+............+......+.+.....+.+...+...........+.+.....+...+.........+......+.+......+...+.........+........+.......+..+....+..+...+.........+..........+...........+.+.........+.........+...+..+............+....+.........+.....+.+......+.....+......+.......+.....+...+...+.+.....+.........+.+...........+.......+...+.....+.........+.............+............+.........+............+........+.+.........+......+.........+..+...+.+........+...+....+...+......+...........+....+.........+..+....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*...+.........+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*...+...+......+.....+.+...........+....+.....+.+..+.+.....+......+....+.....+.......+........+.......+............+..+...+...+.......+......+......+...........+...+......+..........+.........+..+....+...+..+...+...+.......+..+....+..+.........+...+.+.........+.....+.+..............+......+.....................+.+..+.+......+.....+...+............+.+...............+.....+....+........+.+..+............................+.....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-----
req: Skipping unknown subject name attribute "0"
[root@rs2 ssl]# ls
nginx.crt  nginx.key
[root@rs2 ssl]# vim /etc/nginx/nginx.conf
#
    server {
        listen       443 ssl http2;
        listen       [::]:443 ssl http2;
        server_name  _;
        root         /usr/share/nginx/html;
#
        ssl_certificate "/etc/pki/nginx/server.crt";
        ssl_certificate_key "/etc/pki/nginx/private/server.key";
#        ssl_session_cache shared:SSL:1m;
#        ssl_session_timeout  10m;
#        ssl_ciphers PROFILE=SYSTEM;
        ssl_prefer_server_ciphers on;
}
[root@rs2 ssl]# systemctl restart nginx
[root@rs2 ssl]# ss -antl
State     Recv-Q    Send-Q       Local Address:Port        Peer Address:Port    Process    
LISTEN    0         511                0.0.0.0:443              0.0.0.0:*                  
LISTEN    0         128                0.0.0.0:22               0.0.0.0:*                  
LISTEN    0         511                0.0.0.0:80               0.0.0.0:*                  
LISTEN    0         511                   [::]:443                 [::]:*                  
LISTEN    0         128                   [::]:22                  [::]:*                  
LISTEN    0         511                   [::]:80                  [::]:*                  

再回到dr上操作

安装ipvsadm命令
[root@dr ~]# yum -y install ipvsadm
[root@dr ~]# ipvsadm -A -t 192.168.159.250:80 -s rr
[root@dr ~]# ipvsadm -a -t 192.168.159.250:80 -r 192.168.159.143:80 -g
[root@dr ~]# ipvsadm -a -t 192.168.159.250:80 -r 192.168.159.144:80 -g
[root@dr ~]# ipvsadm -A -t 192.168.159.250:443 -s rr
[root@dr ~]# ipvsadm -a -t 192.168.159.250:443 -r 192.168.159.143:443 -g
[root@dr ~]# ipvsadm -a -t 192.168.159.250:443 -r 192.168.159.144:443 -g
[root@dr ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.159.250:80 rr
  -> 192.168.159.143:80           Route   1      0          0         
  -> 192.168.159.144:80           Route   1      0          0         
TCP  192.168.159.250:443 rr
  -> 192.168.159.143:443          Route   1      0          0         
  -> 192.168.159.144:443          Route   1      0          0         

设置开机自启
[root@dr ~]# vim /etc/rc.d/rc.local
添加下面三行
ipvsadm -A -t 192.168.159.250:80 -s rr
ipvsadm -a -t 192.168.159.250:80 -r 192.168.159.143:80 -g
ipvsadm -a -t 192.168.159.250:80 -r 192.168.159.144:80 -g
ipvsadm -A -t 192.168.159.250:443 -s rr
ipvsadm -a -t 192.168.159.250:443 -r 192.168.159.143:443 -g
ipvsadm -a -t 192.168.159.250:443 -r 192.168.159.144:443 -g
可以重启一下再去访问
[root@dr ~]# reoot

然后访问一下http
在这里插入图片描述

再去测试访问https(因为浏览器缓存的原因,我这里只刷新出了一个页面)

在这里插入图片描述
在这里插入图片描述

lvs的dr模式配置mysql负载均衡

rs1上

[root@rs1 ~]# yum -y install mariadb*
[root@rs1 ~]# systemctl enable --now mariadb
Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.
[root@rs1 ~]# ss -antl
State     Recv-Q    Send-Q       Local Address:Port        Peer Address:Port    Process    
LISTEN    0         511                0.0.0.0:443              0.0.0.0:*                  
LISTEN    0         128                0.0.0.0:22               0.0.0.0:*                  
LISTEN    0         511                0.0.0.0:80               0.0.0.0:*                  
LISTEN    0         80                 0.0.0.0:3306             0.0.0.0:*                  
LISTEN    0         511                   [::]:443                 [::]:*                  
LISTEN    0         128                   [::]:22                  [::]:*                  
LISTEN    0         511                   [::]:80                  [::]:*                  
[root@rs1 ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.5.22-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> grant all on *.* to root@'192.168.159.%' identified by '123';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> create database rs1;
Query OK, 1 row affected (0.000 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| rs1                |
+--------------------+
4 rows in set (0.001 sec)

MariaDB [(none)]> quit
Bye

rs2上

[root@rs2 ~]# yum -y install mariadb*
[root@rs2 ~]# systemctl enable --now mariadb
Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.
[root@rs2 ~]# ss -antl
State     Recv-Q    Send-Q       Local Address:Port        Peer Address:Port    Process    
LISTEN    0         511                0.0.0.0:443              0.0.0.0:*                  
LISTEN    0         128                0.0.0.0:22               0.0.0.0:*                  
LISTEN    0         511                0.0.0.0:80               0.0.0.0:*                  
LISTEN    0         80                 0.0.0.0:3306             0.0.0.0:*                  
LISTEN    0         511                   [::]:443                 [::]:*                  
LISTEN    0         128                   [::]:22                  [::]:*                  
LISTEN    0         511                   [::]:80                  [::]:*                  
[root@rs2 ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.5.22-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> grant all on *.* to root@'192.168.159.%' identified by '123';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.001 sec)

MariaDB [(none)]> quit
Bye

dr上

[root@dr ~]# ipvsadm -A -t 192.168.159.250:3306 -s wrr
[root@dr ~]# ipvsadm -a -t 192.168.159.250:3306 -r 192.168.159.143:3306 -g
[root@dr ~]# ipvsadm -a -t 192.168.159.250:3306 -r 192.168.159.144:3306 -g
[root@dr ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.159.250:80 rr
  -> 192.168.159.143:80           Route   1      0          0         
  -> 192.168.159.144:80           Route   1      0          0         
TCP  192.168.159.250:443 rr
  -> 192.168.159.143:443          Route   1      0          0         
  -> 192.168.159.144:443          Route   1      0          0         
TCP  192.168.159.250:3306 wrr
  -> 192.168.159.143:3306         Route   1      0          0         
  -> 192.168.159.144:3306         Route   1      0          0         

新开一台机访问达成效果(可以看到一个数据库有rs1另一个没有)

[root@cjy ~]# mysql -uroot -p123 -h192.168.159.250 -e 'show databases;'
mysql: [Warning] Using a password on the command line interface can be insecure.
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| rs1                |
+--------------------+
[root@cjy ~]# mysql -uroot -p123 -h192.168.159.250 -e 'show databases;'
mysql: [Warning] Using a password on the command line interface can be insecure.
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值