LVS (ipvs) 負載均衡 Squid。一些網站的問題
我正在嘗試建立一個兩節點的 squid 代理集群。這將是一個普通的代理(既不反向,也不透明)。
我使用 LVS(核心 2.6.32,ipvsadm v.1.2.1,隧道)進行負載平衡,使用 ldirectord(v.1.0.3)進行 HA,squid(v.3.1.7)作為代理伺服器。
集群在大多數站點上都可以正常工作,但是在登錄到Google帳戶、通過 OpenID 登錄到 serverfault.com 等方面遇到問題。似乎問題出現在具有某種重定向的站點上,儘管在其他站點上 301-編碼重定向工作正常。當我直接通過每個代理節點工作時,一切正常。我在 LVS 中嘗試了不同類型的作業調度算法,但沒有幫助。在集群中只保留一個節點也不能解決問題。Squid的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=negotiate
魷魚.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
如果需要任何其他資訊,請告訴我。
問題解決了。
我已經用 pv-ops 建構了 vanila 核心 2.6.35-7(因為負載均衡器是半虛擬機而需要),並且 LVS 根據需要開始工作。可能,這是 Xenlinux 核心的回歸,可能只是舊版本的錯誤。其他軟體組件的版本沒有改變。
PS 感謝 bindbn 提供調度程序選擇提示。
嘗試使用 lblc、lblcr 或 sh 調度程序。lblcr 最適合記憶體代理。由於循環連接平衡導致的問題。
有沒有人有這種類型的工作集群(與 IPVS 平衡)?有關故障排除的任何想法?
我有兩個 http-proxy 集群(集群中的 10-12 代理)。使用 LVS(lblcr,ipip tunneling,squid 2.7 透明)