Hi, squid users.
I am trying to make some proxies talk to each other, but something is
wrong with my squid.conf files and I don't know what it is. I have in
my network a "swarm" of sibling proxies and a single parent proxy.
A client browser connects to a proxy from the swarm and it asks the
others in the swarm for cache hits. If file is not served, the cache
miss is treated by the parent proxy. I then proceed by running the
following test:
1. Start squid in machine A;
2. Connect browser to squid in machine A;
2. Access a site to cache files;
3. Start squid in machine B;
4. Connect browser to squid in machine B;
5. Access the same site again in machine B
I know that squid in machine A is caching files, because store.log
tell me they are SWAPOUT'd as they arrive, but when I go through step
5, the access.log in machine B tells me that it is going directly
through the parent proxy:
1179521182.776 213 <external ip address> TCP_MISS/304 460 GET <file
URL> - FIRST_UP_PARENT/parent-proxy image/gif
Right? Why does machine B go directly to the parent proxy if machine A
has a copy of that file in the cache? The access.log in machine A
tells me that the file is missing:
1179506674.109 0 <machine B ip address> UDP_MISS/000 70 ICP_QUERY
<file URL> - NONE/- -
And here is squid.conf for the siblings:
========================================
# Listen to port 3128
http_port 3128
# Listen to ICP too.
icp_port 3130
# Parent proxy
cache_peer parent-proxy parent 80 0 no-query login=PASS
# Siblings
#
# (proxy-only is used to avoid duplication of the contents of other
# sibling proxies.)
cache_peer proxy-b sibling 3128 3130 proxy-only
cache_peer proxy-c sibling 3128 3130 proxy-only
cache_peer proxy-d sibling 3128 3130 proxy-only
# (...)
# Obligatory
acl all src 0.0.0.0/0.0.0.0
# Clients authorized to use this proxy.
acl localnet src 172.16.0.0/12 192.168.0.0/16 127.0.0.1
# Internal servers.
acl internal-servers dstdomain .internal.com.br .local.com.br
# Redundant, but this is just a test anyway.
prefer_direct off
# Access internal servers directly, but never the external servers.
always_direct allow internal-servers
never_direct allow !internal-servers
# Allow clients to use this proxy.
http_access allow all
# Allow siblings to access this proxy.
icp_access allow localnet
# Log and debug.
access_log /var/log/squid/access.log squid
debug_options ALL,1 33,2
log_icp_queries on
=========================================
So, please, what am I doing wrong? Any help is appreciated. ;)
Cheers,
Pedro.
-- Pedro de Medeiros - Ciência da Computação - Universidade de Brasília Home Page: http://www.nonseq.net - Linux User No.: 234250Received on Fri May 18 2007 - 15:55:05 MDT
This archive was generated by hypermail pre-2.1.9 : Fri Jun 01 2007 - 12:00:05 MDT