[squid-users] Squid: no_cache directive issue.

From: Fabiano Silos Reis <fsilos@dont-contact.us>
Date: Mon, 10 Oct 2005 12:31:12 -0300

Hello,

Is there any kind of memory cache even if the object is marked to not to
be cached?

On my tests:

I tried with

acl someserver dstdomain domain.com
no_cache deny someserver

Using wget to debug it I have:

[root@squid bin]# wget -S -O x http://domain.com/
--10:04:43-- http://domain.com/
           => `x'
Resolving domain.com... 10.0.19.2
Connecting to domain.com[10.0.19.2]:80... connected.
HTTP request sent, awaiting response...
 1 HTTP/1.0 302 Moved Temporarily
 2 Date: Mon, 10 Oct 2005 13:04:42 GMT
 3 Server: Apache/2.0.54 (Unix)
 4 Location: http://domain.com/@/
 5 Content-Length: 286
 6 Content-Type: text/html; charset=iso-8859-1
 7 X-Cache: MISS from squid.domain.com
 8 Connection: keep-alive
Location: http://domain.com/@/ [following]
--10:04:43-- http://domain.com/@/
           => `x'
Connecting to domain.com[10.0.19.2]:80... connected.
HTTP request sent, awaiting response...
 1 HTTP/1.0 200 OK
 2 Date: Mon, 10 Oct 2005 13:04:42 GMT
 3 Server: Apache/2.0.54 (Unix)
 4 Content-Length: 1252
 5 Content-Type: text/html
 6 X-Cache: MISS from squid.domain.com
 7 Connection: keep-alive

100%[=======================================>] 1,252 --.--K/s

10:04:43 (11.94 MB/s) - `x' saved [1,252/1,252]

As you can see the answer is not being cached by the squid server.

Explaining more about domain.com:

Domain.com is being served by 2 webservers that are on the back of a
Alteon Switch. These two are real servers for a virtual server. Alteon
manipulates the connection as a transparent balancer and it is
configured with round robin algorithm, it is, each connection to port 80
of the virtual server is redirected to a real server.

In the body of the HTML I put a debug message to know where the answer
came from. In this case if the answer came from 'webserver1' I will see
in the body the phrase: "this came from webserver1".

My problem:

If the content is not being cached why do I receive only answers from
webserver1 when I get from squid? I tried running wget lot of times and
I always get in the body the same answer caming from webserver1.

If I point wget to get the content direct from the virtual server
(Configured in the alteon switch) I receive different body on each get.

What I think it is happening:

I think this is being caused by some memory cache algorithm. Even being
explicit saying to squit to not to cache a content it retain the object
for seconds in its memory.

I did a test on my server wich is very simple. I wget just one time from
http://domain.com and after exactly 15 seconds I wget it again and there
it is. The body came with the debug flag from "webserver2". Is it a
proof of something or not?

I appreciate any help.

Fabiano

Here is my squid.conf:

http_port 10.0.19.2:80
cache_mem 64 MB
maximum_object_size 4096 KB
maximum_object_size_in_memory 100 KB
fqdncache_size 1024
cache_replacement_policy lru
memory_replacement_policy lru
cache_dir ufs /iG/http_servers/squid/bin/var/cache 40000 16 256
cache_access_log /iG/logs/squidzone/zis-01-access_log
logfile_rotate 0
cache_log /iG/http_servers/squid/bin/var/logs/cache.log
cache_store_log /iG/http_servers/squid/bin/var/logs/store.log
#cache_store_log none
emulate_httpd_log on
debug_options NONE,0
log_fqdn off
redirect_rewrites_host_header on

acl someserver dstdomain zone.ig.com.br
no_cache deny someserver
#always_direct allow someserver

acl alteon src 10.0.0.0/255.0.0.0
acl PURGE method PURGE
http_access allow PURGE alteon
http_access deny PURGE

quick_abort_min 0 KB
quick_abort_max 0 KB
half_closed_clients off
shutdown_lifetime 10 seconds
acl all src 0.0.0.0/0.0.0.0
acl in_localhost src 127.0.0.0/8
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80
acl CONNECT method CONNECT
acl to_rz dst 10.0.0.0/255.0.0.0
acl internal_port port 80
http_access allow all to_rz
http_access allow Safe_ports
http_access allow internal_port
http_access allow in_localhost to_localhost
http_access deny CONNECT SSL_ports
http_access deny all
http_reply_access allow all
icp_access allow all
visible_hostname squid.domain.com
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_single_host off
httpd_accel_with_proxy off
httpd_accel_uses_host_header on
client_db off
coredump_dir /var/cache

squid -v

[root@zis-01 bin]# sbin/squid -v
Squid Cache: Version 2.5.STABLE11-RC2
configure options: --prefix=/squid/bin-2.5.11-RC2 --enable-underscores
'--enable-removal-policies=lru heap' '--enable-err-languages=English
Portuguese' --enable-default-err-language=Portuguese
--enable-referrer-log --enable-useragent-log '--enable-storeio=ufs
diskd' --with-pthreads
Received on Mon Oct 10 2005 - 09:33:22 MDT

This archive was generated by hypermail pre-2.1.9 : Tue Nov 01 2005 - 12:00:04 MST