Say I have 3 Squid proxies, in accelerator mode, out in front of a single
webserver.

My goal: When a proxy receives a request for a document, it first checks
the others to see if there's a cached copy available. If yes, it retrieves
the document from the other proxy, stores a copy, and responds to the
request. If (and only if) no, it fetches the document directly from the
webserver.

Security/performance aside, from the documentation I've found I think
you'd start with squid.conf like this:

------------------------------------------

#  proxy1 192.168.168.1
#  proxy2 192.168.168.2
#  proxy3 192.168.168.3 <--me!
cache_peer 192.168.168.1  sibling   80  3130
cache_peer 192.168.168.2  sibling   80  3130
http_port 80
httpd_accel_port 80
httpd_accel_host CACHE
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
redirect_rewrites_host_header off
emulate_httpd_log on
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
refresh_pattern . 3600 100% 3600 ignore-reload
acl all src 0.0.0.0/0.0.0.0
acl siblings src 192.168.168.1/255.255.255.255
acl siblings src 192.168.168.2/255.255.255.255
http_access allow all
http_reply_access allow all
icp_access allow siblings

------------------------------------------

. . . but it doesn't work. As far as I can tell from the logs, the proxy
responding to the web client checks the other proxies via ICP, but always
retrieves the document from the webserver even if a cached copy is
available on a different proxy.

Am I missing something really obvious?!

thanks,
jg

Reply via email to