文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>piranha实现web负载均衡(dr)

piranha实现web负载均衡(dr)

时间:2010-06-12  来源:qingheliu

这个文档写的蛮好的!

文件: 利用红帽Piranha方案实现WEB负载均衡.pdf
大小: 376KB
下载: 下载

按照它来配,在realserver配置上老是出问题!

我正确的realserver配置如下:

1:在/etc/sysctl.conf中添加如下四行:

# disable arp
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2

2:在/etc/sysconfig/network-scripts/
目录下创建一个文件,名为ifcfg-lo:0
内容如下 :注意NETMASK=255.255.255.255而非255.255.255.0

[root@qht124 ~]# cd /etc/sysconfig/network-scripts/
[root@qht124 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@qht124 network-scripts]# cat ifcfg-lo
ifcfg-lo    ifcfg-lo:0 
[root@qht124 network-scripts]# cat ifcfg-lo:0
DEVICE=lo:0              
IPADDR=192.168.1.6         #vip address
NETMASK=255.255.255.255    #netmask
BROADCAST=192.168.1.6      #vip address
# If you're having problems with gated making 127.0.0.0/8 a martian,
# you can change this to something else (255.255.255.255, for example)
NAME=loopback
ONBOOT=yes
测试日志:

我手动关闭192.168.1.5上的pulse进程,则eth0:1网口消失了

如下:[root@qht124 ~]# /etc/init.d/pulse stop
Shutting down pulse:                                       [  OK  ]
[root@qht124 ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:8A:0A:AF 
          inet addr:192.168.1.5  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe8a:aaf/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2462 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2541 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:203344 (198.5 KiB)  TX bytes:203901 (199.1 KiB)
          Interrupt:193 Base address:0x2000

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:79 errors:0 dropped:0 overruns:0 frame:0
          TX packets:79 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:7384 (7.2 KiB)  TX bytes:7384 (7.2 KiB)

同时日志文件中内容如下:

[root@qht124 ~]# tail -f /var/log/messages

......

Jun 12 10:23:31 qht124 pulse[2957]: Terminating due to signal 15
Jun 12 10:23:31 qht124 lvs[3056]: shutting down due to signal 15
Jun 12 10:23:31 qht124 lvs[3056]: shutting down virtual service virtual
Jun 12 10:23:31 qht124 nanny[3070]: Terminating due to signal 15
Jun 12 10:23:31 qht124 nanny[3071]: Terminating due to signal 15
Jun 12 10:23:32 qht124 pulse: pulse shutdown succeeded

在192.168.1.4上日志中内容如下:

Jun 12 10:12:12 qht124 pulse[2940]: partner dead: activating lvs
Jun 12 10:12:12 qht124 kernel: send_arp uses obsolete (PF_INET,SOCK_PACKET)
Jun 12 10:12:12 qht124 kernel: IPVS: Registered protocols (TCP, UDP, AH, ESP)
Jun 12 10:12:12 qht124 kernel: IPVS: Connection hash table configured (size=4096, memory=32Kbytes)
Jun 12 10:12:12 qht124 kernel: IPVS: ipvs loaded.
Jun 12 10:12:12 qht124 lvs[3952]: starting virtual service virtual active: 80
Jun 12 10:12:12 qht124 kernel: IPVS: [wlc] scheduler registered.
Jun 12 10:12:12 qht124 lvs[3952]: create_monitor for virtual/web1 running as pid 3966
Jun 12 10:12:12 qht124 lvs[3952]: create_monitor for virtual/web2 running as pid 3967
Jun 12 10:12:12 qht124 nanny[3967]: starting LVS client monitor for 192.168.1.6:80 -> 192.168.1.3:80
Jun 12 10:12:12 qht124 nanny[3966]: starting LVS client monitor for 192.168.1.6:80 -> 192.168.1.2:80
Jun 12 10:12:17 qht124 pulse[3954]: gratuitous lvs arps finished

Jun 12 10:16:00 qht124 nanny[3966]: making 192.168.1.2:80 available
Jun 12 10:16:06 qht124 nanny[3967]: making 192.168.1.3:80 available

 

同时:

[root@qht124 ~]# ipvsadm -ln
IP Virtual Server version 1.2.0 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.1.6:80 wlc persistent 30
  -> 192.168.1.3:80               Route   1      0          0        
  -> 192.168.1.2:80               Route   1      0          0        
[root@qht124 ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:7F:30:5D 
          inet addr:192.168.1.4  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe7f:305d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1041 errors:0 dropped:0 overruns:0 frame:0
          TX packets:955 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:79690 (77.8 KiB)  TX bytes:66145 (64.5 KiB)
          Interrupt:193 Base address:0x2000

eth0:1    Link encap:Ethernet  HWaddr 00:0C:29:7F:30:5D 
          inet addr:192.168.1.6  Bcast:192.168.1.6  Mask:255.255.255.255
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:193 Base address:0x2000

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:10 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:760 (760.0 b)  TX bytes:760 (760.0 b)

 

也可使用web 界面来进行测试,方法:最后先修改real1和real2的index.html内容,使得显示不一样。这样方便测试

http://192.168.1.6即可


还有一点:

在real2和real1上同时开启httpd服务,同时在active router上开启httpd服务,则http://192.168.1.6会执行real2或real1上的内容,而不会显示192.168.1.6上的httpd的内容。



就算你关闭掉real1和real2上的httpd服务,然后http://192.168.1.6还是不会显示192.168.1.6上的httpd的内容(这里会提示找不到服务器!),但http://192.168.1.5则会显示(httpd的index.html页面的内容)。

说白了,到192.168.1.6上的请求全部转发到real1和real2上来了,它自己不会处理请求!

 

 

过程中遇到的问题:

root@qht124 ha]# /etc/init.d/pulse start

错误如下:

Starting pulse: pulse: no active lvs services defined in /etc/sysconfig/ha/lvs.cf

 


 

解决方法:
[root@qht124 ~]# cd /etc/sysconfig/ha
[root@qht124 ha]# pwd
/etc/sysconfig/ha
[root@qht124 ha]# cat lvs.cf
serial_no = 46
primary = 192.168.1.4
service = lvs
backup_active = 1
backup = 192.168.1.5
heartbeat = 1
heartbeat_port = 539
keepalive = 6
deadtime = 18
network = direct
debug_level = NONE
monitor_links = 0
virtual virtual {
     active = 1 ##为0时就会出现上面的错误,修改为1就问题即可解决!
     address = 192.168.1.6 eth0:1
     vip_nmask = 255.255.255.255
     port = 80
     persistent = 30
     pmask = 255.255.255.255
     send = "GET / HTTP/1.0\r\n\r\n"
     expect = "HTTP"
     use_regex = 0
     load_monitor = none
     scheduler = wlc
     protocol = tcp
     timeout = 6
     reentry = 15
     quiesce_server = 0
     server web1 {
         address = 192.168.1.2
         active = 1
         port = 80
         weight = 1
     }
     server web2 {
         address = 192.168.1.3
         active = 1
         port = 80
         weight = 1
     }
}


相关阅读 更多 +
排行榜 更多 +
哥布林弹球b服手游下载

哥布林弹球b服手游下载

休闲益智 下载
小马样式盒游戏下载

小马样式盒游戏下载

休闲益智 下载
异变小镇中文版下载安装

异变小镇中文版下载安装

冒险解谜 下载