我试图build立一个双节点的squid代理群集。 这将是一个正常的代理(既不反向,也不透明)。
我正在使用LVS(内核2.6.32,ipvsadm v.1.2.1,隧道)进行负载平衡,ldirectord(v。1.0.3)作为HA,squid(v.3.1.7)作为代理服务器。
群集适用于大多数网站,但遇到问题(例如)login到谷歌帐户,通过OpenIDlogin到serverfault.com等似乎问题出现在某种types的redirect的网站,虽然在其他网站301-编码redirect工作正常。 当我直接通过每个代理节点工作时,一切正常。 我在LVS中尝试了不同types的作业调度algorithm,但没有帮助。 只留下集群中的一个节点也不能解决问题。 Squid的access.log和cache.log也是“干净的”,没有错误出现,只是一个正常的活力。
有人遇到过这样的问题吗? 有没有人有这种types的工作集群(与IPVS平衡)? 任何想法在故障排除?
以下是configuration文件的一些部分: 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=negotiate
squid.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
如果需要其他信息,请告诉我。
尝试使用lblc,lblcr或sh调度程序。 lblcr是最好的caching代理。 由于循环连接平衡导致的问题。
有没有人有这种types的工作集群(与IPVS平衡)? 任何想法在故障排除?
我有两个http代理群集(群集中的10-12代理)。 使用LVS(lblcr,ipip隧道,鱿鱼2.7透明)
问题解决了。
我已经用pv-ops构build了vanila kernel 2.6.35-7(因为负载平衡器是一个半虚拟机器而需要的),LVS开始根据需要工作。 也许,这是Xenlinux内核的一个回归,可能只是一个老版本的bug。 其他软件组件的版本没有改变。
PS感谢bindbn的调度select提示。