我正在使用隧道建立一个LVS集群。目标是有两个指导服务器(在不同的数据中心中)和一个真正的服务器(目前,将在负载平衡中添加更多)。通过端口80、443和8080访问真正的服务器。
我已经成功地配置了我的主要主管,它运行得很好,所有的端口都是开放的,数据流动得很好。
但是,备份指导只能连接到端口443上的真正服务器。下面是我在/var/log/messages中获得的输出:
Oct 27 12:25:20 vps4252 pulse[2819]: STARTING PULSE AS MASTER
Oct 27 12:25:38 vps4252 pulse[2819]: partner dead: activating lvs
Oct 27 12:25:38 vps4252 lvsd[2821]: starting virtual service https active: 443
Oct 27 12:25:38 vps4252 lvsd[2821]: create_monitor for https/node1 running as pid 2831
Oct 27 12:25:38 vps4252 lvsd[2821]: starting virtual service http_8080 active: 8080
Oct 27 12:25:38 vps4252 lvsd[2821]: create_monitor for http_8080/node1 running as pid 2833
Oct 27 12:25:38 vps4252 nanny[2831]: starting LVS client monitor for 103.13.xxx.xxx:443 -> 103.29.zzz.zzz:443
Oct 27 12:25:38 vps4252 nanny[2833]: starting LVS client monitor for 103.13.xxx.xxx:8080 -> 103.29.zzz.zzz:8080
Oct 27 12:25:38 vps4252 nanny[2831]: [ active ] making 103.29.zzz.zzz:443 available
Oct 27 12:25:43 vps4252 pulse[2823]: gratuitous lvs arps finished(忽略缺少的端口80行,我在测试时禁用了它)
保姆进程似乎只能连接到端口443上的真正服务器。然而,对于netcat或curl,我在其他两个端口上得到了正确的响应。
下面是我的lvs.cf (作为一个服务器):
serial_no = 36
primary = 103.13.yyy.yyy
service = lvs
backup = 0.0.0.0
heartbeat = 1
heartbeat_port = 539
keepalive = 6
deadtime = 18
network = tunnel
debug_level = NONE
virtual http {
active = 1
address = 103.13.xxx.xxx eth0:1
vip_nmask = 255.255.255.255
port = 80
send = "GET / HTTP/1.0\r\n\r\n"
expect = "HTTP"
use_regex = 0
load_monitor = none
scheduler = rr
protocol = tcp
timeout = 6
reentry = 15
quiesce_server = 0
#Define nodes
server node1 {
address = 103.29.zzz.zzz
active = 1
port = 80
weight = 1
}
}
virtual https {
active = 1
address = 103.13.xxx.xxx eth0:1
vip_nmask = 255.255.255.255
port = 443
send = "GET / HTTP/1.0\r\n\r\n"
expect = "HTTP"
use_regex = 0
load_monitor = none
scheduler = rr
protocol = tcp
timeout = 6
reentry = 15
quiesce_server = 0
#Define nodes
server node1 {
address = 103.29.zzz.zzz
active = 1
port = 443
weight = 1
}
}
virtual http_8080 {
active = 1
address = 103.13.xxx.xxx eth0:1
vip_nmask = 255.255.255.255
port = 8080
send = "GET / HTTP/1.0\r\n\r\n"
expect = "HTTP"
use_regex = 1
protocol = tcp
#Define nodes
server node1 {
address = 103.29.zzz.zzz
active = 1
port = 8080
weight = 1
}
}实际服务器上的隧道已正确设置(毕竟,端口443正在工作)
所以我很困惑..。是否有办法强迫节点处于活动状态,即使保姆找不到它?
发布于 2013-11-15 05:46:35
解决这个问题的方法是创建一个bash脚本来平平真正的服务器,并从lvs配置文件中调用它。
https://serverfault.com/questions/548986
复制相似问题