1.原理nginx
基于NAT机制实现。当用户请求到达director以后,director将请求报文的目标地址(即VIP)改为选定的realserver地址,同时将报文的目标端口也改为选定的realserver的相应端口,最后将报文请求发送到指定的realserver。在服务器端获得数据后,realserver将数据返给director,而director将报文的源地址和源端口改为VIP和相应端口,而后把数据发送给用户,完成整个负载调度过程。后端
2 环境及组网搭建bash
全部的虚拟机均是在vmware中搭建的Ubuntu系统,IP分别为192.168.1.106 192.168.1.109 192.168.1.110,做为负载均衡调度的虚拟机上应该有两块网卡,一个用于提供外部访问的VIP,一个做为跟后端RS创建链接的RIP(两个IP能够不在同一个网段,须要保证RIP和后端的RS在同一网段),所以给106机器增长一块虚拟网卡服务器
ifconfig eth0:0 192.168.1.10 netmask 255.255.255.255 broadcast 192.168.1.100
因为这里我全部的IP都是你可以互相ping通的,所以无需设置默认网关负载均衡
这样经过ifconfig命令查看的网卡信息为:curl
给109 110两台rs上安装nginx服务,修改nginx访问nginx主页的信息,以下:url
106机器做为负载均衡器,开启消息转发:3d
echo 1 > /proc/sys/net/ipv4/ip_forward
3 经过ipvsadm配置NAT负载均衡server
ipvsadm -A -t 192.168.1.10:9999 -s rr ipvsadm -a -t 192.168.1.10:9999 -r 192.168.1.109:80 -m ipvsadm -a -t 192.168.1.10:9999 -r 192.168.1.110:80 -m
查看配置的ipvs信息blog
经过curl命令访问虚拟服务,能够看到lvs按照轮训的方式依次将消息转发给109和110处理