在不使用p --persistent 的情况下如何能将同一个IP同一个端口的数据包发往同一台RealServer 呢

我们现在要做一个语音合成服务器的集群,服务器要求收到的包是连续的,即同一个IP同一个端口的数据包发往同一台RealServer 。而且同一个客户端可以发起多个合成请求,即同一个IP可以有不同的端口发起连接。在不改动客户端和服务器的代码的情况下,LVS要如何设置,能实现负载均衡呢??

Forums:

不启用持久连接,LVS似乎做不到哟

针对所描述的应用情形,我们一般推荐使用persistent选项和wlc或wrr调度方法。有什么道理不能用--persistent选项吗?

另外,可以考虑使用sh调度方法,不过它有它的限制,请参见:

如果用了--persistent选项 ,那同一个IP上的所有客户端(端口不同)会被负载到同一台realserver 上,我现在想做的是能让同一个IP上的不同客户端能连接不同的realserver

发错了

由于是双猫负载上网 公网ip经常换 so 到lvs的session 经常导致不对
请问如何解决
2- 修改haresources文件
abfront1 IPaddr::192.168.1.150 lvsdr-basic ldirectord

ha.cf
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
deadtime 20
initdead 20
bcast eth1 在eth1上发送心跳广播
mcast eth1 225.0.0.1 694 1 0
auto_failback on
node centos1
node centos2
ping_group group1 192.168.1.151 192.168.1.152
respawn root /usr/lib/heartbeat/ipfail
apiauth ipfail gid=root uid=root

ldirectord.cf
virtual=192.168.1.150:80
real=192.168.1.151:80 gate
real=192.168.1.152:80 gate
service=http // 服务名称http
request="test.html" // lvs服务器测试代码
receive="Test" //
scheduler=sh // 按照source hash 调度
protocol=tcp

/etc/init.d/lvsdr-basic
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

VIP=192.168.1.150
RIP1=192.168.1.151
RIP2=192.168.1.152
###########################
# ifconfig a
#
#/sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up
#
############################

/sbin/route add -host $VIP dev eth0:0
echo "1" > /proc/sys/net/ipv4/ip_forward

谢谢 ,有什么不清楚的配置 我再补充

This was so helpful and easy! Do you have any areilcts on rehab?

You colu'ndt pay me to ignore these posts!