Search squid archive

Re: refresh_pattern based on acl

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 02 Mar 2011 16:11:55 +0200, Leon Volfson wrote:
Hi,

I have a few squid servers in front of web servers (accelerator setup).
Since the website is very dynamic, I had to turn off the client
refresh action:

refresh_pattern -i ^http://www.website.com      14400   80%     43200
ignore-reload

but then I got the problem: some files that have a 7 days caching
time - I have no way of refreshing them if I modify the file on the
webserver.

NP: The safe way to save on traffic while obeying the standard is "reload-into-ims". Which converts a full force-reload into an efficient revalidation. If the server app fails to perform revalidation then one of efficiency or reliability are screwed.

Client refresh is not that commonly used by modern software. You should not need this unless you still have a large IE5/IE6 visitor base or are receiving peer-relayed requests from squid-2.5/2.6 peers.


To make it clearer, I have some .js or .css file which has a max-age
of 7 days. It's cached by squid and everything's great.
After a day I modify the file, but the squid keeps serving the old version.

What are the possible solutions in these situations (besides
shortening the max-age)?

For this refresh_pattern to have any effect the Cache-Control: and Expires: headers must be missing or unusable from the reply object squid receives from the server. max-age control being too high with no last-modified header makes more sense as the core problem.

Making those .js and .css non-dynamic would go a great way towards stability and let the server present last-modified headers and correct IMS handling. Otherwise implement some of it yourself in the scripts which server them up.



Is there any way to have another refresh_pattern rule based on my
local IP (acl)?

No. refresh_pattern is a URL-staleness estimate calculation. The only relevant things are the URL and some HTTP headers.

You could work around this using squid-3.1 with the public http_port having "ignore-cc" to disable client specs (instead of the overly broad refresh pattern) and do admin requests with reload through a separate forward-proxy port.

Amos


[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux