Squid configuration manual

Reference manual for squid's configuraiton directives

View the Project on GitHub

Index Alphabetical Index

Option Name:

refresh_pattern

Suggested Config:


Details:

usage: refresh_pattern [-i] regex min percent max [options]

By default, regular expressions are CASE-SENSITIVE.  To make
them case-insensitive, use the -i option.

'Min' is the time (in minutes) an object without an explicit
expiry time should be considered fresh. The recommended
value is 0, any higher values may cause dynamic applications
to be erroneously cached unless the application designer
has taken the appropriate actions.

'Percent' is used to compute the max-age value for responses
with a Last-Modified header and no Cache-Control:max-age nor Expires.
  Cache-Control:max-age = ( Date - Last-Modified ) * percent

'Max' is an upper limit on how long objects without an explicit
expiry time will be considered fresh. The value is also used
to form Cache-Control: max-age header for a request sent from
Squid to origin/parent.

options: override-expire
	 override-lastmod
	 reload-into-ims
	 ignore-reload
	 ignore-no-store
	 ignore-private
	 max-stale=NN
	 refresh-ims
	 store-stale

	override-expire enforces min age even if the server
	sent an explicit expiry time (e.g., with the
	Expires: header or Cache-Control: max-age). Doing this
	VIOLATES the HTTP standard.  Enabling this feature
	could make you liable for problems which it causes.

	Note: override-expire does not enforce staleness - it only extends
	freshness / min. If the server returns a Expires time which
	is longer than your max time, Squid will still consider
	the object fresh for that period of time.

	override-lastmod enforces min age even on objects
	that were modified recently.

	reload-into-ims changes a client no-cache or ``reload''
	request for a cached entry into a conditional request using
	If-Modified-Since and/or If-None-Match headers, provided the
	cached entry has a Last-Modified and/or a strong ETag header.
	Doing this VIOLATES the HTTP standard. Enabling this feature
	could make you liable for problems which it causes.

	ignore-reload ignores a client no-cache or ``reload''
	header. Doing this VIOLATES the HTTP standard. Enabling
	this feature could make you liable for problems which
	it causes.

	ignore-no-store ignores any ``Cache-control: no-store''
	headers received from a server. Doing this VIOLATES
	the HTTP standard. Enabling this feature could make you
	liable for problems which it causes.

	ignore-private ignores any ``Cache-control: private''
	headers received from a server. Doing this VIOLATES
	the HTTP standard. Enabling this feature could make you
	liable for problems which it causes.

	refresh-ims causes squid to contact the origin server
	when a client issues an If-Modified-Since request. This
	ensures that the client will receive an updated version
	if one is available.

	store-stale stores responses even if they don't have explicit
	freshness or a validator (i.e., Last-Modified or an ETag)
	present, or if they're already stale. By default, Squid will
	not cache such responses because they usually can't be
	reused. Note that such responses will be stale by default.

	max-stale=NN provide a maximum staleness factor. Squid won't
	serve objects more stale than this even if it failed to
	validate the object. Default: use the max_stale global limit.

Basically a cached object is:

	FRESH if expire > now, else STALE
	STALE if age > max
	FRESH if lm-factor < percent, else STALE
	FRESH if age < min
	else STALE

The refresh_pattern lines are checked in the order listed here.
The first entry which matches is used.  If none of the entries
match the default will be used.

Note, you must uncomment all the default lines if you want
to change one. The default setting is only active if none is
used.

#
# Add any of your own refresh_pattern entries above these.
#
refresh_pattern ^ftp:		1440	20%	10080
refresh_pattern -i (/cgi-bin/|\?) 0	0%	0
refresh_pattern .		0	20%	4320
Index Alphabetical Index