Re: [squid-users] How do I clear the cache database without stopping squid?

2013-06-25 Thread Daniele Segato

On 06/21/2013 03:26 PM, Eliezer Croitoru wrote:

On 06/21/2013 02:45 PM, Daniele Segato wrote:

Hi,

is there a way to clear the cache without stopping / rebooting squid?

I usually stop squid, remove the caches from the filesystem (rm -rf
/path/where/the/cache/is), restart squid.

Is there a way to clear that cache without the restart?

Thanks,
Daniele Segato

you can do a small tick if you want to just reload down times.

change the conf file to no cache_dir at all.
reload squid
then erase manually the cache_dir.
after that just run another squid.conf file with the settings of the
cache_dir in it with a -z option.
squid -f /etc/squid/squid_res.conf -z

now you got squid running with no shutdown but without cache_dir.
The cache dir also was erased and initialized.
you only need to change back the original conf file and then reload the
settings again.

Hope the recipe will help you.

Eliezer


I see, wouldn't it be the same to restart only once with a different 
cache_dir ?


next question:
can I change the cache dir with an environment variable?

I'm using Jenkins to do release, so I had to automate it and remove 
down-time. Ideally it should be no downtime.


thank you

sorry for the late response

regards,
Daniele Sesgato


[squid-users] How do I clear the cache database without stopping squid?

2013-06-21 Thread Daniele Segato

Hi,

is there a way to clear the cache without stopping / rebooting squid?

I usually stop squid, remove the caches from the filesystem (rm -rf 
/path/where/the/cache/is), restart squid.


Is there a way to clear that cache without the restart?

Thanks,
Daniele Segato


[squid-users] Squid Accellerator with ethernal cache for fault tollerance

2013-04-19 Thread Daniele Segato

Hi,

my need is to have Squid caching request to my server like this:
* do NOT bother the server more then once per minute to check if an 
update is available
* if the server return a 500, go into timeout or something like this 
during an update keep sending the cached resource to the user


Ideally I would like to be able to turn off the server for maintenance 
while the Squid frontend keep returning request.


I've been trying to achieve this for a while now without success.

Is this possible?
Can you address me in the right direction?

Thanks.

This is my configuration file (included in the main squid.conf):
Which currently cache updating every minute but start givin error after 
that minute if the server is took down.



# http://wiki.squid-cache.org/SquidFaq/ReverseProxy
# http://www.visolve.com/squid/whitepapers/reverseproxy.php
# 
http://www.howtoforge.com/how-to-set-up-a-caching-reverse-proxy-with-squid-2.6-on-debian-etch
# 
http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch32_:_Controlling_Web_Access_with_Squid


http_port localhost:280 accel ignore-cc defaultsite=localhost
cache_peer localhost parent 8080 0 no-query originserver no-digest 
default name=myAccel


refresh_all_ims off

# IP address of web server
#httpd_accel_host 127.0.0.1
# Port of web server
#httpd_accel_port 8080
# Forward uncached requests to single host
#httpd_accel_single_host on
#httpd_accel_with_proxy on
#httpd_accel_uses_host_header off


acl Safe_ports port 280
http_access deny !Safe_ports

acl our_sites dstdomain 127.0.0.1 localhost mobc3.local
http_access allow our_sites
cache_peer_access myAccel allow our_sites
cache_peer_access myAccel deny all

#http_access allow all
#cache_peer_access myAccel allow all

#refresh_pattern /alfresco/service/catalog		0	20%	4320 reload-into-ims 
ignore-no-cache refresh-ims ignore-reload
#refresh_pattern /alfresco/service/stream		0	20%	4320 reload-into-ims 
ignore-no-cache refresh-ims ignore-reload


# do not cache anything but what I tell you
#refresh_pattern .  0   20% 0
#hierarchy_stoplist .
#never_direct /alfresco/service/catalog
#never_direct /alfresco/service/stream

# cache services
refresh_pattern /alfresco/service/catalog   0   20% 4320
refresh_pattern /alfresco/service/stream0   20% 4320
refresh_pattern /alfresco/service/news  0   20% 4320
# do not cache everything else
refresh_pattern .   0   20% 0

# see http://wiki.squid-cache.org/KnowledgeBase/DebugSections
#debug_options ALL,3
debug_options 22,3
#debug_options 22,5


Regards,
Daniele Segato


[squid-users] Re: Squid 3.1 + Accel conf + ETag = ignoring ETag

2012-04-28 Thread Daniele Segato

On 04/27/2012 07:50 PM, Daniele Segato wrote:

Hi,

I'm experimenting with squid and a service I'm writing.

my service compute ETag and return it along with other Http header




But squid is not sending me the "If-None-Match" header

I have situation where the Last-Modified date doesn't change, the ETag
work in identifying what's a 304 and what's not.
The last modified date check fails there (give 304 when the content has
been actually modified).


So I need squid to give me If-None-Match

is there some config to enable?
Am I doing something wrong?


Apparently I'm hitting bug: http://bugs.squid-cache.org/show_bug.cgi?id=2112

opened since 2007..

I don't see any chance of seen it resolved anytime soon (and I wouldn't 
be able to upgrade squid to the last version anyway).


so, can you suggest any workaround?

thanks


Re: [squid-users] Squid Reverse Proxy (accel) always contacting the server

2012-04-28 Thread Daniele Segato

On 04/01/2012 03:21 AM, Amos Jeffries wrote:

Other useful things to know;
Generating an ETag label for each unique output helps caches detect
unique versions without timestamp calculations. The easy ways to do this
are to make ETag a MD5 hash of the body object. Or a hash of the
Last-Modified timestamp string if the body is too expensive to locate
MD5 for. Or some other property of the resource which is guaranteed to
change any time the body changes and not otherwise.


As I told you this was my successive step.
I implemented ETag, working perfectly fine now by computing the MD5 of 
the content before formatting it
it's the MD5 of the actual Data that I use to obtain the response (which 
can be Json, XML, Html, ...).


But I have issues with Squid not sending me the ETag in If-None-Modified 
request header, I created another topic here in the list:

"Squid 3.1 + Accel conf + ETag = ignoring ETag"

to discuss this.


Cache-Control:stale-while-revalidate tells caches to revalidate, but not
to block the client response waiting for that validation to finish.
Clients will get the old object until a new one or 304 is received back.


I can't use this yet because I have an older version of Squid but thank 
you, I'll use it as soon as my production Linux distribution update Squid.


bye


[squid-users] Squid 3.1 + Accel conf + ETag = ignoring ETag

2012-04-27 Thread Daniele Segato

Hi,

I'm experimenting with squid and a service I'm writing.

my service compute ETag and return it along with other Http headers:

Headers returned by a request to my service:

HTTP/1.1 200 OK
Content-Language: it
Cache-Control: public, max-age=60, s-maxage=60
ETag: "32b71ecde17592a1d6ef696f5ae78216"
Last-Modified: Fri, 27 Apr 2012 14:09:08 GMT
Date: Fri, 27 Apr 2012 17:43:52 GMT
Vary: Accept, Accept-Language
Age: 0
Content-Type: application/json;charset=UTF-8
Content-Length: 932
Server: Jetty(6.1.21)


here's what's happen if I pass
If-Modified-Since: Fri, 27 Apr 2012 14:09:08 GMT

HTTP/1.1 304 Not Modified
Content-Language: it
Cache-Control: public, max-age=60, s-maxage=60
ETag: "32b71ecde17592a1d6ef696f5ae78216"
Last-Modified: Fri, 27 Apr 2012 14:09:08 GMT
Date: Fri, 27 Apr 2012 17:44:49 GMT
Vary: Accept, Accept-Language
Age: 0
Content-Type: application/json;charset=UTF-8
Content-Length: 932
Server: Jetty(6.1.21)



And if pass:
If-None-Match: "32b71ecde17592a1d6ef696f5ae78216"

HTTP/1.1 304 Not Modified
Content-Language: it
Cache-Control: public, max-age=60, s-maxage=60
ETag: "32b71ecde17592a1d6ef696f5ae78216"
Last-Modified: Fri, 27 Apr 2012 14:09:08 GMT
Date: Fri, 27 Apr 2012 17:46:20 GMT
Vary: Accept, Accept-Language
Age: 0
Content-Type: application/json;charset=UTF-8
Content-Length: 932
Server: Jetty(6.1.21)



Nothing special...
But squid is not sending me the "If-None-Match" header

I have situation where the Last-Modified date doesn't change, the ETag 
work in identifying what's a 304 and what's not.
The last modified date check fails there (give 304 when the content has 
been actually modified).



So I need squid to give me If-None-Match

is there some config to enable?
Am I doing something wrong?

thanks,
Daniele


Re: [squid-users] Squid Reverse Proxy (accel) always contacting the server

2012-04-02 Thread Daniele Segato

On 04/02/2012 02:04 AM, Amos Jeffries wrote:

yes I experimented.. I think 60 seconds is perfect for max-age and I
get rid of Expires time, it's overridden by the max-age anyway.


For Squid-3.1+ yes that is true, older HTTP/1.0 software only obeys
Expires:. So it is a matter of whether you want to further leverage any
old software caches around the 'Net your users might be behind.


good to know!
I don't need support for old HTTP/1.0 but I'll keep it in mind, thanks


that's really interesting but I didn't find anything about it here:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

is it standard?



Yes. http://tools.ietf.org/html/rfc5861

NP: Squid-3 is not obeying it properly yet, but other caches around the
'Net do. So its incrementally useful already and when we roll it into
Squid the gain will be immediate wherever its used.


I wonder why the w3c doesn't list it.

thanks! I'll integrate it as soon as possible

when you say squid3 do not obey properly to it what do you exactly mean?


Cache-Control:stale-if-error=N, also documented in RFC 5861. Squid-3.2
obey this one already. Sorry, no 3.1 support.


our squid3 production server is a 3.1 but I'll implement it so that it 
comes to work when we upgrade it!

thanks again, you've been of great help.


http://wiki.squid-cache.org/KnowledgeBase/DebugSections


perfect!

ciao,
Daniele


Re: [squid-users] Re: Squid Reverse Proxy (accel) always contacting the server

2012-04-02 Thread Daniele Segato

On 04/02/2012 03:22 AM, Amos Jeffries wrote:

Last-Modified: 
Cache-Control: public, max-age=60

60 = 60 seconds, means: squid please do not bother the server for 60
seconds after this reply, even if they ask for "If-Modified-Since"


Small correction: means don't ask again until 60 seconds from
Last-Modified. If Last-Modified is missing or invalid, 60 seconds from
Date:.



that's not what I've seen

I returned Last-Modified (very old), Date: "now" and max-age: 60

squid3 is not checking the server again for 1 minute, then when it does 
it keep replying without checking the server for another 1 minute and so on.


Is it because I specified Age: 0 and Date now?


I also added Age: 0 (i tell squid that I'm providing a fresh content).
And Date: with the current date, I think this also tells squid the
content is fresh
not sure those are needed but probably helps.


Tells when the response was generated, in case of transfer delays. Acts
as a backup for Last-Modified as above, and a value to synchronise
Expires: comparisons between proxies and servers despite any clock
difference problems.


My server return Age:0 and Date: "now" that should do right?



On the squid size I configured the refresh_pattern  0 20% 4320

without adding any other option, this was perfectly fine.


refresh_pattern provides default values for max-age / min-age and next
revalidate time if none are provided by the combination of cache control
headers discussed above. When Expires: or Cache-Control: are sent
refresh_pattern value is not used.


In the log it say:
2012/04/02 07:35:47.326| refreshCheck: Matched '/alfresco/service/stream 
0 20%% 259200'


are you saying this is ignored?

I tried by setting that rule with 0 %20 0 and I had all TCP_MISS

so apparently the rule "win" against the http headers.

or maybe I misunderstood you :)

thanks again,
Daniele


Fwd: Re: [squid-users] Squid Reverse Proxy (accel) always contacting the server

2012-04-01 Thread Daniele Segato

(re-send, sent off-list as a mistake)

On 04/01/2012 03:21 AM, Amos Jeffries wrote:

revalidation is more of a threshold which gets set on each object. Under
the threshold no valdation takes place, above it every request gets
validated. BUT ... a 304 response revalutating the object can change the
threshold by sending new timestamp and caching headers.


Thank you I now managed to do exactly what I need...

I still have 2 little issues but I'll open another thread for those :)
you've been very helpful


You have the two options of max-age or Expires. The thing to remember is
to increment the value / threshold forward to the next poitn where you
want revalidation to take place.

with a max-age N value which you generate dynamically by: calculate
current age of object when responding, add 60.

with Expires: you simply emit a timestamp of now() + 60 seconds on each
response.


yes I experimented.. I think 60 seconds is perfect for max-age and I get
rid of Expires time, it's overridden by the max-age anyway.

I also set up Vary and Last-Modified headers.
And added age (always 0) and Date (always "now") on my server response.

Squid3 is now caching perfectly my RESTfull service (GET)



Other useful things to know;
Generating an ETag label for each unique output helps caches detect
unique versions without timestamp calculations. The easy ways to do this
are to make ETag a MD5 hash of the body object. Or a hash of the
Last-Modified timestamp string if the body is too expensive to locate
MD5 for. Or some other property of the resource which is guaranteed to
change any time the body changes and not otherwise.


Yeah, that's would be the next step, but it's a little complicated for
me to extract something that makes sense as an ETag, when I'll be able I
will



Cache-Control:stale-while-revalidate tells caches to revalidate, but not
to block the client response waiting for that validation to finish.
Clients will get the old object until a new one or 304 is received back.


that's really interesting but I didn't find anything about it here:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

is it standard?

thanks

do you, by any chance, know how to tell the cache to return a stale
value if the server is not responsive and while waiting it comes back
online?

this would be wonderful because it would allow me to take down the
server for maintenance without having a service interruption.




2) which is the best way to debug why squid3 is deciding to keep a
cache entry, contact the server or not? looking at the huge debug log
is not very simple maybe some log option to filter it with the cache
decisions informations only would help


debug_options 22,3
... or maybe 22,5 if there is not enough at level 3.



perfect!!!

where can I find a list of sections id and their meaning?



[squid-users] Re: Squid Reverse Proxy (accel) always contacting the server

2012-04-01 Thread Daniele Segato

On 03/30/2012 01:47 AM, Daniele Segato wrote:

Hi,

This is what I want to obtain:

Environment:
* everything on the same machine (Debian GNU\Linux)
* server running on tomcat, port 8080
* squid running on port 280
* client can be anywhere, but for now it's on the localhost machine too

I want to set up an http cache to my tomcat server to reduce the load on
it.



[...]


Instead squid is ALWAYS requiring the resource to the server:
$ curl -v -H 'If-Modified-Since: Thu, 29 Mar 2012 22:14:20 GMT'
'http://localhost:280/alfresco/service/catalog/products'




To help others who stumble into this issue.

On your server:

Make sure you are formatting your response http headers correctly (I had 
a Last-Modified date formatting which wasn't compliant to the RFC2822 
and was writing + in the place of GMT, resulting in squid always 
returning TCP_MISS)


I provided this http headers in response:

Last-Modified: 
Cache-Control: public, max-age=60

60 = 60 seconds, means: squid please do not bother the server for 60 
seconds after this reply, even if they ask for "If-Modified-Since"


I also added s-maxage but probably it's not needed unless you want to 
cache authenticated contents.


Vary: 
This is very important if you are providing a different result by 
request headers (for example a content in English for Accept-Language: 
en, and a content in Italian for Accept-Language: it)


I also added Age: 0 (i tell squid that I'm providing a fresh content).
And Date: with the current date, I think this also tells squid the 
content is fresh

not sure those are needed but probably helps.


On the squid size I configured the refresh_pattern  0 20% 4320

without adding any other option, this was perfectly fine.

I hope this will help anybody else with this issue :)

Squid is great! and allowed me to provide a very responsive and scalable 
service out of a simple non-clustered server


regards,
Daniele


Re: [squid-users] Squid Reverse Proxy (accel) always contacting the server

2012-03-31 Thread Daniele Segato

On 03/31/2012 05:01 PM, Daniele Segato wrote:

On 03/31/2012 10:13 AM, Amos Jeffries wrote:

max-age

The max-age response directive indicates that the response is to
be considered stale after its age is greater than the specified
number of seconds.

"

The logic goes like this:

Object modified ... 22:14:20
Valid +3600
==> fresh until 23:14:50
Current time: 23:27:57

23:14:50 < 23:27:15 ==> currently stale. must revalidate.

Expires header can be used to set an absolute time for invaldation.
max-age is relative to age.


Ok I think I now understood you...



you are saying that max-age is added to "last modified date"
but that doesn't make much sense to me.

If the server (parent cache) is returning the content at 23:27:00 saying
max-age 3600 I would expect that 3600 start from "now".




anyway, I thought about this before and I also tried to modify the
content, then immediately giving two request to squid.


apparently this was caused by a mistake I did with the server (see below)



this time, suppose:

Object modified ... 00:00:00
Valid +3600
==> fresh until 01:01:00
Current time: 00:05:00

01:01:00 > 00:05:00 ==> currently fresh. shouldn't bother the server.

instead what's actually happening is that squid is doing a request to my
server, only header, but it's still doing it.

My server, to compute the "Last-Modified" date has to do all the job of
collecting the data, looping to each data element and extract, for each,
the last modified date, then compute the "last one".. it build a "model"
that is then rendered: it's pretty short anyway since it's gzipped text.

So the big work of my server is to collect the data, and my server have
to do it both if you do a GET both if you do an HEAD request.

I would like squid to revalidate with my server every, say 1 minute,
even 10 seconds is ok.. but it shouldn't revalidate every single request
it is receiving.

I hope I made my point.



this question is still in place :)




I wanted to give you an example but now squid is always giving me a
TCP_MISS


this was my mistake, the Last-Modified date format was wrong from server :)

please ignore the debug and everything behind this point in my previous 
email...


Now it's giving cache hits in ram!


I think I can summarize my question in this two questions:
1) can I make squid3 update the cache with my server every, say, 1 
minute (at most) but use it's cache otherwise without bothering the 
server (not even for headers)? how?


Avoiding to call the server for 1 hour, I think, it's a bit too much: 
the content can change in the meanwhile and I don't want the user to 
wait 1 hour for it.


On the other part I don't want every single request after that hour is 
pass to see squid contacting my server to check if the last modified 
date is changed.




2) which is the best way to debug why squid3 is deciding to keep a cache 
entry, contact the server or not? looking at the huge debug log is not 
very simple maybe some log option to filter it with the cache decisions 
informations only would help




Thanks and sorry for the previous message


Re: [squid-users] Squid Reverse Proxy (accel) always contacting the server

2012-03-31 Thread Daniele Segato

On 03/31/2012 10:13 AM, Amos Jeffries wrote:

On 30/03/2012 12:47 p.m., Daniele Segato wrote:

Instead squid is ALWAYS requiring the resource to the server:
$ curl -v -H 'If-Modified-Since: Thu, 29 Mar 2012 22:14:20 GMT'
'http://localhost:280/alfresco/service/catalog/products'

* About to connect() to localhost port 280 (#0)
* Trying 127.0.0.1...
* connected
* Connected to localhost (127.0.0.1) port 280 (#0)

GET /alfresco/service/catalog/products HTTP/1.1
User-Agent: curl/7.24.0 (x86_64-pc-linux-gnu) libcurl/7.24.0

OpenSSL/1.0.0h zlib/1.2.6 libidn/1.24 libssh2/1.2.8 librtmp/2.3

Host: localhost:280
Accept: */*
If-Modified-Since: Thu, 29 Mar 2012 22:14:20 GMT


* additional stuff not fine transfer.c:1037: 0 0
* HTTP 1.0, assume close after body
< HTTP/1.0 304 Not Modified
< Date: Thu, 29 Mar 2012 23:27:57 GMT
< Cache-Control: public, max-age=3600
< Last-Modified: Thu, 29 Mar 2012 22:14:20 GMT


"

max-age

The max-age response directive indicates that the response is to
be considered stale after its age is greater than the specified
number of seconds.

"

The logic goes like this:

Object modified ... 22:14:20
Valid +3600
==> fresh until 23:14:50
Current time: 23:27:57

23:14:50 < 23:27:15 ==> currently stale. must revalidate.

Expires header can be used to set an absolute time for invaldation.
max-age is relative to age.



Hi amos,

My content has been lastly modified at 22:14:20.
But I did two successive request, one at 23:27:00, one at 23:27:20

the first one: 23:27:00 was a cache miss
the second is what you see above.

you are saying that max-age is added to "last modified date"
but that doesn't make much sense to me.

If the server (parent cache) is returning the content at 23:27:00 saying 
max-age 3600 I would expect that 3600 start from "now".



anyway, I thought about this before and I also tried to modify the 
content, then immediately giving two request to squid.


this time, suppose:

  Object modified ... 00:00:00
  Valid   +3600
   ==> fresh until 01:01:00
  Current time: 00:05:00

   01:01:00 > 00:05:00 ==> currently fresh. shouldn't bother the server.

instead what's actually happening is that squid is doing a request to my 
server, only header, but it's still doing it.


My server, to compute the "Last-Modified" date has to do all the job of 
collecting the data, looping to each data element and extract, for each, 
the last modified date, then compute the "last one".. it build a "model" 
that is then rendered: it's pretty short anyway since it's gzipped text.


So the big work of my server is to collect the data, and my server have 
to do it both if you do a GET both if you do an HEAD request.


I would like squid to revalidate with my server every, say 1 minute, 
even 10 seconds is ok.. but it shouldn't revalidate every single request 
it is receiving.


I hope I made my point.

I wanted to give you an example but now squid is always giving me a TCP_MISS

# squid3 -k debug && curl -v 
'http://localhost:280/alfresco/service/catalog/products'; squid3 -k debug

* About to connect() to localhost port 280 (#0)
*   Trying 127.0.0.1...
* connected
* Connected to localhost (127.0.0.1) port 280 (#0)
> GET /alfresco/service/catalog/products HTTP/1.1
> User-Agent: curl/7.24.0 (x86_64-pc-linux-gnu) libcurl/7.24.0 
OpenSSL/1.0.0h zlib/1.2.6 libidn/1.24 libssh2/1.2.8 librtmp/2.3

> Host: localhost:280
> Accept: */*
>
* additional stuff not fine transfer.c:1037: 0 0
* HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
< Date: Sat, 31 Mar 2012 14:53:51 GMT
< Content-Language: en_US
< Cache-Control: public, max-age=3600
< Last-Modified: Sat, 31 Mar 2012 14:03:55 +
< Vary: Accept, Accept-Language
< Content-Type: application/json;charset=UTF-8
< Content-Length: 1668
< Server: Jetty(6.1.21)
< X-Cache: MISS from localhost
< X-Cache-Lookup: MISS from localhost:280
< Via: 1.0 localhost (squid/3.1.19)
* HTTP/1.0 connection set to keep alive!
< Connection: keep-alive



in the debug log I see:


2012/03/31 16:53:51.696| getDefaultParent: returning localhost
2012/03/31 16:53:51.696| peerAddFwdServer: adding localhost DEFAULT_PARENT
2012/03/31 16:53:51.696| peerSelectCallback: 
http://localhost/alfresco/service/catalog/products
2012/03/31 16:53:51.696| fwdStartComplete: 
http://localhost/alfresco/service/catalog/products
2012/03/31 16:53:51.696| fwdConnectStart: 
http://localhost/alfresco/service/catalog/products
2012/03/31 16:53:51.696| 
PconnPool::key(flexformAccel,8080,localhost,[::]is 
{flexformAccel:8080/localhost}
2012/03/31 16:53:51.696| PconnPool::pop: found 
myfAccel:8080/localhost(to use)


[...]

2012/03/31 16:53:52.159| mem_hdr::write: [249,251) object end 249
2012/03/31 16:53:52.159| storeSwapOut: 
http://localhost/alfresco/service/catalog/products

2012/03/31 16:53:52.159| 

[squid-users] Squid Reverse Proxy (accel) always contacting the server

2012-03-29 Thread Daniele Segato
Cache...
2012/03/30 01:32:22| DNS Socket created at [::], FD 7
2012/03/30 01:32:22| DNS Socket created at 0.0.0.0, FD 8
2012/03/30 01:32:22| Adding nameserver 192.168.88.254 from /etc/resolv.conf
2012/03/30 01:32:22| Adding nameserver 192.168.1.1 from /etc/resolv.conf
2012/03/30 01:32:22| Unlinkd pipe opened on FD 13
2012/03/30 01:32:22| Local cache digest enabled; rebuild/rewrite every 
3600/3600 sec

2012/03/30 01:32:22| Store logging disabled
2012/03/30 01:32:22| Swap maxSize 0 + 262144 KB, estimated 20164 objects
2012/03/30 01:32:22| Target number of buckets: 1008
2012/03/30 01:32:22| Using 8192 Store buckets
2012/03/30 01:32:22| Max Mem  size: 262144 KB
2012/03/30 01:32:22| Max Swap size: 0 KB
2012/03/30 01:32:22| Using Least Load store dir selection
2012/03/30 01:32:22| Set Current Directory to /var/spool/squid3
2012/03/30 01:32:22| Loaded Icons.
2012/03/30 01:32:22| Accepting  accelerated HTTP connections at 
127.0.0.1:280, FD 14.

2012/03/30 01:32:22| Accepting  HTTP connections at [::]:3128, FD 15.
2012/03/30 01:32:22| HTCP Disabled.
2012/03/30 01:32:22| Configuring Parent 127.0.0.1/8080/0
2012/03/30 01:32:22| Squid plugin modules loaded: 0
2012/03/30 01:32:22| Adaptation support is off.
2012/03/30 01:32:22| Ready to serve requests.
2012/03/30 01:32:23| storeLateRelease: released 0 objects



and the access.log while issue some request:

1. GET without any other header

1333064055.374454 127.0.0.1 TCP_MISS/200 1519 GET 
http://localhost/alfresco/service/catalog/products - 
FIRST_UP_PARENT/myAccel application/json


2. GET without any other header (again)

1333064061.343645 127.0.0.1 TCP_REFRESH_UNMODIFIED/200 1517 GET 
http://localhost/alfresco/service/catalog/products - 
FIRST_UP_PARENT/myAccel application/json


3. GET with If-Modified-Since header
1333064068.956397 127.0.0.1 TCP_REFRESH_UNMODIFIED/304 369 GET 
http://localhost/alfresco/service/catalog/products - 
FIRST_UP_PARENT/myAccel application/json



please help me, I think I did what's in 
http://wiki.squid-cache.org/SquidFaq/ReverseProxy but this is not 
working and I lost too much time on the issue already trying to read and 
experimenting on my own.




If I manage to make it work the next step is to make the cache work only 
on /alfresco/service path on the service, any path including query 
string ?key=value...

but for now I would be happy to solve this particular issue.



I also enabled full logging on squid3 to understand what's happening, 
this is the log for the second request above (without any header):

http://pastebin.com/GhazwHCr

(too big to include in this email)

if you need any other information I would gladly provide it.


Thank you very much,
Regards,

Daniele Segato