[squid-users] Carp is resulting in 403s

From: Rob Williams <rob.williams_at_gmail.com>
Date: Tue, 5 Aug 2008 20:06:07 -0700

Hello squid community. This is my first message to the squid mailing
list. I am trying to configure a CARP array of reverse proxy squid
servers.

I have a client in need of a large static content delivery system. You
can view a visio jpg of my architecture plan here:
http://www.exponentialent.com/squid/squid%20example.jpg.

Basically, I will have one static apache server running on box3 port
8080. Then, an array of machines running squid in reverse proxy mode
will represent the static web content. As more requests come from
users, we will add more squid cache nodes. I have gone back and forth
on what protocol to use in order to maximize the efficiency of my
squid cache cluster (HTCP, ICP, CARP) and have decided on carp. This
article has contributed to my decision:
http://www.nedworks.org/~mark/presentations/san/Wikimedia%20architecture.pdf
for those interested.

The problem I am having is that when I request an object not in cache,
the squid nodes are returning 403 errors instead of retrieving the
requested object from the origin server. When I run the squid nodes
stand-alone without specifying the CARP protocol the squid nodes
retrieve content from the origin server correctly.

I have not been successful in testing HTCP or ICP, either. I end up
with 403 errors, or, both squid nodes will cache the same objects thus
defeating the purpose. I have spent many hours reading documentation,
examining squid groups, examining the squid mailing list mail archive,
reading F.A.Q's, and purchased this book: http://squidbook.org/
however I cannot seem to find a single example of a squid.conf file
showing a CARP cluster of reverse proxy squid cache nodes nor have I
found fragment examples of conf files that seem to work properly.

I'm sure the error in my configuration file is simple, I just can't
seem to find it. I have tested many variations and combinations of
settings in an attempt to get CARP to work without success. My
understanding is that in the event CARP is working and a new request
is issued to my squid cluster than the squid node will retrieve and
cache the object from the origin server in the event the object is not
currently cached anywhere. Then, as subsequent requests come into
squid nodes in the CARP cluster, most (if not all) subsequent requests
are sent to the original squid node that cached the requested object
thus eliminating the same object cached among multiple squid nodes.

Any help or direction would be appreciated. I have uploaded outputs of
files relevant to my configuration here:

First squid node in cluster (Box4:80):
http://www.exponentialent.com/squid/box4_cache.log
http://www.exponentialent.com/squid/box4_squid.conf
http://www.exponentialent.com/squid/box4_access_attempt.txt

Second squid node in cluster (Box7:80):
http://www.exponentialent.com/squid/box7_cache.log
http://www.exponentialent.com/squid/box7_squid.conf
http://www.exponentialent.com/squid/box7_access_attempt.txt

Origin Server (Box3:8080):
http://www.exponentialent.com/squid/box3_access_attempt.txt

My environment is a closed LAN of machines all running this version of FreeBSD:

FreeBSD box7_testcluster 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Sun Feb
24 19:59:52 UTC 2008
root_at_logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386

The squid version I am running is: squid-3.0.r1.20071001_1 HTTP
Caching Proxy (development version) installed via
/usr/ports/www/squid30/make (included CARP,SNMP,KQUEUE)

-Rob Williams
Received on Wed Aug 06 2008 - 03:06:12 MDT

This archive was generated by hypermail 2.2.0 : Wed Aug 06 2008 - 12:00:02 MDT