lvs反向代理------DR

lvs(LB集群的一个实现)

如今反向代理的软件有:

lvs(工作在四层)

haproxy

nginx(工作在七层)

varnish

当今主流的应用是:lvs和nginx,主要是因为varnish有局限性,varnish是工作在内存的 ,所以到是反向代理的数量是有瓶颈的。haproxy用的比较少。

lvs附着与netfilter

五个内置的钩子函数

PREROUTING----->INPUT(流向内部)

PREROUTING----->FORWARD------>POSTROUTING(转发)

OUTPUT-------->POSTROUTING(流向外部)

 

lvs工作与INPUT

PREROUTING------>INPUT(lvs在此强行改变数据的流向)------>POSTROUTING

 

lv是由两部分组成的

ipvs(ip virtual server):一段代码(工作在内核)是真正生效实现调度的代码 ipvsadm(工作在用户空间,负责为ipvs内核框架编写规则)

 

反向代理的DR模式:

操作步骤:

在server1上:

1.配置yum源:

在配置iso6.5 yum源的基础上加上LoadBalancer yum源:

vim /etc/yum.repos.d/rhel-source.repo

[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.6.250/iso6.5
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[LoadBalancer]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.6.250/iso6.5/LoadBalancer
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

将yum源的配置发往另外两台主机:

scp rhel-source.repo [email protected]:/etc/yum.repos.d/rhel-source.repo

scp rhel-source.repo [email protected]:/etc/yum.repos.d/rhel-source.repo

2.安装ipvsadm软件:

yum install ipvsadm -y

安装过程的截图:

lvs反向代理------DR_第1张图片

3.给网卡上加上另外一条ip此ip负责接收请求

 ip addr add 172.25.6.100/24 dev eth0

lvs反向代理------DR_第2张图片

此时可以看到eth0网卡上已经加上了此ip。

4.配置ipvs的规则:

ipvsadm -A  -t  172.25.6.100:80 -s rr      ###意思就是访问172.25.6.100:80端口的信息做轮询处理

ipvsadm -a -t 172.25.6.100:80 -r 172.25.6.2:80 -g  

ipvsadm -a -t 172.25.6.100:80 -r 172.25.6.3:80  -g    ###这两句的意思是将访问172.25.6.100的信息轮询到172.25.6.2 和172.25.6.3:80端口上

5.查看ipvsadm的规则:

ipvsadm -l

lvs反向代理------DR_第3张图片

 

在server2上配置如下:

1.配置yum源:这个步骤和之前配置server1上的yum源是一样的

2.配置网卡上的ip地址:

ip adder add 172.25.6.100/32 dev eth0

ip addr show

lvs反向代理------DR_第4张图片

上面显示已经加上了。

3.下载arptables

yum install arptables -y

arptables -A IN -d 172.25.6.100 -j DROP      ###不回应二层的arp请求

arptables -A OUT -s 172.25.6.100 -j mangle --mangle-ip-s 172.25.6.2   ##将接受172.25.6.100的请求的数据用172.25.6.2回应

4.下载httpd用来测试:

yum install httpd -y

[root@server2 html]# vim /var/www/html/index.html

文件内容:server2

在server3上的配置和server2上的配置是只是最后在server3的index.html里面写的内容不一样,其他一样的

 

测试:在真机上

curl 172.25.6.100

lvs反向代理------DR_第5张图片

每次curl到不同的机器表示实验结果是正确的

在server1上查看轮询的结果:

ipvsadm -l

lvs反向代理------DR_第6张图片

可以看到在这七次的curl中4次命中了server23次命中了server3

你可能感兴趣的:(企业,Linux,lvs)