LVS-nat模式http+mysql和端口修改

首先要准备四台虚拟机
两台RIP一台VIP一台客户端
RIP的网关一定要指定到VIP同网段地址上
然后就是在rip上安装httpd然后更改网址首页为
RS1 server 192.168.26.100
RS2 server 192.168.26.101
两台都要安装和更改

VIP机器上,需要安装ipvsadm ,然后地址是RIP设置的网关,还要同网段
然后再加一个网卡和客户端同一网段

客户端网段和新添加网卡 网段为172.16.1.0/24

安装完ipvsadm之后,我们就可以添加机器了

ipvsadm -A -t 172.16.1.15:80 -s rr
ipvsadm -a -t 172.16.1.15:80 -r 192.168.26.100 -m
ipvsadm -a -t 172.16.1.15:80 -r 192.168.26.101 -m

我们也可以吧这些命令给保存起来

ipvsadm -Sn > /etc/sysconfig/ipvsadm
后面这个地址是调度规则的文件可以保存到这里面

当然,我们做到这一步可以测试下能不能访问,访问的时候需要在客户端上访问

[root@localhost ~]# curl 172.16.1.15
RS2 server 192.168.26.101
[root@localhost ~]# curl 172.16.1.15
RS1 server 192.168.26.100
[root@localhost ~]# curl 172.16.1.15
RS2 server 192.168.26.101
[root@localhost ~]# curl 172.16.1.15
RS1 server 192.168.26.100
[root@localhost ~]# 

当然我们还可以吧规则给清空

ipvsadm -C

然后查看规则

[root@localhost ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

发现没有规则
这时候需要导入我们刚刚保存到文件里的配置文件

ipvsadm -R < /etc/sysconfig/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  172.16.1.15:80 rr
  -> 192.168.26.100:80            Masq    1      0          0         
  -> 192.168.26.101:80            Masq    1      0          0   

发现又回来了

还有一个小技巧
我们刚开始安装ipvsadm是没有启动的
这时候我们给他清除然后在开机自启和启动

[root@localhost ~]# ipvsadm -C
[root@localhost ~]# systemctl enable ipvsadm.service && systemctl start ipvsadm.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/ipvsadm.service to /usr/lib/systemd/system/ipvsadm.service.
[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  172.16.1.15:80 rr
  -> 192.168.26.100:80            Masq    1      0          0         
  -> 192.168.26.101:80            Masq    1      0          0         
[root@localhost ~]# 

发现规则又出现了

调度MYSQL
在RIP两台机子上安装mysql
然后在客户端上安装mysql
RIP上的两台装完需要授权

grant all on *.* to test@'%' identified by '123456';
两台都要做

然后返回lvs服务器上添加

ipvsadm -A -t 172.16.1.15:3306 -s rr
ipvsadm -a -t 172.16.1.15:3306 -r 192.168.26.100 -m
ipvsadm -a -t 172.16.1.15:3306 -r 192.168.26.101 -m

这一步做完,我们要怎么才能验证呢
我们可以把RIP上的两台server_id给修改成他们ip

set global server_id=100;
set global server_id=101;

然后在客户端上查看(客户端上也要安装mysql)

mysql -utest -h 172.16.1.15 -p123456 -e 'select @@server_id'

第一次访问是100 第二次是101

[root@localhost ~]# mysql -utest -h 172.16.1.15 -p123456 -e 'select @@server_id' 
+-------------+
| @@server_id |
+-------------+
|         100 |
+-------------+
[root@localhost ~]# mysql -utest -h 172.16.1.15 -p123456 -e 'select @@server_id'
+-------------+
| @@server_id |
+-------------+
|         101 |
+-------------+
[root@localhost ~]# mysql -utest -h 172.16.1.15 -p123456 -e 'select @@server_id'
+-------------+
| @@server_id |
+-------------+
|         100 |
+-------------+
[root@localhost ~]# mysql -utest -h 172.16.1.15 -p123456 -e 'select @@server_id'
+-------------+
| @@server_id |
+-------------+
|         101 |
+-------------+

当我们停止这个服务的时候,ipvsadm会自动保存一份到调度规则文件里面
(适用于没有提前保存到调度配置文件的事故)

我们也可以修改算法

ipvsadm -E -t 172.16.1.15:80 -s wrr
ipvsadm -e -t 172.16.1.15:80 -r 192.168.26.100 -w 3 -m
-m一定不能忘记,要不然,默认就是DR模式

这一步做完可以查看下

[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  172.16.1.15:80 wrr
  -> 192.168.26.100:80            Masq    3      0          1         
  -> 192.168.26.101:80            Masq    1      0          1         
TCP  172.16.1.15:3306 rr
  -> 192.168.26.100:3306          Masq    1      0          0         
  -> 192.168.26.101:3306          Masq    1      0          0      

发现100的算法权值变成了3
然后去客户端查看下

[root@localhost ~]# curl 172.16.1.15
RS1 server 192.168.26.100
[root@localhost ~]# curl 172.16.1.15
RS1 server 192.168.26.100
[root@localhost ~]# curl 172.16.1.15
RS1 server 192.168.26.100
[root@localhost ~]# curl 172.16.1.15
RS2 server 192.168.26.101

发现访问100的时候变成了3次,说明之前的修改成功了

nat也是支持端口映射的
我们也可以吧100地址的端口改为8080
首先要把100里的httpd配置文件吧Linsten80改为8080
然后重启httpd服务

回到lvs机器上,在修改之前需要吧原来100:80端口给删除掉然后再添加

ipvsadm -d  -t 172.16.1.15:80 -r 192.168.26.100
ipvsadm -a -t 172.16.1.15:80 -r 192.168.26.100:8080 -w 3 -m
添加的时候端口号就是得8080了,要不然访问不了,模式也要指定

查看一下

[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  172.16.1.15:80 wrr
  -> 192.168.26.100:8080          Masq    3      0          0         
  -> 192.168.26.101:80            Masq    1      0          0         
TCP  172.16.1.15:3306 rr
  -> 192.168.26.100:3306          Masq    1      0          0         
  -> 192.168.26.101:3306          Masq    1      0          0 

发现8080已经添加进来了,进客户端测试下

[root@localhost ~]# curl 172.16.1.15
RS2 server 192.168.26.101
[root@localhost ~]# curl 172.16.1.15
RS1 server 192.168.26.100
[root@localhost ~]# curl 172.16.1.15
RS1 server 192.168.26.100
[root@localhost ~]# curl 172.16.1.15
RS1 server 192.168.26.100
[root@localhost ~]# curl 172.16.1.15
RS2 server 192.168.26.101

最后要说一下,当我们stop ipvsadm时候,他会自动执行下面这个命令

ExecStop=/bin/bash -c "exec /sbin/ipvsadm-save -n > /etc/sysconfig/ipvsadm"

这个命令会保存你调度规则的命令

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值