我正在尝试建立一个两节点的squid代理集群。这将是一个正常的代理(既不是反向的,也不是透明的)。
我使用LVS (内核2.6.32,ipvsadm v.1.2.1,隧道)进行负载平衡,使用ldirectord ( 1.0.3)作为HA,使用squid (v.3.1.7)作为代理服务器。
对于大多数站点来说,集群工作正常,但是在登录到google帐户、通过serverfault.com登录OpenID等方面遇到了问题。似乎问题出现在具有某种重定向的站点上,尽管在其他站点上,301编码的重定向工作很好。当我直接通过每个代理节点工作时,一切都很好。我在LVS中尝试了不同类型的作业调度算法,但是没有帮助。在集群中只留下一个节点也不能解决问题。乌贼的access.log和cache.log也是“干净”的,没有出现错误,只是正常的活动。
有人遇到过这样的问题吗?有人有这种类型的工作集群(与IPVS相平衡)吗?对故障排除有什么想法吗?
下面是配置文件的一些部分: ldirectord.cf:
# Virtual Server for HTTP_PROXY
virtual=10.128.0.109:8080
fallback=127.0.0.1:80
real=10.128.1.43:8080 ipip 30
real=10.128.0.106:8080 ipip 40
service=http_proxy
request="http://www.google.com/index.html"
receive="Google Search"
scheduler=wlc
#persistent=600
protocol=tcp
checktype=negotiatesquid.conf:
http_port 10.128.0.106:8080 # "real" IP of the node
http_port 10.128.0.109:8080 # "Virtual" IP of the cluster on tunl0 interface
http_port 127.0.0.1:8080
cache_mem 300 MB
cache_dir ufs /opt/squid/var/cache 500 16 256
cache_effective_user squid
cache_effective_group squid
visible_hostname AQUA-node
cachemgr_passwd SquidCM all
access_log /opt/squid/var/logs/access.log
logfile_rotate 5
# ICQ connect (experimental)
acl ICQ_ADDR dst 64.12.0.0/16 205.188.0.0/16
acl ICQ_PORT port 5190 443
acl CONNECT method CONNECT
acl ICQ_PROTO proto HTTPS
acl ICQ_DOMAIN dstdomain .icq.com .aol.com .aim.com
always_direct allow ICQ_DOMAIN ICQ_PORT CONNECT
always_direct allow ICQ_ADDR ICQ_PORT CONNECT
acl allnet_temp src 10.0.0.0/8
http_access allow allnet_temp
http_access deny all如果需要任何其他信息,请告诉我。
发布于 2010-10-11 12:52:52
问题解决了。
我用pv构建了vanila内核2.6.35-7 (因为负载均衡器是一台辅助虚拟机),因此LVS开始根据需要工作。可能是,这是Xenlinux内核中的一个回归,可能只是一个旧版本的错误。其他软件组件的版本没有改变。
感谢针对调度器选择技巧的bindbn。
发布于 2010-10-07 08:43:03
尝试使用lblc、lblcr或sh调度程序。lblcr是缓存代理的最佳选择。由于循环连接平衡引起的问题。
有人有这种类型的工作集群(与IPVS相平衡)吗?对故障排除有什么想法吗?
我有两个http-代理集群(集群中的10-12代理)。使用LVS(lblcr,ipip隧道,squid 2.7透明)
https://serverfault.com/questions/188451
复制相似问题