]> git.ipfire.org Git - thirdparty/squid.git/blame - src/cf.data.pre
Author: Mark Nottingham <mnot@pobox.com>
[thirdparty/squid.git] / src / cf.data.pre
CommitLineData
3a278cb8 1
9cef6668 2#
262a0e14 3# $Id$
9cef6668 4#
6845f129 5# SQUID Web Proxy Cache http://www.squid-cache.org/
9cef6668 6# ----------------------------------------------------------
7#
2b6662ba 8# Squid is the result of efforts by numerous individuals from
9# the Internet community; see the CONTRIBUTORS file for full
10# details. Many organizations have provided support for Squid's
11# development; see the SPONSORS file for full details. Squid is
12# Copyrighted (C) 2000 by the Regents of the University of
13# California; see the COPYRIGHT file for full details. Squid
14# incorporates software developed and/or copyrighted by other
15# sources; see the CREDITS file for full details.
9cef6668 16#
17# This program is free software; you can redistribute it and/or modify
18# it under the terms of the GNU General Public License as published by
19# the Free Software Foundation; either version 2 of the License, or
20# (at your option) any later version.
96d88dcb 21#
9cef6668 22# This program is distributed in the hope that it will be useful,
23# but WITHOUT ANY WARRANTY; without even the implied warranty of
24# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25# GNU General Public License for more details.
96d88dcb 26#
9cef6668 27# You should have received a copy of the GNU General Public License
28# along with this program; if not, write to the Free Software
29# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
30#
31
0f74202c 32COMMENT_START
cccac0a2 33 WELCOME TO SQUID @VERSION@
34 ----------------------------
3a278cb8 35
cccac0a2 36 This is the default Squid configuration file. You may wish
37 to look at the Squid home page (http://www.squid-cache.org/)
38 for the FAQ and other documentation.
3a278cb8 39
cccac0a2 40 The default Squid config file shows what the defaults for
41 various options happen to be. If you don't need to change the
42 default, you shouldn't uncomment the line. Doing so may cause
43 run-time problems. In some cases "none" refers to no default
44 setting at all, while in other cases it refers to a valid
45 option - the comments for that keyword indicate if this is the
46 case.
debd9a31 47
cccac0a2 48COMMENT_END
3a278cb8 49
592a09dc 50COMMENT_START
51 Configuration options can be included using the "include" directive.
52 Include takes a list of files to include. Quoting and wildcards is
53 supported.
54
55 For example,
56
57 include /path/to/included/file/squid.acl.config
58
59 Includes can be nested up to a hard-coded depth of 16 levels.
60 This arbitrary restriction is to prevent recursive include references
61 from causing Squid entering an infinite loop whilst trying to load
62 configuration files.
63COMMENT_END
64
5473c134 65COMMENT_START
41bd17a4 66 OPTIONS FOR AUTHENTICATION
5473c134 67 -----------------------------------------------------------------------------
68COMMENT_END
69
41bd17a4 70NAME: auth_param
71TYPE: authparam
72LOC: Config.authConfiguration
cccac0a2 73DEFAULT: none
74DOC_START
41bd17a4 75 This is used to define parameters for the various authentication
76 schemes supported by Squid.
cccac0a2 77
41bd17a4 78 format: auth_param scheme parameter [setting]
cccac0a2 79
41bd17a4 80 The order in which authentication schemes are presented to the client is
81 dependent on the order the scheme first appears in config file. IE
82 has a bug (it's not RFC 2617 compliant) in that it will use the basic
83 scheme if basic is the first entry presented, even if more secure
84 schemes are presented. For now use the order in the recommended
85 settings section below. If other browsers have difficulties (don't
86 recognize the schemes offered even if you are using basic) either
87 put basic first, or disable the other schemes (by commenting out their
88 program entry).
cccac0a2 89
41bd17a4 90 Once an authentication scheme is fully configured, it can only be
91 shutdown by shutting squid down and restarting. Changes can be made on
92 the fly and activated with a reconfigure. I.E. You can change to a
93 different helper, but not unconfigure the helper completely.
cccac0a2 94
41bd17a4 95 Please note that while this directive defines how Squid processes
96 authentication it does not automatically activate authentication.
97 To use authentication you must in addition make use of ACLs based
98 on login name in http_access (proxy_auth, proxy_auth_regex or
99 external with %LOGIN used in the format tag). The browser will be
100 challenged for authentication on the first such acl encountered
101 in http_access processing and will also be re-challenged for new
102 login credentials if the request is being denied by a proxy_auth
103 type acl.
cccac0a2 104
41bd17a4 105 WARNING: authentication can't be used in a transparently intercepting
106 proxy as the client then thinks it is talking to an origin server and
107 not the proxy. This is a limitation of bending the TCP/IP protocol to
108 transparently intercepting port 80, not a limitation in Squid.
13b5cd0c
AJ
109 Ports flagged 'transparent', 'intercept', or 'tproxy' have authentication
110 disabled.
cccac0a2 111
41bd17a4 112 === Parameters for the basic scheme follow. ===
cccac0a2 113
41bd17a4 114 "program" cmdline
115 Specify the command for the external authenticator. Such a program
116 reads a line containing "username password" and replies "OK" or
117 "ERR" in an endless loop. "ERR" responses may optionally be followed
118 by a error description available as %m in the returned error page.
119 If you use an authenticator, make sure you have 1 acl of type proxy_auth.
cccac0a2 120
41bd17a4 121 By default, the basic authentication scheme is not used unless a
122 program is specified.
cccac0a2 123
41bd17a4 124 If you want to use the traditional NCSA proxy authentication, set
125 this line to something like
307b83b7 126
41bd17a4 127 auth_param basic program @DEFAULT_PREFIX@/libexec/ncsa_auth @DEFAULT_PREFIX@/etc/passwd
9e7dbc51 128
d2a89ac1
AJ
129 "utf8" on|off
130 HTTP uses iso-latin-1 as characterset, while some authentication
131 backends such as LDAP expects UTF-8. If this is set to on Squid will
132 translate the HTTP iso-latin-1 charset to UTF-8 before sending the
133 username & password to the helper.
134
41bd17a4 135 "children" numberofchildren
136 The number of authenticator processes to spawn. If you start too few
137 Squid will have to wait for them to process a backlog of credential
138 verifications, slowing it down. When password verifications are
139 done via a (slow) network you are likely to need lots of
140 authenticator processes.
141 auth_param basic children 5
9e7dbc51 142
41bd17a4 143 "concurrency" concurrency
144 The number of concurrent requests the helper can process.
145 The default of 0 is used for helpers who only supports
146 one request at a time. Setting this changes the protocol used to
147 include a channel number first on the request/response line, allowing
148 multiple requests to be sent to the same helper in parallell without
149 wating for the response.
150 Must not be set unless it's known the helper supports this.
151 auth_param basic concurrency 0
0fdafae7 152
41bd17a4 153 "realm" realmstring
154 Specifies the realm name which is to be reported to the
155 client for the basic proxy authentication scheme (part of
156 the text the user will see when prompted their username and
157 password). There is no default.
158 auth_param basic realm Squid proxy-caching web server
d1b63fc8 159
41bd17a4 160 "credentialsttl" timetolive
161 Specifies how long squid assumes an externally validated
162 username:password pair is valid for - in other words how
163 often the helper program is called for that user. Set this
164 low to force revalidation with short lived passwords. Note
165 setting this high does not impact your susceptibility
166 to replay attacks unless you are using an one-time password
167 system (such as SecureID). If you are using such a system,
168 you will be vulnerable to replay attacks unless you also
169 use the max_user_ip ACL in an http_access rule.
cccac0a2 170
41bd17a4 171 "casesensitive" on|off
172 Specifies if usernames are case sensitive. Most user databases are
173 case insensitive allowing the same username to be spelled using both
174 lower and upper case letters, but some are case sensitive. This
175 makes a big difference for user_max_ip ACL processing and similar.
176 auth_param basic casesensitive off
cccac0a2 177
41bd17a4 178 === Parameters for the digest scheme follow ===
cccac0a2 179
41bd17a4 180 "program" cmdline
181 Specify the command for the external authenticator. Such
182 a program reads a line containing "username":"realm" and
183 replies with the appropriate H(A1) value hex encoded or
184 ERR if the user (or his H(A1) hash) does not exists.
185 See rfc 2616 for the definition of H(A1).
186 "ERR" responses may optionally be followed by a error description
187 available as %m in the returned error page.
cccac0a2 188
41bd17a4 189 By default, the digest authentication scheme is not used unless a
190 program is specified.
b8c0c06d 191
41bd17a4 192 If you want to use a digest authenticator, set this line to
193 something like
cccac0a2 194
7ce93108 195 auth_param digest program @DEFAULT_PREFIX@/bin/digest_pw_auth @DEFAULT_PREFIX@/etc/digpass
cccac0a2 196
d2a89ac1
AJ
197 "utf8" on|off
198 HTTP uses iso-latin-1 as characterset, while some authentication
199 backends such as LDAP expects UTF-8. If this is set to on Squid will
200 translate the HTTP iso-latin-1 charset to UTF-8 before sending the
201 username & password to the helper.
202
41bd17a4 203 "children" numberofchildren
204 The number of authenticator processes to spawn (no default).
205 If you start too few Squid will have to wait for them to
206 process a backlog of H(A1) calculations, slowing it down.
207 When the H(A1) calculations are done via a (slow) network
208 you are likely to need lots of authenticator processes.
209 auth_param digest children 5
cccac0a2 210
41bd17a4 211 "realm" realmstring
212 Specifies the realm name which is to be reported to the
213 client for the digest proxy authentication scheme (part of
214 the text the user will see when prompted their username and
215 password). There is no default.
216 auth_param digest realm Squid proxy-caching web server
cccac0a2 217
41bd17a4 218 "nonce_garbage_interval" timeinterval
219 Specifies the interval that nonces that have been issued
220 to client_agent's are checked for validity.
cccac0a2 221
41bd17a4 222 "nonce_max_duration" timeinterval
223 Specifies the maximum length of time a given nonce will be
224 valid for.
cccac0a2 225
41bd17a4 226 "nonce_max_count" number
227 Specifies the maximum number of times a given nonce can be
228 used.
cccac0a2 229
41bd17a4 230 "nonce_strictness" on|off
231 Determines if squid requires strict increment-by-1 behavior
232 for nonce counts, or just incrementing (off - for use when
233 useragents generate nonce counts that occasionally miss 1
234 (ie, 1,2,4,6)). Default off.
cccac0a2 235
41bd17a4 236 "check_nonce_count" on|off
237 This directive if set to off can disable the nonce count check
238 completely to work around buggy digest qop implementations in
239 certain mainstream browser versions. Default on to check the
240 nonce count to protect from authentication replay attacks.
cccac0a2 241
41bd17a4 242 "post_workaround" on|off
243 This is a workaround to certain buggy browsers who sends
244 an incorrect request digest in POST requests when reusing
245 the same nonce as acquired earlier on a GET request.
cccac0a2 246
41bd17a4 247 === NTLM scheme options follow ===
cccac0a2 248
41bd17a4 249 "program" cmdline
250 Specify the command for the external NTLM authenticator.
251 Such a program reads exchanged NTLMSSP packets with
252 the browser via Squid until authentication is completed.
253 If you use an NTLM authenticator, make sure you have 1 acl
254 of type proxy_auth. By default, the NTLM authenticator_program
255 is not used.
cccac0a2 256
41bd17a4 257 auth_param ntlm program @DEFAULT_PREFIX@/bin/ntlm_auth
cccac0a2 258
41bd17a4 259 "children" numberofchildren
260 The number of authenticator processes to spawn (no default).
261 If you start too few Squid will have to wait for them to
262 process a backlog of credential verifications, slowing it
263 down. When credential verifications are done via a (slow)
264 network you are likely to need lots of authenticator
265 processes.
cccac0a2 266
41bd17a4 267 auth_param ntlm children 5
cccac0a2 268
41bd17a4 269 "keep_alive" on|off
270 If you experience problems with PUT/POST requests when using the
271 Negotiate authentication scheme then you can try setting this to
272 off. This will cause Squid to forcibly close the connection on
273 the initial requests where the browser asks which schemes are
274 supported by the proxy.
cccac0a2 275
41bd17a4 276 auth_param ntlm keep_alive on
cccac0a2 277
41bd17a4 278 === Options for configuring the NEGOTIATE auth-scheme follow ===
cccac0a2 279
41bd17a4 280 "program" cmdline
281 Specify the command for the external Negotiate authenticator.
282 This protocol is used in Microsoft Active-Directory enabled setups with
283 the Microsoft Internet Explorer or Mozilla Firefox browsers.
284 Its main purpose is to exchange credentials with the Squid proxy
285 using the Kerberos mechanisms.
286 If you use a Negotiate authenticator, make sure you have at least one acl
287 of type proxy_auth active. By default, the negotiate authenticator_program
288 is not used.
289 The only supported program for this role is the ntlm_auth
290 program distributed as part of Samba, version 4 or later.
cccac0a2 291
41bd17a4 292 auth_param negotiate program @DEFAULT_PREFIX@/bin/ntlm_auth --helper-protocol=gss-spnego
cccac0a2 293
41bd17a4 294 "children" numberofchildren
295 The number of authenticator processes to spawn (no default).
296 If you start too few Squid will have to wait for them to
297 process a backlog of credential verifications, slowing it
298 down. When crendential verifications are done via a (slow)
299 network you are likely to need lots of authenticator
300 processes.
301 auth_param negotiate children 5
d3803853 302
41bd17a4 303 "keep_alive" on|off
304 If you experience problems with PUT/POST requests when using the
305 Negotiate authentication scheme then you can try setting this to
306 off. This will cause Squid to forcibly close the connection on
307 the initial requests where the browser asks which schemes are
308 supported by the proxy.
527ee50d 309
41bd17a4 310 auth_param negotiate keep_alive on
cccac0a2 311
41bd17a4 312NOCOMMENT_START
313#Recommended minimum configuration per scheme:
314#auth_param negotiate program <uncomment and complete this line to activate>
315#auth_param negotiate children 5
316#auth_param negotiate keep_alive on
317#auth_param ntlm program <uncomment and complete this line to activate>
318#auth_param ntlm children 5
319#auth_param ntlm keep_alive on
320#auth_param digest program <uncomment and complete this line>
321#auth_param digest children 5
322#auth_param digest realm Squid proxy-caching web server
323#auth_param digest nonce_garbage_interval 5 minutes
324#auth_param digest nonce_max_duration 30 minutes
325#auth_param digest nonce_max_count 50
326#auth_param basic program <uncomment and complete this line>
327#auth_param basic children 5
328#auth_param basic realm Squid proxy-caching web server
329#auth_param basic credentialsttl 2 hours
330NOCOMMENT_END
331DOC_END
cccac0a2 332
41bd17a4 333NAME: authenticate_cache_garbage_interval
334TYPE: time_t
335DEFAULT: 1 hour
336LOC: Config.authenticateGCInterval
337DOC_START
338 The time period between garbage collection across the username cache.
339 This is a tradeoff between memory utilization (long intervals - say
340 2 days) and CPU (short intervals - say 1 minute). Only change if you
341 have good reason to.
342DOC_END
cccac0a2 343
41bd17a4 344NAME: authenticate_ttl
345TYPE: time_t
346DEFAULT: 1 hour
347LOC: Config.authenticateTTL
348DOC_START
349 The time a user & their credentials stay in the logged in
350 user cache since their last request. When the garbage
351 interval passes, all user credentials that have passed their
352 TTL are removed from memory.
353DOC_END
cccac0a2 354
41bd17a4 355NAME: authenticate_ip_ttl
356TYPE: time_t
357LOC: Config.authenticateIpTTL
358DEFAULT: 0 seconds
359DOC_START
360 If you use proxy authentication and the 'max_user_ip' ACL,
361 this directive controls how long Squid remembers the IP
362 addresses associated with each user. Use a small value
363 (e.g., 60 seconds) if your users might change addresses
364 quickly, as is the case with dialups. You might be safe
365 using a larger value (e.g., 2 hours) in a corporate LAN
366 environment with relatively static address assignments.
367DOC_END
cccac0a2 368
3d1e3e43 369COMMENT_START
370 ACCESS CONTROLS
371 -----------------------------------------------------------------------------
372COMMENT_END
373
41bd17a4 374NAME: external_acl_type
375TYPE: externalAclHelper
376LOC: Config.externalAclHelperList
cccac0a2 377DEFAULT: none
cccac0a2 378DOC_START
41bd17a4 379 This option defines external acl classes using a helper program
380 to look up the status
cccac0a2 381
41bd17a4 382 external_acl_type name [options] FORMAT.. /path/to/helper [helper arguments..]
cccac0a2 383
41bd17a4 384 Options:
cccac0a2 385
41bd17a4 386 ttl=n TTL in seconds for cached results (defaults to 3600
387 for 1 hour)
388 negative_ttl=n
389 TTL for cached negative lookups (default same
390 as ttl)
391 children=n Number of acl helper processes spawn to service
392 external acl lookups of this type. (default 5)
393 concurrency=n concurrency level per process. Only used with helpers
394 capable of processing more than one query at a time.
395 cache=n result cache size, 0 is unbounded (default)
396 grace=n Percentage remaining of TTL where a refresh of a
397 cached entry should be initiated without needing to
398 wait for a new reply. (default 0 for no grace period)
399 protocol=2.5 Compatibility mode for Squid-2.5 external acl helpers
cc192b50 400 ipv4 / ipv6 IP-mode used to communicate to this helper.
401 For compatability with older configurations and helpers
402 'ipv4' is the default unless --with-localhost-ipv6 is used.
403 --with-localhost-ipv6 changes the default to 'ipv6'.
404 SPECIAL NOTE: these options override --with-localhost-ipv6
cccac0a2 405
41bd17a4 406 FORMAT specifications
cccac0a2 407
41bd17a4 408 %LOGIN Authenticated user login name
409 %EXT_USER Username from external acl
410 %IDENT Ident user name
411 %SRC Client IP
412 %SRCPORT Client source port
413 %URI Requested URI
414 %DST Requested host
415 %PROTO Requested protocol
416 %PORT Requested port
417 %PATH Requested URL path
418 %METHOD Request method
419 %MYADDR Squid interface address
420 %MYPORT Squid http_port number
421 %PATH Requested URL-path (including query-string if any)
422 %USER_CERT SSL User certificate in PEM format
423 %USER_CERTCHAIN SSL User certificate chain in PEM format
424 %USER_CERT_xx SSL User certificate subject attribute xx
425 %USER_CA_xx SSL User certificate issuer attribute xx
7b0ca1e8 426
c68c9682 427 %>{Header} HTTP request header "Header"
7b0ca1e8 428 %>{Hdr:member}
c68c9682 429 HTTP request header "Hdr" list member "member"
7b0ca1e8 430 %>{Hdr:;member}
41bd17a4 431 HTTP request header list member using ; as
432 list separator. ; can be any non-alphanumeric
433 character.
cccac0a2 434
c68c9682 435 %<{Header} HTTP reply header "Header"
7b0ca1e8 436 %<{Hdr:member}
c68c9682 437 HTTP reply header "Hdr" list member "member"
7b0ca1e8
AJ
438 %<{Hdr:;member}
439 HTTP reply header list member using ; as
440 list separator. ; can be any non-alphanumeric
441 character.
442
41bd17a4 443 In addition to the above, any string specified in the referencing
444 acl will also be included in the helper request line, after the
445 specified formats (see the "acl external" directive)
cccac0a2 446
41bd17a4 447 The helper receives lines per the above format specification,
448 and returns lines starting with OK or ERR indicating the validity
449 of the request and optionally followed by additional keywords with
450 more details.
cccac0a2 451
41bd17a4 452 General result syntax:
cccac0a2 453
41bd17a4 454 OK/ERR keyword=value ...
cccac0a2 455
41bd17a4 456 Defined keywords:
cccac0a2 457
41bd17a4 458 user= The users name (login)
459 password= The users password (for login= cache_peer option)
460 message= Message describing the reason. Available as %o
461 in error pages
462 tag= Apply a tag to a request (for both ERR and OK results)
463 Only sets a tag, does not alter existing tags.
464 log= String to be logged in access.log. Available as
465 %ea in logformat specifications
934b03fc 466
41bd17a4 467 If protocol=3.0 (the default) then URL escaping is used to protect
468 each value in both requests and responses.
6a566b9c 469
41bd17a4 470 If using protocol=2.5 then all values need to be enclosed in quotes
471 if they may contain whitespace, or the whitespace escaped using \.
472 And quotes or \ characters within the keyword value must be \ escaped.
1e5562e3 473
41bd17a4 474 When using the concurrency= option the protocol is changed by
475 introducing a query channel tag infront of the request/response.
476 The query channel tag is a number between 0 and concurrency-1.
cccac0a2 477DOC_END
478
41bd17a4 479NAME: acl
480TYPE: acl
481LOC: Config.aclList
1f5bd0a4 482DEFAULT: all src all
cccac0a2 483DOC_START
41bd17a4 484 Defining an Access List
cccac0a2 485
375eeb3b
AJ
486 Every access list definition must begin with an aclname and acltype,
487 followed by either type-specific arguments or a quoted filename that
488 they are read from.
cccac0a2 489
375eeb3b
AJ
490 acl aclname acltype argument ...
491 acl aclname acltype "file" ...
cccac0a2 492
375eeb3b 493 When using "file", the file should contain one item per line.
cccac0a2 494
41bd17a4 495 By default, regular expressions are CASE-SENSITIVE. To make
496 them case-insensitive, use the -i option.
cccac0a2 497
e988aa40
AJ
498
499 ***** ACL TYPES AVAILABLE *****
500
375eeb3b
AJ
501 acl aclname src ip-address/netmask ... # clients IP address
502 acl aclname src addr1-addr2/netmask ... # range of addresses
503 acl aclname dst ip-address/netmask ... # URL host's IP address
504 acl aclname myip ip-address/netmask ... # local socket IP address
cccac0a2 505
41bd17a4 506 acl aclname arp mac-address ... (xx:xx:xx:xx:xx:xx notation)
507 # The arp ACL requires the special configure option --enable-arp-acl.
508 # Furthermore, the ARP ACL code is not portable to all operating systems.
509 # It works on Linux, Solaris, Windows, FreeBSD, and some other *BSD variants.
510 #
511 # NOTE: Squid can only determine the MAC address for clients that are on
512 # the same subnet. If the client is on a different subnet, then Squid cannot
513 # find out its MAC address.
934b03fc 514
375eeb3b
AJ
515 acl aclname srcdomain .foo.com ... # reverse lookup, from client IP
516 acl aclname dstdomain .foo.com ... # Destination server from URL
517 acl aclname srcdom_regex [-i] \.foo\.com ... # regex matching client name
518 acl aclname dstdom_regex [-i] \.foo\.com ... # regex matching server
41bd17a4 519 # For dstdomain and dstdom_regex a reverse lookup is tried if a IP
520 # based URL is used and no match is found. The name "none" is used
521 # if the reverse lookup fails.
9bc73deb 522
375eeb3b
AJ
523 acl aclname src_as number ...
524 acl aclname dst_as number ...
e988aa40
AJ
525 # Except for access control, AS numbers can be used for
526 # routing of requests to specific caches. Here's an
527 # example for routing all requests for AS#1241 and only
528 # those to mycache.mydomain.net:
529 # acl asexample dst_as 1241
530 # cache_peer_access mycache.mydomain.net allow asexample
531 # cache_peer_access mycache_mydomain.net deny all
7f7db318 532
6db78a1a
AJ
533 acl aclname peername myPeer ...
534 # match against a named cache_peer entry
535 # set unique name= on cache_peer lines for reliable use.
536
375eeb3b
AJ
537 acl aclname time [day-abbrevs] [h1:m1-h2:m2]
538 # day-abbrevs:
539 # S - Sunday
540 # M - Monday
541 # T - Tuesday
542 # W - Wednesday
543 # H - Thursday
544 # F - Friday
545 # A - Saturday
546 # h1:m1 must be less than h2:m2
547
548 acl aclname url_regex [-i] ^http:// ... # regex matching on whole URL
41bd17a4 549 acl aclname urlpath_regex [-i] \.gif$ ... # regex matching on URL path
e988aa40 550
375eeb3b
AJ
551 acl aclname port 80 70 21 ...
552 acl aclname port 0-1024 ... # ranges allowed
553 acl aclname myport 3128 ... # (local socket TCP port)
197f6b3c 554 acl aclname myportname 3128 ... # http(s)_port name
e988aa40 555
375eeb3b 556 acl aclname proto HTTP FTP ...
e988aa40 557
375eeb3b 558 acl aclname method GET POST ...
e988aa40
AJ
559
560 acl aclname http_status 200 301 500- 400-403 ... # status code in reply
561
375eeb3b 562 acl aclname browser [-i] regexp ...
41bd17a4 563 # pattern match on User-Agent header (see also req_header below)
e988aa40 564
375eeb3b 565 acl aclname referer_regex [-i] regexp ...
41bd17a4 566 # pattern match on Referer header
567 # Referer is highly unreliable, so use with care
e988aa40 568
375eeb3b 569 acl aclname ident username ...
41bd17a4 570 acl aclname ident_regex [-i] pattern ...
571 # string match on ident output.
572 # use REQUIRED to accept any non-null ident.
cf5cc17e 573
41bd17a4 574 acl aclname proxy_auth [-i] username ...
575 acl aclname proxy_auth_regex [-i] pattern ...
576 # list of valid usernames
577 # use REQUIRED to accept any valid username.
578 #
579 # NOTE: when a Proxy-Authentication header is sent but it is not
580 # needed during ACL checking the username is NOT logged
581 # in access.log.
582 #
583 # NOTE: proxy_auth requires a EXTERNAL authentication program
584 # to check username/password combinations (see
585 # auth_param directive).
586 #
e988aa40
AJ
587 # NOTE: proxy_auth can't be used in a transparent/intercepting proxy
588 # as the browser needs to be configured for using a proxy in order
41bd17a4 589 # to respond to proxy authentication.
8e8d4f30 590
41bd17a4 591 acl aclname snmp_community string ...
592 # A community string to limit access to your SNMP Agent
593 # Example:
594 #
595 # acl snmppublic snmp_community public
934b03fc 596
41bd17a4 597 acl aclname maxconn number
598 # This will be matched when the client's IP address has
599 # more than <number> HTTP connections established.
1e5562e3 600
41bd17a4 601 acl aclname max_user_ip [-s] number
602 # This will be matched when the user attempts to log in from more
603 # than <number> different ip addresses. The authenticate_ip_ttl
604 # parameter controls the timeout on the ip entries.
605 # If -s is specified the limit is strict, denying browsing
606 # from any further IP addresses until the ttl has expired. Without
607 # -s Squid will just annoy the user by "randomly" denying requests.
608 # (the counter is reset each time the limit is reached and a
609 # request is denied)
610 # NOTE: in acceleration mode or where there is mesh of child proxies,
611 # clients may appear to come from multiple addresses if they are
612 # going through proxy farms, so a limit of 1 may cause user problems.
cccac0a2 613
375eeb3b 614 acl aclname req_mime_type [-i] mime-type ...
41bd17a4 615 # regex match against the mime type of the request generated
616 # by the client. Can be used to detect file upload or some
617 # types HTTP tunneling requests.
618 # NOTE: This does NOT match the reply. You cannot use this
619 # to match the returned file type.
cccac0a2 620
41bd17a4 621 acl aclname req_header header-name [-i] any\.regex\.here
622 # regex match against any of the known request headers. May be
623 # thought of as a superset of "browser", "referer" and "mime-type"
624 # ACLs.
cccac0a2 625
375eeb3b 626 acl aclname rep_mime_type [-i] mime-type ...
41bd17a4 627 # regex match against the mime type of the reply received by
628 # squid. Can be used to detect file download or some
629 # types HTTP tunneling requests.
630 # NOTE: This has no effect in http_access rules. It only has
631 # effect in rules that affect the reply data stream such as
632 # http_reply_access.
cccac0a2 633
41bd17a4 634 acl aclname rep_header header-name [-i] any\.regex\.here
635 # regex match against any of the known reply headers. May be
636 # thought of as a superset of "browser", "referer" and "mime-type"
637 # ACLs.
cccac0a2 638
375eeb3b 639 acl aclname external class_name [arguments...]
41bd17a4 640 # external ACL lookup via a helper class defined by the
641 # external_acl_type directive.
cccac0a2 642
41bd17a4 643 acl aclname user_cert attribute values...
644 # match against attributes in a user SSL certificate
645 # attribute is one of DN/C/O/CN/L/ST
cccac0a2 646
41bd17a4 647 acl aclname ca_cert attribute values...
648 # match against attributes a users issuing CA SSL certificate
649 # attribute is one of DN/C/O/CN/L/ST
cccac0a2 650
41bd17a4 651 acl aclname ext_user username ...
652 acl aclname ext_user_regex [-i] pattern ...
653 # string match on username returned by external acl helper
654 # use REQUIRED to accept any non-null user name.
cccac0a2 655
41bd17a4 656Examples:
657acl macaddress arp 09:00:2b:23:45:67
658acl myexample dst_as 1241
659acl password proxy_auth REQUIRED
660acl fileupload req_mime_type -i ^multipart/form-data$
661acl javascript rep_mime_type -i ^application/x-javascript$
cccac0a2 662
41bd17a4 663NOCOMMENT_START
664#Recommended minimum configuration:
41bd17a4 665acl manager proto cache_object
ee776778 666acl localhost src 127.0.0.1/32
41bd17a4 667acl to_localhost dst 127.0.0.0/8
ee776778 668#
669# Example rule allowing access from your local networks.
670# Adapt to list your (internal) IP networks from where browsing
671# should be allowed
672acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
673acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
674acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
675#
41bd17a4 676acl SSL_ports port 443
677acl Safe_ports port 80 # http
678acl Safe_ports port 21 # ftp
679acl Safe_ports port 443 # https
680acl Safe_ports port 70 # gopher
681acl Safe_ports port 210 # wais
682acl Safe_ports port 1025-65535 # unregistered ports
683acl Safe_ports port 280 # http-mgmt
684acl Safe_ports port 488 # gss-http
685acl Safe_ports port 591 # filemaker
686acl Safe_ports port 777 # multiling http
687acl CONNECT method CONNECT
688NOCOMMENT_END
689DOC_END
cccac0a2 690
3d674977
AJ
691NAME: follow_x_forwarded_for
692TYPE: acl_access
693IFDEF: FOLLOW_X_FORWARDED_FOR
694LOC: Config.accessList.followXFF
695DEFAULT: none
696DEFAULT_IF_NONE: deny all
697DOC_START
698 Allowing or Denying the X-Forwarded-For header to be followed to
699 find the original source of a request.
700
701 Requests may pass through a chain of several other proxies
702 before reaching us. The X-Forwarded-For header will contain a
703 comma-separated list of the IP addresses in the chain, with the
704 rightmost address being the most recent.
705
706 If a request reaches us from a source that is allowed by this
707 configuration item, then we consult the X-Forwarded-For header
708 to see where that host received the request from. If the
709 X-Forwarded-For header contains multiple addresses, and if
710 acl_uses_indirect_client is on, then we continue backtracking
711 until we reach an address for which we are not allowed to
712 follow the X-Forwarded-For header, or until we reach the first
713 address in the list. (If acl_uses_indirect_client is off, then
714 it's impossible to backtrack through more than one level of
715 X-Forwarded-For addresses.)
716
717 The end result of this process is an IP address that we will
718 refer to as the indirect client address. This address may
719 be treated as the client address for access control, delay
720 pools and logging, depending on the acl_uses_indirect_client,
721 delay_pool_uses_indirect_client and log_uses_indirect_client
722 options.
723
724 SECURITY CONSIDERATIONS:
725
726 Any host for which we follow the X-Forwarded-For header
727 can place incorrect information in the header, and Squid
728 will use the incorrect information as if it were the
729 source address of the request. This may enable remote
730 hosts to bypass any access control restrictions that are
731 based on the client's source addresses.
732
733 For example:
734
735 acl localhost src 127.0.0.1
736 acl my_other_proxy srcdomain .proxy.example.com
737 follow_x_forwarded_for allow localhost
738 follow_x_forwarded_for allow my_other_proxy
739DOC_END
740
741NAME: acl_uses_indirect_client
742COMMENT: on|off
743TYPE: onoff
744IFDEF: FOLLOW_X_FORWARDED_FOR
745DEFAULT: on
746LOC: Config.onoff.acl_uses_indirect_client
747DOC_START
748 Controls whether the indirect client address
749 (see follow_x_forwarded_for) is used instead of the
750 direct client address in acl matching.
751DOC_END
752
753NAME: delay_pool_uses_indirect_client
754COMMENT: on|off
755TYPE: onoff
97a616ca 756IFDEF: FOLLOW_X_FORWARDED_FOR DELAY_POOLS
3d674977
AJ
757DEFAULT: on
758LOC: Config.onoff.delay_pool_uses_indirect_client
759DOC_START
760 Controls whether the indirect client address
761 (see follow_x_forwarded_for) is used instead of the
762 direct client address in delay pools.
763DOC_END
764
765NAME: log_uses_indirect_client
766COMMENT: on|off
767TYPE: onoff
768IFDEF: FOLLOW_X_FORWARDED_FOR
769DEFAULT: on
770LOC: Config.onoff.log_uses_indirect_client
771DOC_START
772 Controls whether the indirect client address
773 (see follow_x_forwarded_for) is used instead of the
774 direct client address in the access log.
775DOC_END
776
41bd17a4 777NAME: http_access
778TYPE: acl_access
779LOC: Config.accessList.http
780DEFAULT: none
781DEFAULT_IF_NONE: deny all
782DOC_START
783 Allowing or Denying access based on defined access lists
cccac0a2 784
41bd17a4 785 Access to the HTTP port:
786 http_access allow|deny [!]aclname ...
cccac0a2 787
41bd17a4 788 NOTE on default values:
cccac0a2 789
41bd17a4 790 If there are no "access" lines present, the default is to deny
791 the request.
cccac0a2 792
41bd17a4 793 If none of the "access" lines cause a match, the default is the
794 opposite of the last line in the list. If the last line was
795 deny, the default is allow. Conversely, if the last line
796 is allow, the default will be deny. For these reasons, it is a
797 good idea to have an "deny all" or "allow all" entry at the end
798 of your access lists to avoid potential confusion.
cccac0a2 799
41bd17a4 800NOCOMMENT_START
801#Recommended minimum configuration:
802#
803# Only allow cachemgr access from localhost
804http_access allow manager localhost
805http_access deny manager
806# Deny requests to unknown ports
807http_access deny !Safe_ports
808# Deny CONNECT to other than SSL ports
809http_access deny CONNECT !SSL_ports
810#
811# We strongly recommend the following be uncommented to protect innocent
812# web applications running on the proxy server who think the only
813# one who can access services on "localhost" is a local user
814#http_access deny to_localhost
815#
816# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
c8f4eac4 817
ee776778 818# Example rule allowing access from your local networks.
819# Adapt localnet in the ACL section to list your (internal) IP networks
820# from where browsing should be allowed
821http_access allow localnet
7d90757b 822
41bd17a4 823# And finally deny all other access to this proxy
824http_access deny all
825NOCOMMENT_END
826DOC_END
7d90757b 827
41bd17a4 828NAME: http_reply_access
829TYPE: acl_access
830LOC: Config.accessList.reply
831DEFAULT: none
832DOC_START
833 Allow replies to client requests. This is complementary to http_access.
cccac0a2 834
41bd17a4 835 http_reply_access allow|deny [!] aclname ...
cccac0a2 836
41bd17a4 837 NOTE: if there are no access lines present, the default is to allow
838 all replies
1a224843 839
41bd17a4 840 If none of the access lines cause a match the opposite of the
841 last line will apply. Thus it is good practice to end the rules
842 with an "allow all" or "deny all" entry.
cccac0a2 843DOC_END
844
41bd17a4 845NAME: icp_access
846TYPE: acl_access
847LOC: Config.accessList.icp
848DEFAULT: none
849DEFAULT_IF_NONE: deny all
5473c134 850DOC_START
41bd17a4 851 Allowing or Denying access to the ICP port based on defined
852 access lists
5473c134 853
41bd17a4 854 icp_access allow|deny [!]aclname ...
5473c134 855
41bd17a4 856 See http_access for details
857
858NOCOMMENT_START
ee776778 859#Allow ICP queries from local networks only
df2eec10
AJ
860#icp_access allow localnet
861#icp_access deny all
41bd17a4 862NOCOMMENT_END
5473c134 863DOC_END
864
41bd17a4 865NAME: htcp_access
866IFDEF: USE_HTCP
867TYPE: acl_access
868LOC: Config.accessList.htcp
869DEFAULT: none
870DEFAULT_IF_NONE: deny all
5473c134 871DOC_START
41bd17a4 872 Allowing or Denying access to the HTCP port based on defined
873 access lists
5473c134 874
41bd17a4 875 htcp_access allow|deny [!]aclname ...
5473c134 876
41bd17a4 877 See http_access for details
5473c134 878
0b48417e 879 NOTE: The default if no htcp_access lines are present is to
880 deny all traffic. This default may cause problems with peers
881 using the htcp or htcp-oldsquid options.
882
ee776778 883NOCOMMENT_START
884#Allow HTCP queries from local networks only
df2eec10
AJ
885#htcp_access allow localnet
886#htcp_access deny all
ee776778 887NOCOMMENT_END
41bd17a4 888DOC_END
5473c134 889
41bd17a4 890NAME: htcp_clr_access
891IFDEF: USE_HTCP
892TYPE: acl_access
893LOC: Config.accessList.htcp_clr
894DEFAULT: none
895DEFAULT_IF_NONE: deny all
896DOC_START
897 Allowing or Denying access to purge content using HTCP based
898 on defined access lists
5473c134 899
41bd17a4 900 htcp_clr_access allow|deny [!]aclname ...
5473c134 901
41bd17a4 902 See http_access for details
5473c134 903
41bd17a4 904#Allow HTCP CLR requests from trusted peers
905acl htcp_clr_peer src 172.16.1.2
906htcp_clr_access allow htcp_clr_peer
5473c134 907DOC_END
908
41bd17a4 909NAME: miss_access
910TYPE: acl_access
911LOC: Config.accessList.miss
df2eec10 912DEFAULT: allow all
5473c134 913DOC_START
41bd17a4 914 Use to force your neighbors to use you as a sibling instead of
915 a parent. For example:
5473c134 916
41bd17a4 917 acl localclients src 172.16.0.0/16
918 miss_access allow localclients
919 miss_access deny !localclients
5473c134 920
41bd17a4 921 This means only your local clients are allowed to fetch
922 MISSES and all other clients can only fetch HITS.
5473c134 923
41bd17a4 924 By default, allow all clients who passed the http_access rules
925 to fetch MISSES from us.
41bd17a4 926DOC_END
927
928NAME: ident_lookup_access
929TYPE: acl_access
930IFDEF: USE_IDENT
931DEFAULT: none
932DEFAULT_IF_NONE: deny all
933LOC: Config.accessList.identLookup
5473c134 934DOC_START
41bd17a4 935 A list of ACL elements which, if matched, cause an ident
936 (RFC 931) lookup to be performed for this request. For
937 example, you might choose to always perform ident lookups
938 for your main multi-user Unix boxes, but not for your Macs
939 and PCs. By default, ident lookups are not performed for
940 any requests.
5473c134 941
41bd17a4 942 To enable ident lookups for specific client addresses, you
943 can follow this example:
5473c134 944
41bd17a4 945 acl ident_aware_hosts src 198.168.1.0/255.255.255.0
946 ident_lookup_access allow ident_aware_hosts
947 ident_lookup_access deny all
5473c134 948
41bd17a4 949 Only src type ACL checks are fully supported. A src_domain
950 ACL might work at times, but it will not always provide
951 the correct result.
952DOC_END
5473c134 953
5b0f5383 954NAME: reply_body_max_size
955COMMENT: size [acl acl...]
956TYPE: acl_b_size_t
957DEFAULT: none
958LOC: Config.ReplyBodySize
959DOC_START
960 This option specifies the maximum size of a reply body. It can be
961 used to prevent users from downloading very large files, such as
962 MP3's and movies. When the reply headers are received, the
963 reply_body_max_size lines are processed, and the first line where
964 all (if any) listed ACLs are true is used as the maximum body size
965 for this reply.
966
967 This size is checked twice. First when we get the reply headers,
968 we check the content-length value. If the content length value exists
969 and is larger than the allowed size, the request is denied and the
970 user receives an error message that says "the request or reply
971 is too large." If there is no content-length, and the reply
972 size exceeds this limit, the client's connection is just closed
973 and they will receive a partial reply.
974
975 WARNING: downstream caches probably can not detect a partial reply
976 if there is no content-length header, so they will cache
977 partial responses and give them out as hits. You should NOT
978 use this option if you have downstream caches.
979
980 WARNING: A maximum size smaller than the size of squid's error messages
981 will cause an infinite loop and crash squid. Ensure that the smallest
982 non-zero value you use is greater that the maximum header size plus
983 the size of your largest error page.
984
985 If you set this parameter none (the default), there will be
986 no limit imposed.
3bc32f2f
AJ
987
988 Configuration Format is:
989 reply_body_max_size SIZE UNITS [acl ...]
990 ie.
991 reply_body_max_size 10 MB
992
5b0f5383 993DOC_END
994
995COMMENT_START
996 NETWORK OPTIONS
997 -----------------------------------------------------------------------------
998COMMENT_END
999
1000NAME: http_port ascii_port
1001TYPE: http_port_list
1002DEFAULT: none
1003LOC: Config.Sockaddr.http
1004DOC_START
1005 Usage: port [options]
1006 hostname:port [options]
1007 1.2.3.4:port [options]
1008
1009 The socket addresses where Squid will listen for HTTP client
1010 requests. You may specify multiple socket addresses.
1011 There are three forms: port alone, hostname with port, and
1012 IP address with port. If you specify a hostname or IP
1013 address, Squid binds the socket to that specific
1014 address. This replaces the old 'tcp_incoming_address'
1015 option. Most likely, you do not need to bind to a specific
1016 address, so you can use the port number alone.
1017
1018 If you are running Squid in accelerator mode, you
1019 probably want to listen on port 80 also, or instead.
1020
1021 The -a command line option may be used to specify additional
1022 port(s) where Squid listens for proxy request. Such ports will
1023 be plain proxy ports with no options.
1024
1025 You may specify multiple socket addresses on multiple lines.
1026
1027 Options:
1028
e77bdb4e 1029 intercept Support for IP-Layer interception of
5b0f5383 1030 outgoing requests without browser settings.
13b5cd0c 1031 NP: disables authentication and IPv6 on the port.
5b0f5383 1032
1033 tproxy Support Linux TPROXY for spoofing outgoing
1034 connections using the client IP address.
13b5cd0c 1035 NP: disables authentication and IPv6 on the port.
5b0f5383 1036
1037 accel Accelerator mode. Also needs at least one of
1038 vhost / vport / defaultsite.
1039
1040 defaultsite=domainname
1041 What to use for the Host: header if it is not present
1042 in a request. Determines what site (not origin server)
1043 accelerators should consider the default.
1044 Implies accel.
1045
1046 vhost Accelerator mode using Host header for virtual
1047 domain support. Implies accel.
1048
1049 vport Accelerator with IP based virtual host support.
1050 Implies accel.
1051
1052 vport=NN As above, but uses specified port number rather
1053 than the http_port number. Implies accel.
1054
1055 protocol= Protocol to reconstruct accelerated requests with.
1056 Defaults to http.
1057
d67acb4e
AJ
1058 connection-auth[=on|off]
1059 use connection-auth=off to tell Squid to prevent
1060 forwarding Microsoft connection oriented authentication
1061 (NTLM, Negotiate and Kerberos)
1062
5b0f5383 1063 disable-pmtu-discovery=
1064 Control Path-MTU discovery usage:
1065 off lets OS decide on what to do (default).
1066 transparent disable PMTU discovery when transparent
1067 support is enabled.
1068 always disable always PMTU discovery.
1069
1070 In many setups of transparently intercepting proxies
1071 Path-MTU discovery can not work on traffic towards the
1072 clients. This is the case when the intercepting device
1073 does not fully track connections and fails to forward
1074 ICMP must fragment messages to the cache server. If you
1075 have such setup and experience that certain clients
1076 sporadically hang or never complete requests set
1077 disable-pmtu-discovery option to 'transparent'.
1078
4c9da963 1079 sslBump Intercept each CONNECT request matching ssl_bump ACL,
1080 establish secure connection with the client and with
1081 the server, decrypt HTTP messages as they pass through
1082 Squid, and treat them as unencrypted HTTP messages,
1083 becoming the man-in-the-middle.
1084
1085 When this option is enabled, additional options become
1086 available to specify SSL-related properties of the
1087 client-side connection: cert, key, version, cipher,
1088 options, clientca, cafile, capath, crlfile, dhparams,
1089 sslflags, and sslcontext. See the https_port directive
1090 for more information on these options.
1091
1092 The ssl_bump option is required to fully enable
1093 the SslBump feature.
1094
81b6e9a7 1095 name= Specifies a internal name for the port. Defaults to
1096 the port specification (port or addr:port)
1097
b2130d58 1098 keepalive[=idle,interval,timeout]
1099 Enable TCP keepalive probes of idle connections
1100 idle is the initial time before TCP starts probing
1101 the connection, interval how often to probe, and
1102 timeout the time before giving up.
1103
5b0f5383 1104 If you run Squid on a dual-homed machine with an internal
1105 and an external interface we recommend you to specify the
1106 internal address:port in http_port. This way Squid will only be
1107 visible on the internal address.
1108
1109NOCOMMENT_START
1110# Squid normally listens to port 3128
1111http_port @DEFAULT_HTTP_PORT@
1112NOCOMMENT_END
1113DOC_END
1114
1115NAME: https_port
1116IFDEF: USE_SSL
1117TYPE: https_port_list
1118DEFAULT: none
1119LOC: Config.Sockaddr.https
1120DOC_START
1121 Usage: [ip:]port cert=certificate.pem [key=key.pem] [options...]
1122
1123 The socket address where Squid will listen for HTTPS client
1124 requests.
1125
1126 This is really only useful for situations where you are running
1127 squid in accelerator mode and you want to do the SSL work at the
1128 accelerator level.
1129
1130 You may specify multiple socket addresses on multiple lines,
1131 each with their own SSL certificate and/or options.
1132
1133 Options:
1134
1135 accel Accelerator mode. Also needs at least one of
1136 defaultsite or vhost.
1137
1138 defaultsite= The name of the https site presented on
1139 this port. Implies accel.
1140
1141 vhost Accelerator mode using Host header for virtual
1142 domain support. Requires a wildcard certificate
1143 or other certificate valid for more than one domain.
1144 Implies accel.
1145
1146 protocol= Protocol to reconstruct accelerated requests with.
1147 Defaults to https.
1148
1149 cert= Path to SSL certificate (PEM format).
1150
1151 key= Path to SSL private key file (PEM format)
1152 if not specified, the certificate file is
1153 assumed to be a combined certificate and
1154 key file.
1155
1156 version= The version of SSL/TLS supported
1157 1 automatic (default)
1158 2 SSLv2 only
1159 3 SSLv3 only
1160 4 TLSv1 only
1161
1162 cipher= Colon separated list of supported ciphers.
1163
1164 options= Various SSL engine options. The most important
1165 being:
1166 NO_SSLv2 Disallow the use of SSLv2
1167 NO_SSLv3 Disallow the use of SSLv3
1168 NO_TLSv1 Disallow the use of TLSv1
1169 SINGLE_DH_USE Always create a new key when using
1170 temporary/ephemeral DH key exchanges
1171 See src/ssl_support.c or OpenSSL SSL_CTX_set_options
1172 documentation for a complete list of options.
1173
1174 clientca= File containing the list of CAs to use when
1175 requesting a client certificate.
1176
1177 cafile= File containing additional CA certificates to
1178 use when verifying client certificates. If unset
1179 clientca will be used.
1180
1181 capath= Directory containing additional CA certificates
1182 and CRL lists to use when verifying client certificates.
1183
1184 crlfile= File of additional CRL lists to use when verifying
1185 the client certificate, in addition to CRLs stored in
1186 the capath. Implies VERIFY_CRL flag below.
1187
1188 dhparams= File containing DH parameters for temporary/ephemeral
1189 DH key exchanges.
1190
1191 sslflags= Various flags modifying the use of SSL:
1192 DELAYED_AUTH
1193 Don't request client certificates
1194 immediately, but wait until acl processing
1195 requires a certificate (not yet implemented).
1196 NO_DEFAULT_CA
1197 Don't use the default CA lists built in
1198 to OpenSSL.
1199 NO_SESSION_REUSE
1200 Don't allow for session reuse. Each connection
1201 will result in a new SSL session.
1202 VERIFY_CRL
1203 Verify CRL lists when accepting client
1204 certificates.
1205 VERIFY_CRL_ALL
1206 Verify CRL lists for all certificates in the
1207 client certificate chain.
1208
1209 sslcontext= SSL session ID context identifier.
1210
1211 vport Accelerator with IP based virtual host support.
1212
1213 vport=NN As above, but uses specified port number rather
1214 than the https_port number. Implies accel.
1215
81b6e9a7 1216 name= Specifies a internal name for the port. Defaults to
1217 the port specification (port or addr:port)
1218
5b0f5383 1219DOC_END
1220
41bd17a4 1221NAME: tcp_outgoing_tos tcp_outgoing_ds tcp_outgoing_dscp
1222TYPE: acl_tos
5473c134 1223DEFAULT: none
41bd17a4 1224LOC: Config.accessList.outgoing_tos
5473c134 1225DOC_START
41bd17a4 1226 Allows you to select a TOS/Diffserv value to mark outgoing
1227 connections with, based on the username or source address
1228 making the request.
5473c134 1229
41bd17a4 1230 tcp_outgoing_tos ds-field [!]aclname ...
cccac0a2 1231
41bd17a4 1232 Example where normal_service_net uses the TOS value 0x00
1233 and normal_service_net uses 0x20
cccac0a2 1234
41bd17a4 1235 acl normal_service_net src 10.0.0.0/255.255.255.0
1236 acl good_service_net src 10.0.1.0/255.255.255.0
2c73de90 1237 tcp_outgoing_tos 0x00 normal_service_net
41bd17a4 1238 tcp_outgoing_tos 0x20 good_service_net
fa38076e 1239
41bd17a4 1240 TOS/DSCP values really only have local significance - so you should
575cb927
AJ
1241 know what you're specifying. For more information, see RFC2474,
1242 RFC2475, and RFC3260.
cccac0a2 1243
41bd17a4 1244 The TOS/DSCP byte must be exactly that - a octet value 0 - 255, or
1245 "default" to use whatever default your host has. Note that in
1246 practice often only values 0 - 63 is usable as the two highest bits
1247 have been redefined for use by ECN (RFC3168).
cccac0a2 1248
41bd17a4 1249 Processing proceeds in the order specified, and stops at first fully
1250 matching line.
cccac0a2 1251
41bd17a4 1252 Note: The use of this directive using client dependent ACLs is
1253 incompatible with the use of server side persistent connections. To
1254 ensure correct results it is best to set server_persisten_connections
1255 to off when using this directive in such configurations.
cccac0a2 1256DOC_END
1257
41bd17a4 1258NAME: clientside_tos
1259TYPE: acl_tos
cccac0a2 1260DEFAULT: none
41bd17a4 1261LOC: Config.accessList.clientside_tos
cccac0a2 1262DOC_START
41bd17a4 1263 Allows you to select a TOS/Diffserv value to mark client-side
1264 connections with, based on the username or source address
1265 making the request.
1266DOC_END
cccac0a2 1267
575cb927
AJ
1268NAME: qos_flows
1269TYPE: QosConfig
7172612f 1270IFDEF: USE_ZPH_QOS
575cb927
AJ
1271DEFAULT: none
1272LOC: Config.zph
7172612f 1273DOC_START
575cb927
AJ
1274 Allows you to select a TOS/DSCP value to mark outgoing
1275 connections with, based on where the reply was sourced.
7172612f 1276
575cb927
AJ
1277 TOS values really only have local significance - so you should
1278 know what you're specifying. For more information, see RFC2474,
1279 RFC2475, and RFC3260.
7172612f 1280
575cb927
AJ
1281 The TOS/DSCP byte must be exactly that - octet value 0x00-0xFF.
1282 Note that in practice often only values up to 0x3F are usable
1283 as the two highest bits have been redefined for use by ECN
1284 (RFC3168).
7172612f 1285
575cb927
AJ
1286 This setting is configured by setting the source TOS values:
1287
1288 local-hit=0xFF Value to mark local cache hits.
1289
1290 sibling-hit=0xFF Value to mark hits from sibling peers.
1291
1292 parent-hit=0xFF Value to mark hits from parent peers.
1293
1294
2201bec6
AJ
1295 NOTE: 'miss' preserve feature is only possible on Linux at this time.
1296
575cb927
AJ
1297 For the following to work correctly, you will need to patch your
1298 linux kernel with the TOS preserving ZPH patch.
1299 The kernel patch can be downloaded from http://zph.bratcheda.org
1300
575cb927
AJ
1301 disable-preserve-miss
1302 If set, any HTTP response towards clients will
1303 have the TOS value of the response comming from the
1304 remote server masked with the value of miss-mask.
1305
1306 miss-mask=0xFF
1307 Allows you to mask certain bits in the TOS received from the
1308 remote server, before copying the value to the TOS sent
1309 towards clients.
1310 Default: 0xFF (TOS from server is not changed).
7172612f 1311
7172612f
AJ
1312DOC_END
1313
41bd17a4 1314NAME: tcp_outgoing_address
1315TYPE: acl_address
1316DEFAULT: none
1317LOC: Config.accessList.outgoing_address
1318DOC_START
1319 Allows you to map requests to different outgoing IP addresses
1320 based on the username or source address of the user making
1321 the request.
7f7db318 1322
41bd17a4 1323 tcp_outgoing_address ipaddr [[!]aclname] ...
c33aa074 1324
41bd17a4 1325 Example where requests from 10.0.0.0/24 will be forwarded
1326 with source address 10.1.0.1, 10.0.2.0/24 forwarded with
1327 source address 10.1.0.2 and the rest will be forwarded with
1328 source address 10.1.0.3.
9197cd13 1329
17148b2f 1330 acl normal_service_net src 10.0.0.0/24
1331 acl good_service_net src 10.0.2.0/24
1332 tcp_outgoing_address 10.1.0.1 normal_service_net
1333 tcp_outgoing_address 10.1.0.2 good_service_net
1334 tcp_outgoing_address 10.1.0.3
9197cd13 1335
41bd17a4 1336 Processing proceeds in the order specified, and stops at first fully
1337 matching line.
cccac0a2 1338
41bd17a4 1339 Note: The use of this directive using client dependent ACLs is
1340 incompatible with the use of server side persistent connections. To
1341 ensure correct results it is best to set server_persistent_connections
1342 to off when using this directive in such configurations.
cc192b50 1343
1344
1345 IPv6 Magic:
1346
1347 Squid is built with a capability of bridging the IPv4 and IPv6 internets.
1348 tcp_outgoing_address as exampled above breaks this bridging by forcing
1349 all outbound traffic through a certain IPv4 which may be on the wrong
1350 side of the IPv4/IPv6 boundary.
1351
1352 To operate with tcp_outgoing_address and keep the bridging benefits
1353 an additional ACL needs to be used which ensures the IPv6-bound traffic
1354 is never forced or permitted out the IPv4 interface.
1355
1356 acl to_ipv6 dst ipv6
1357 tcp_outgoing_address 2002::c001 good_service_net to_ipv6
17148b2f 1358 tcp_outgoing_address 10.1.0.2 good_service_net !to_ipv6
cc192b50 1359
1360 tcp_outgoing_address 2002::beef normal_service_net to_ipv6
17148b2f 1361 tcp_outgoing_address 10.1.0.1 normal_service_net !to_ipv6
cc192b50 1362
1363 tcp_outgoing_address 2002::1 to_ipv6
17148b2f 1364 tcp_outgoing_address 10.1.0.3 !to_ipv6
6db78a1a
AJ
1365
1366 WARNING:
1367 'dst ipv6' bases its selection assuming DIRECT access.
1368 If peers are used the peername ACL are needed to select outgoing
1369 address which can link to the peer.
1370
cccac0a2 1371DOC_END
1372
41bd17a4 1373COMMENT_START
1374 SSL OPTIONS
1375 -----------------------------------------------------------------------------
1376COMMENT_END
1377
1378NAME: ssl_unclean_shutdown
1379IFDEF: USE_SSL
cccac0a2 1380TYPE: onoff
1381DEFAULT: off
41bd17a4 1382LOC: Config.SSL.unclean_shutdown
cccac0a2 1383DOC_START
41bd17a4 1384 Some browsers (especially MSIE) bugs out on SSL shutdown
1385 messages.
cccac0a2 1386DOC_END
1387
41bd17a4 1388NAME: ssl_engine
1389IFDEF: USE_SSL
cccac0a2 1390TYPE: string
41bd17a4 1391LOC: Config.SSL.ssl_engine
1392DEFAULT: none
cccac0a2 1393DOC_START
41bd17a4 1394 The OpenSSL engine to use. You will need to set this if you
1395 would like to use hardware SSL acceleration for example.
cccac0a2 1396DOC_END
1397
41bd17a4 1398NAME: sslproxy_client_certificate
1399IFDEF: USE_SSL
cccac0a2 1400DEFAULT: none
41bd17a4 1401LOC: Config.ssl_client.cert
1402TYPE: string
cccac0a2 1403DOC_START
41bd17a4 1404 Client SSL Certificate to use when proxying https:// URLs
cccac0a2 1405DOC_END
1406
41bd17a4 1407NAME: sslproxy_client_key
1408IFDEF: USE_SSL
cccac0a2 1409DEFAULT: none
41bd17a4 1410LOC: Config.ssl_client.key
1411TYPE: string
cccac0a2 1412DOC_START
41bd17a4 1413 Client SSL Key to use when proxying https:// URLs
cccac0a2 1414DOC_END
1415
41bd17a4 1416NAME: sslproxy_version
1417IFDEF: USE_SSL
1418DEFAULT: 1
1419LOC: Config.ssl_client.version
1420TYPE: int
cccac0a2 1421DOC_START
41bd17a4 1422 SSL version level to use when proxying https:// URLs
cccac0a2 1423DOC_END
1424
41bd17a4 1425NAME: sslproxy_options
1426IFDEF: USE_SSL
1427DEFAULT: none
1428LOC: Config.ssl_client.options
1429TYPE: string
cccac0a2 1430DOC_START
41bd17a4 1431 SSL engine options to use when proxying https:// URLs
cccac0a2 1432DOC_END
1433
41bd17a4 1434NAME: sslproxy_cipher
1435IFDEF: USE_SSL
1436DEFAULT: none
1437LOC: Config.ssl_client.cipher
1438TYPE: string
cccac0a2 1439DOC_START
41bd17a4 1440 SSL cipher list to use when proxying https:// URLs
cccac0a2 1441DOC_END
1442
41bd17a4 1443NAME: sslproxy_cafile
1444IFDEF: USE_SSL
1445DEFAULT: none
1446LOC: Config.ssl_client.cafile
1447TYPE: string
cccac0a2 1448DOC_START
41bd17a4 1449 file containing CA certificates to use when verifying server
1450 certificates while proxying https:// URLs
cccac0a2 1451DOC_END
0976f8db 1452
41bd17a4 1453NAME: sslproxy_capath
1454IFDEF: USE_SSL
5473c134 1455DEFAULT: none
41bd17a4 1456LOC: Config.ssl_client.capath
1457TYPE: string
5473c134 1458DOC_START
41bd17a4 1459 directory containing CA certificates to use when verifying
1460 server certificates while proxying https:// URLs
5473c134 1461DOC_END
1462
4c9da963 1463NAME: ssl_bump
1464IFDEF: USE_SSL
1465TYPE: acl_access
1466LOC: Config.accessList.ssl_bump
1467DEFAULT: none
1468DOC_START
1469 This ACL controls which CONNECT requests to an http_port
1470 marked with an sslBump flag are actually "bumped". Please
1471 see the sslBump flag of an http_port option for more details
1472 about decoding proxied SSL connections.
1473
1474 By default, no requests are bumped.
1475
1476 See also: http_port sslBump
1477
1478NOCOMMENT_START
1479# Example: Bump all requests except those originating from localhost and
1480# those going to webax.com or example.com sites.
1481#
1482# acl localhost src 127.0.0.1/32
1483# acl broken_sites dstdomain .webax.com
1484# acl broken_sites dstdomain .example.com
1485# ssl_bump deny localhost
1486# ssl_bump deny broken_sites
1487# ssl_bump allow all
1488NOCOMMENT_END
1489DOC_END
1490
41bd17a4 1491NAME: sslproxy_flags
1492IFDEF: USE_SSL
1493DEFAULT: none
1494LOC: Config.ssl_client.flags
1495TYPE: string
5473c134 1496DOC_START
41bd17a4 1497 Various flags modifying the use of SSL while proxying https:// URLs:
4c9da963 1498 DONT_VERIFY_PEER Accept certificates that fail verification.
1499 For refined control, see sslproxy_cert_error.
41bd17a4 1500 NO_DEFAULT_CA Don't use the default CA list built in
1501 to OpenSSL.
5473c134 1502DOC_END
1503
4c9da963 1504
1505NAME: sslproxy_cert_error
1506IFDEF: USE_SSL
1507DEFAULT: none
1508LOC: Config.ssl_client.cert_error
1509TYPE: acl_access
1510DOC_START
1511 Use this ACL to bypass server certificate validation errors.
1512
1513 For example, the following lines will bypass all validation errors
1514 when talking to servers located at 172.16.0.0/16. All other
1515 validation errors will result in ERR_SECURE_CONNECT_FAIL error.
1516
1517 acl BrokenServersAtTrustedIP dst 172.16.0.0/16
1518 sslproxy_cert_error allow BrokenServersAtTrustedIP
1519 sslproxy_cert_error deny all
1520
1521 This option must use fast ACL expressions only. Expressions that use
1522 external lookups or communication result in unpredictable behavior or
1523 crashes.
1524
1525 Without this option, all server certificate validation errors
1526 terminate the transaction. Bypassing validation errors is dangerous
1527 because an error usually implies that the server cannot be trusted and
1528 the connection may be insecure.
1529
1530 See also: sslproxy_flags and DONT_VERIFY_PEER.
1531
1532NOCOMMENT_START
1533#Default setting:
1534# sslproxy_cert_error deny all
1535NOCOMMENT_END
1536DOC_END
1537
1538
1539
41bd17a4 1540NAME: sslpassword_program
1541IFDEF: USE_SSL
1542DEFAULT: none
1543LOC: Config.Program.ssl_password
1544TYPE: string
5473c134 1545DOC_START
41bd17a4 1546 Specify a program used for entering SSL key passphrases
1547 when using encrypted SSL certificate keys. If not specified
1548 keys must either be unencrypted, or Squid started with the -N
1549 option to allow it to query interactively for the passphrase.
5473c134 1550DOC_END
1551
cccac0a2 1552COMMENT_START
41bd17a4 1553 OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM
cccac0a2 1554 -----------------------------------------------------------------------------
1555COMMENT_END
1556
41bd17a4 1557NAME: cache_peer
1558TYPE: peer
1559DEFAULT: none
1560LOC: Config.peers
cccac0a2 1561DOC_START
41bd17a4 1562 To specify other caches in a hierarchy, use the format:
cccac0a2 1563
41bd17a4 1564 cache_peer hostname type http-port icp-port [options]
cccac0a2 1565
41bd17a4 1566 For example,
cccac0a2 1567
41bd17a4 1568 # proxy icp
1569 # hostname type port port options
1570 # -------------------- -------- ----- ----- -----------
1571 cache_peer parent.foo.net parent 3128 3130 proxy-only default
1572 cache_peer sib1.foo.net sibling 3128 3130 proxy-only
1573 cache_peer sib2.foo.net sibling 3128 3130 proxy-only
cccac0a2 1574
41bd17a4 1575 type: either 'parent', 'sibling', or 'multicast'.
d5277f40 1576
41bd17a4 1577 proxy-port: The port number where the cache listens for proxy
1578 requests.
8d6275c0 1579
41bd17a4 1580 icp-port: Used for querying neighbor caches about
1581 objects. To have a non-ICP neighbor
df2eec10 1582 specify '0' for the ICP port.
41bd17a4 1583 NOTE: Also requires icp_port option enabled to send/receive
1584 requests via this method.
a78278e2 1585
41bd17a4 1586 options: proxy-only
1587 weight=n
1588 basetime=n
1589 ttl=n
1590 no-query
1591 background-ping
1592 default
1593 round-robin
1594 weighted-round-robin
1595 carp
f7e1d9ce
HN
1596 userhash
1597 sourcehash
41bd17a4 1598 multicast-responder
1599 closest-only
1600 no-digest
1601 no-netdb-exchange
1602 no-delay
1603 login=user:password | PASS | *:password
1604 connect-timeout=nn
1605 digest-url=url
1606 allow-miss
1607 max-conn=n
1608 htcp
1609 htcp-oldsquid
4f4fa815
BR
1610 htcp-no-clr
1611 htcp-no-purge-clr
1612 htcp-only-clr
1613 htcp-forward-clr
41bd17a4 1614 originserver
1615 name=xxx
1616 forceddomain=name
1617 ssl
1618 sslcert=/path/to/ssl/certificate
1619 sslkey=/path/to/ssl/key
1620 sslversion=1|2|3|4
1621 sslcipher=...
1622 ssloptions=...
1623 front-end-https[=on|auto]
d67acb4e 1624 connection-auth[=on|off|auto]
cccac0a2 1625
41bd17a4 1626 use 'proxy-only' to specify objects fetched
1627 from this cache should not be saved locally.
cccac0a2 1628
41bd17a4 1629 use 'weight=n' to affect the selection of a peer
1630 during any weighted peer-selection mechanisms.
1631 The weight must be an integer; default is 1,
1632 larger weights are favored more.
1633 This option does not affect parent selection if a peering
1634 protocol is not in use.
cccac0a2 1635
41bd17a4 1636 use 'basetime=n' to specify a base amount to
1637 be subtracted from round trip times of parents.
1638 It is subtracted before division by weight in calculating
1639 which parent to fectch from. If the rtt is less than the
1640 base time the rtt is set to a minimal value.
cccac0a2 1641
41bd17a4 1642 use 'ttl=n' to specify a IP multicast TTL to use
1643 when sending an ICP queries to this address.
1644 Only useful when sending to a multicast group.
1645 Because we don't accept ICP replies from random
1646 hosts, you must configure other group members as
1647 peers with the 'multicast-responder' option below.
5473c134 1648
41bd17a4 1649 use 'no-query' to NOT send ICP queries to this
1650 neighbor.
5473c134 1651
41bd17a4 1652 use 'background-ping' to only send ICP queries to this
1653 neighbor infrequently. This is used to keep the neighbor
1654 round trip time updated and is usually used in
1655 conjunction with weighted-round-robin.
cccac0a2 1656
41bd17a4 1657 use 'default' if this is a parent cache which can
1658 be used as a "last-resort" if a peer cannot be located
1659 by any of the peer-selection mechanisms.
1660 If specified more than once, only the first is used.
cccac0a2 1661
41bd17a4 1662 use 'round-robin' to define a set of parents which
1663 should be used in a round-robin fashion in the
1664 absence of any ICP queries.
cccac0a2 1665
41bd17a4 1666 use 'weighted-round-robin' to define a set of parents
1667 which should be used in a round-robin fashion with the
1668 frequency of each parent being based on the round trip
1669 time. Closer parents are used more often.
1670 Usually used for background-ping parents.
cccac0a2 1671
41bd17a4 1672 use 'carp' to define a set of parents which should
1673 be used as a CARP array. The requests will be
1674 distributed among the parents based on the CARP load
382db7eb 1675 balancing hash function based on their weight.
cccac0a2 1676
f7e1d9ce
HN
1677 use 'userhash' to load-balance amongst a set of parents
1678 based on the client proxy_auth or ident username.
1679
1680 use 'sourcehash' to load-balance amongst a set of parents
1681 based on the client source ip.
1682
41bd17a4 1683 'multicast-responder' indicates the named peer
1684 is a member of a multicast group. ICP queries will
1685 not be sent directly to the peer, but ICP replies
1686 will be accepted from it.
cccac0a2 1687
41bd17a4 1688 'closest-only' indicates that, for ICP_OP_MISS
1689 replies, we'll only forward CLOSEST_PARENT_MISSes
1690 and never FIRST_PARENT_MISSes.
cccac0a2 1691
41bd17a4 1692 use 'no-digest' to NOT request cache digests from
1693 this neighbor.
cccac0a2 1694
41bd17a4 1695 'no-netdb-exchange' disables requesting ICMP
1696 RTT database (NetDB) from the neighbor.
cccac0a2 1697
41bd17a4 1698 use 'no-delay' to prevent access to this neighbor
1699 from influencing the delay pools.
7d90757b 1700
41bd17a4 1701 use 'login=user:password' if this is a personal/workgroup
1702 proxy and your parent requires proxy authentication.
1703 Note: The string can include URL escapes (i.e. %20 for
1704 spaces). This also means % must be written as %%.
7d90757b 1705
41bd17a4 1706 use 'login=PASS' if users must authenticate against
1707 the upstream proxy or in the case of a reverse proxy
1708 configuration, the origin web server. This will pass
1709 the users credentials as they are to the peer.
1710 This only works for the Basic HTTP authentication scheme.
1711 Note: To combine this with proxy_auth both proxies must
1712 share the same user database as HTTP only allows for
1713 a single login (one for proxy, one for origin server).
1714 Also be warned this will expose your users proxy
1715 password to the peer. USE WITH CAUTION
7d90757b 1716
41bd17a4 1717 use 'login=*:password' to pass the username to the
1718 upstream cache, but with a fixed password. This is meant
1719 to be used when the peer is in another administrative
1720 domain, but it is still needed to identify each user.
1721 The star can optionally be followed by some extra
1722 information which is added to the username. This can
1723 be used to identify this proxy to the peer, similar to
1724 the login=username:password option above.
cccac0a2 1725
41bd17a4 1726 use 'connect-timeout=nn' to specify a peer
1727 specific connect timeout (also see the
1728 peer_connect_timeout directive)
7f7db318 1729
41bd17a4 1730 use 'digest-url=url' to tell Squid to fetch the cache
1731 digest (if digests are enabled) for this host from
1732 the specified URL rather than the Squid default
1733 location.
cccac0a2 1734
41bd17a4 1735 use 'allow-miss' to disable Squid's use of only-if-cached
1736 when forwarding requests to siblings. This is primarily
1737 useful when icp_hit_stale is used by the sibling. To
1738 extensive use of this option may result in forwarding
1739 loops, and you should avoid having two-way peerings
1740 with this option. (for example to deny peer usage on
1741 requests from peer by denying cache_peer_access if the
1742 source is a peer)
cccac0a2 1743
41bd17a4 1744 use 'max-conn=n' to limit the amount of connections Squid
1745 may open to this peer.
cccac0a2 1746
41bd17a4 1747 use 'htcp' to send HTCP, instead of ICP, queries
1748 to the neighbor. You probably also want to
1749 set the "icp port" to 4827 instead of 3130.
0b48417e 1750 You MUST also set htcp_access expicitly. The default of
1751 deny all will prevent peer traffic.
cccac0a2 1752
41bd17a4 1753 use 'htcp-oldsquid' to send HTCP to old Squid versions
0b48417e 1754 You MUST also set htcp_access expicitly. The default of
1755 deny all will prevent peer traffic.
cccac0a2 1756
4f4fa815
BR
1757 use 'htcp-no-clr' to send HTCP to the neighbor but without
1758 sending any CLR requests. This cannot be used with
1759 htcp-only-clr.
1760
1761 use 'htcp-no-purge-clr' to send HTCP to the neighbor
1762 including CLRs but only when they do not result from
1763 PURGE requests.
1764
1765 use 'htcp-only-clr' to send HTCP to the neighbor but ONLY
1766 CLR requests. This cannot be used with htcp-no-clr.
1767
1768 use 'htcp-forward-clr' to forward any HTCP CLR requests
1769 this proxy receives to the peer.
1770
41bd17a4 1771 'originserver' causes this parent peer to be contacted as
1772 a origin server. Meant to be used in accelerator setups.
cccac0a2 1773
41bd17a4 1774 use 'name=xxx' if you have multiple peers on the same
1775 host but different ports. This name can be used to
1776 differentiate the peers in cache_peer_access and similar
6db78a1a 1777 directives. Including the peername ACL type.
cccac0a2 1778
41bd17a4 1779 use 'forceddomain=name' to forcibly set the Host header
1780 of requests forwarded to this peer. Useful in accelerator
1781 setups where the server (peer) expects a certain domain
1782 name and using redirectors to feed this domain name
1783 is not feasible.
64658378 1784
41bd17a4 1785 use 'ssl' to indicate connections to this peer should
1786 be SSL/TLS encrypted.
cccac0a2 1787
41bd17a4 1788 use 'sslcert=/path/to/ssl/certificate' to specify a client
1789 SSL certificate to use when connecting to this peer.
4c9fa5d5 1790
41bd17a4 1791 use 'sslkey=/path/to/ssl/key' to specify the private SSL
1792 key corresponding to sslcert above. If 'sslkey' is not
1793 specified 'sslcert' is assumed to reference a
1794 combined file containing both the certificate and the key.
4c9fa5d5 1795
41bd17a4 1796 use sslversion=1|2|3|4 to specify the SSL version to use
1797 when connecting to this peer
1798 1 = automatic (default)
1799 2 = SSL v2 only
1800 3 = SSL v3 only
1801 4 = TLS v1 only
cccac0a2 1802
41bd17a4 1803 use sslcipher=... to specify the list of valid SSL ciphers
1804 to use when connecting to this peer.
cccac0a2 1805
41bd17a4 1806 use ssloptions=... to specify various SSL engine options:
1807 NO_SSLv2 Disallow the use of SSLv2
1808 NO_SSLv3 Disallow the use of SSLv3
1809 NO_TLSv1 Disallow the use of TLSv1
1810 See src/ssl_support.c or the OpenSSL documentation for
1811 a more complete list.
cccac0a2 1812
41bd17a4 1813 use sslcafile=... to specify a file containing
1814 additional CA certificates to use when verifying the
1815 peer certificate.
cccac0a2 1816
41bd17a4 1817 use sslcapath=... to specify a directory containing
1818 additional CA certificates to use when verifying the
1819 peer certificate.
cccac0a2 1820
41bd17a4 1821 use sslcrlfile=... to specify a certificate revocation
1822 list file to use when verifying the peer certificate.
1823
1824 use sslflags=... to specify various flags modifying the
1825 SSL implementation:
1826 DONT_VERIFY_PEER
1827 Accept certificates even if they fail to
1828 verify.
1829 NO_DEFAULT_CA
1830 Don't use the default CA list built in
1831 to OpenSSL.
1832 DONT_VERIFY_DOMAIN
1833 Don't verify the peer certificate
1834 matches the server name
cccac0a2 1835
41bd17a4 1836 use ssldomain= to specify the peer name as advertised
1837 in it's certificate. Used for verifying the correctness
1838 of the received peer certificate. If not specified the
1839 peer hostname will be used.
cccac0a2 1840
41bd17a4 1841 use front-end-https to enable the "Front-End-Https: On"
1842 header needed when using Squid as a SSL frontend in front
1843 of Microsoft OWA. See MS KB document Q307347 for details
1844 on this header. If set to auto the header will
1845 only be added if the request is forwarded as a https://
1846 URL.
d67acb4e
AJ
1847
1848 use connection-auth=off to tell Squid that this peer does
1849 not support Microsoft connection oriented authentication,
1850 and any such challenges received from there should be
1851 ignored. Default is auto to automatically determine the
1852 status of the peer.
41bd17a4 1853DOC_END
cccac0a2 1854
41bd17a4 1855NAME: cache_peer_domain cache_host_domain
1856TYPE: hostdomain
1857DEFAULT: none
1858LOC: none
1859DOC_START
1860 Use to limit the domains for which a neighbor cache will be
1861 queried. Usage:
cccac0a2 1862
41bd17a4 1863 cache_peer_domain cache-host domain [domain ...]
1864 cache_peer_domain cache-host !domain
cccac0a2 1865
41bd17a4 1866 For example, specifying
cccac0a2 1867
41bd17a4 1868 cache_peer_domain parent.foo.net .edu
cccac0a2 1869
41bd17a4 1870 has the effect such that UDP query packets are sent to
1871 'bigserver' only when the requested object exists on a
1872 server in the .edu domain. Prefixing the domainname
1873 with '!' means the cache will be queried for objects
1874 NOT in that domain.
cccac0a2 1875
41bd17a4 1876 NOTE: * Any number of domains may be given for a cache-host,
1877 either on the same or separate lines.
1878 * When multiple domains are given for a particular
1879 cache-host, the first matched domain is applied.
1880 * Cache hosts with no domain restrictions are queried
1881 for all requests.
1882 * There are no defaults.
1883 * There is also a 'cache_peer_access' tag in the ACL
1884 section.
1885DOC_END
dd9b1776 1886
41bd17a4 1887NAME: cache_peer_access
1888TYPE: peer_access
1889DEFAULT: none
1890LOC: none
1891DOC_START
1892 Similar to 'cache_peer_domain' but provides more flexibility by
1893 using ACL elements.
cccac0a2 1894
41bd17a4 1895 cache_peer_access cache-host allow|deny [!]aclname ...
dd9b1776 1896
41bd17a4 1897 The syntax is identical to 'http_access' and the other lists of
1898 ACL elements. See the comments for 'http_access' below, or
1899 the Squid FAQ (http://www.squid-cache.org/FAQ/FAQ-10.html).
1900DOC_END
dd9b1776 1901
41bd17a4 1902NAME: neighbor_type_domain
1903TYPE: hostdomaintype
1904DEFAULT: none
1905LOC: none
1906DOC_START
1907 usage: neighbor_type_domain neighbor parent|sibling domain domain ...
cccac0a2 1908
41bd17a4 1909 Modifying the neighbor type for specific domains is now
1910 possible. You can treat some domains differently than the the
1911 default neighbor type specified on the 'cache_peer' line.
1912 Normally it should only be necessary to list domains which
1913 should be treated differently because the default neighbor type
1914 applies for hostnames which do not match domains listed here.
6bf4f823 1915
41bd17a4 1916EXAMPLE:
dbe3992d 1917 cache_peer cache.foo.org parent 3128 3130
41bd17a4 1918 neighbor_type_domain cache.foo.org sibling .com .net
1919 neighbor_type_domain cache.foo.org sibling .au .de
1920DOC_END
6bf4f823 1921
41bd17a4 1922NAME: dead_peer_timeout
1923COMMENT: (seconds)
1924DEFAULT: 10 seconds
1925TYPE: time_t
1926LOC: Config.Timeout.deadPeer
1927DOC_START
1928 This controls how long Squid waits to declare a peer cache
1929 as "dead." If there are no ICP replies received in this
1930 amount of time, Squid will declare the peer dead and not
1931 expect to receive any further ICP replies. However, it
1932 continues to send ICP queries, and will mark the peer as
1933 alive upon receipt of the first subsequent ICP reply.
699acd19 1934
41bd17a4 1935 This timeout also affects when Squid expects to receive ICP
1936 replies from peers. If more than 'dead_peer' seconds have
1937 passed since the last ICP reply was received, Squid will not
1938 expect to receive an ICP reply on the next query. Thus, if
1939 your time between requests is greater than this timeout, you
1940 will see a lot of requests sent DIRECT to origin servers
1941 instead of to your parents.
1942DOC_END
cccac0a2 1943
41bd17a4 1944NAME: hierarchy_stoplist
1945TYPE: wordlist
1946DEFAULT: none
1947LOC: Config.hierarchy_stoplist
1948DOC_START
1949 A list of words which, if found in a URL, cause the object to
1950 be handled directly by this cache. In other words, use this
1951 to not query neighbor caches for certain objects. You may
1952 list this option multiple times.
1953 Note: never_direct overrides this option.
cccac0a2 1954NOCOMMENT_START
41bd17a4 1955#We recommend you to use at least the following line.
1956hierarchy_stoplist cgi-bin ?
6b698a21 1957NOCOMMENT_END
1958DOC_END
0976f8db 1959
41bd17a4 1960COMMENT_START
1961 MEMORY CACHE OPTIONS
1962 -----------------------------------------------------------------------------
1963COMMENT_END
1964
1965NAME: cache_mem
1966COMMENT: (bytes)
1967TYPE: b_size_t
df2eec10 1968DEFAULT: 256 MB
41bd17a4 1969LOC: Config.memMaxSize
6b698a21 1970DOC_START
41bd17a4 1971 NOTE: THIS PARAMETER DOES NOT SPECIFY THE MAXIMUM PROCESS SIZE.
1972 IT ONLY PLACES A LIMIT ON HOW MUCH ADDITIONAL MEMORY SQUID WILL
1973 USE AS A MEMORY CACHE OF OBJECTS. SQUID USES MEMORY FOR OTHER
1974 THINGS AS WELL. SEE THE SQUID FAQ SECTION 8 FOR DETAILS.
1975
1976 'cache_mem' specifies the ideal amount of memory to be used
1977 for:
1978 * In-Transit objects
1979 * Hot Objects
1980 * Negative-Cached objects
1981
1982 Data for these objects are stored in 4 KB blocks. This
1983 parameter specifies the ideal upper limit on the total size of
1984 4 KB blocks allocated. In-Transit objects take the highest
1985 priority.
1986
1987 In-transit objects have priority over the others. When
1988 additional space is needed for incoming data, negative-cached
1989 and hot objects will be released. In other words, the
1990 negative-cached and hot objects will fill up any unused space
1991 not needed for in-transit objects.
1992
1993 If circumstances require, this limit will be exceeded.
1994 Specifically, if your incoming request rate requires more than
1995 'cache_mem' of memory to hold in-transit objects, Squid will
1996 exceed this limit to satisfy the new requests. When the load
1997 decreases, blocks will be freed until the high-water mark is
1998 reached. Thereafter, blocks will be used to store hot
1999 objects.
6b698a21 2000DOC_END
0976f8db 2001
41bd17a4 2002NAME: maximum_object_size_in_memory
2003COMMENT: (bytes)
2004TYPE: b_size_t
df2eec10 2005DEFAULT: 512 KB
41bd17a4 2006LOC: Config.Store.maxInMemObjSize
6b698a21 2007DOC_START
41bd17a4 2008 Objects greater than this size will not be attempted to kept in
2009 the memory cache. This should be set high enough to keep objects
2010 accessed frequently in memory to improve performance whilst low
2011 enough to keep larger objects from hoarding cache_mem.
6b698a21 2012DOC_END
0976f8db 2013
41bd17a4 2014NAME: memory_replacement_policy
2015TYPE: removalpolicy
2016LOC: Config.memPolicy
2017DEFAULT: lru
6b698a21 2018DOC_START
41bd17a4 2019 The memory replacement policy parameter determines which
2020 objects are purged from memory when memory space is needed.
7f7db318 2021
41bd17a4 2022 See cache_replacement_policy for details.
2023DOC_END
6b698a21 2024
41bd17a4 2025COMMENT_START
2026 DISK CACHE OPTIONS
2027 -----------------------------------------------------------------------------
2028COMMENT_END
6b698a21 2029
41bd17a4 2030NAME: cache_replacement_policy
2031TYPE: removalpolicy
2032LOC: Config.replPolicy
2033DEFAULT: lru
2034DOC_START
2035 The cache replacement policy parameter determines which
2036 objects are evicted (replaced) when disk space is needed.
6b698a21 2037
41bd17a4 2038 lru : Squid's original list based LRU policy
2039 heap GDSF : Greedy-Dual Size Frequency
2040 heap LFUDA: Least Frequently Used with Dynamic Aging
2041 heap LRU : LRU policy implemented using a heap
6b698a21 2042
41bd17a4 2043 Applies to any cache_dir lines listed below this.
7f7db318 2044
41bd17a4 2045 The LRU policies keeps recently referenced objects.
0976f8db 2046
41bd17a4 2047 The heap GDSF policy optimizes object hit rate by keeping smaller
2048 popular objects in cache so it has a better chance of getting a
2049 hit. It achieves a lower byte hit rate than LFUDA though since
2050 it evicts larger (possibly popular) objects.
0976f8db 2051
41bd17a4 2052 The heap LFUDA policy keeps popular objects in cache regardless of
2053 their size and thus optimizes byte hit rate at the expense of
2054 hit rate since one large, popular object will prevent many
2055 smaller, slightly less popular objects from being cached.
0976f8db 2056
41bd17a4 2057 Both policies utilize a dynamic aging mechanism that prevents
2058 cache pollution that can otherwise occur with frequency-based
2059 replacement policies.
7d90757b 2060
41bd17a4 2061 NOTE: if using the LFUDA replacement policy you should increase
2062 the value of maximum_object_size above its default of 4096 KB to
2063 to maximize the potential byte hit rate improvement of LFUDA.
dc1af3cf 2064
41bd17a4 2065 For more information about the GDSF and LFUDA cache replacement
2066 policies see http://www.hpl.hp.com/techreports/1999/HPL-1999-69.html
2067 and http://fog.hpl.external.hp.com/techreports/98/HPL-98-173.html.
6b698a21 2068DOC_END
0976f8db 2069
41bd17a4 2070NAME: cache_dir
2071TYPE: cachedir
2072DEFAULT: none
41bd17a4 2073LOC: Config.cacheSwap
6b698a21 2074DOC_START
41bd17a4 2075 Usage:
0976f8db 2076
41bd17a4 2077 cache_dir Type Directory-Name Fs-specific-data [options]
0976f8db 2078
41bd17a4 2079 You can specify multiple cache_dir lines to spread the
2080 cache among different disk partitions.
0976f8db 2081
41bd17a4 2082 Type specifies the kind of storage system to use. Only "ufs"
2083 is built by default. To enable any of the other storage systems
2084 see the --enable-storeio configure option.
0976f8db 2085
41bd17a4 2086 'Directory' is a top-level directory where cache swap
2087 files will be stored. If you want to use an entire disk
2088 for caching, this can be the mount-point directory.
2089 The directory must exist and be writable by the Squid
2090 process. Squid will NOT create this directory for you.
0976f8db 2091
41bd17a4 2092 The ufs store type:
0976f8db 2093
41bd17a4 2094 "ufs" is the old well-known Squid storage format that has always
2095 been there.
0976f8db 2096
41bd17a4 2097 cache_dir ufs Directory-Name Mbytes L1 L2 [options]
0976f8db 2098
41bd17a4 2099 'Mbytes' is the amount of disk space (MB) to use under this
2100 directory. The default is 100 MB. Change this to suit your
2101 configuration. Do NOT put the size of your disk drive here.
2102 Instead, if you want Squid to use the entire disk drive,
2103 subtract 20% and use that value.
0976f8db 2104
41bd17a4 2105 'Level-1' is the number of first-level subdirectories which
2106 will be created under the 'Directory'. The default is 16.
0976f8db 2107
41bd17a4 2108 'Level-2' is the number of second-level subdirectories which
2109 will be created under each first-level directory. The default
2110 is 256.
0976f8db 2111
41bd17a4 2112 The aufs store type:
7f7db318 2113
41bd17a4 2114 "aufs" uses the same storage format as "ufs", utilizing
2115 POSIX-threads to avoid blocking the main Squid process on
2116 disk-I/O. This was formerly known in Squid as async-io.
38f9c547 2117
41bd17a4 2118 cache_dir aufs Directory-Name Mbytes L1 L2 [options]
38f9c547 2119
41bd17a4 2120 see argument descriptions under ufs above
38f9c547 2121
41bd17a4 2122 The diskd store type:
38f9c547 2123
41bd17a4 2124 "diskd" uses the same storage format as "ufs", utilizing a
2125 separate process to avoid blocking the main Squid process on
2126 disk-I/O.
4c3ef9b2 2127
41bd17a4 2128 cache_dir diskd Directory-Name Mbytes L1 L2 [options] [Q1=n] [Q2=n]
0976f8db 2129
41bd17a4 2130 see argument descriptions under ufs above
0976f8db 2131
41bd17a4 2132 Q1 specifies the number of unacknowledged I/O requests when Squid
2133 stops opening new files. If this many messages are in the queues,
2134 Squid won't open new files. Default is 64
0976f8db 2135
41bd17a4 2136 Q2 specifies the number of unacknowledged messages when Squid
2137 starts blocking. If this many messages are in the queues,
2138 Squid blocks until it receives some replies. Default is 72
0976f8db 2139
41bd17a4 2140 When Q1 < Q2 (the default), the cache directory is optimized
2141 for lower response time at the expense of a decrease in hit
2142 ratio. If Q1 > Q2, the cache directory is optimized for
2143 higher hit ratio at the expense of an increase in response
2144 time.
0976f8db 2145
41bd17a4 2146 The coss store type:
0976f8db 2147
db263d62
AJ
2148 NP: COSS filesystem in Squid-3 has been deemed too unstable for
2149 production use and has thus been removed from this release.
2150 We hope that it can be made usable again soon.
2151
41bd17a4 2152 block-size=n defines the "block size" for COSS cache_dir's.
2153 Squid uses file numbers as block numbers. Since file numbers
2154 are limited to 24 bits, the block size determines the maximum
2155 size of the COSS partition. The default is 512 bytes, which
2156 leads to a maximum cache_dir size of 512<<24, or 8 GB. Note
2157 you should not change the coss block size after Squid
2158 has written some objects to the cache_dir.
0976f8db 2159
41bd17a4 2160 The coss file store has changed from 2.5. Now it uses a file
2161 called 'stripe' in the directory names in the config - and
2162 this will be created by squid -z.
0976f8db 2163
41bd17a4 2164 Common options:
0976f8db 2165
41bd17a4 2166 no-store, no new objects should be stored to this cache_dir
0976f8db 2167
41bd17a4 2168 max-size=n, refers to the max object size this storedir supports.
2169 It is used to initially choose the storedir to dump the object.
2170 Note: To make optimal use of the max-size limits you should order
2171 the cache_dir lines with the smallest max-size value first and the
2172 ones with no max-size specification last.
0976f8db 2173
41bd17a4 2174 Note for coss, max-size must be less than COSS_MEMBUF_SZ,
2175 which can be changed with the --with-coss-membuf-size=N configure
2176 option.
bebc043b 2177NOCOMMENT_START
df2eec10 2178# cache_dir ufs @DEFAULT_SWAP_DIR@ 100 16 256
bebc043b 2179NOCOMMENT_END
6b698a21 2180DOC_END
0976f8db 2181
41bd17a4 2182NAME: store_dir_select_algorithm
2183TYPE: string
2184LOC: Config.store_dir_select_algorithm
2185DEFAULT: least-load
6b698a21 2186DOC_START
41bd17a4 2187 Set this to 'round-robin' as an alternative.
6b698a21 2188DOC_END
0976f8db 2189
41bd17a4 2190NAME: max_open_disk_fds
2191TYPE: int
2192LOC: Config.max_open_disk_fds
2193DEFAULT: 0
6b698a21 2194DOC_START
41bd17a4 2195 To avoid having disk as the I/O bottleneck Squid can optionally
2196 bypass the on-disk cache if more than this amount of disk file
2197 descriptors are open.
2198
2199 A value of 0 indicates no limit.
6b698a21 2200DOC_END
0976f8db 2201
41bd17a4 2202NAME: minimum_object_size
6b698a21 2203COMMENT: (bytes)
47f6e231 2204TYPE: b_int64_t
6b698a21 2205DEFAULT: 0 KB
41bd17a4 2206LOC: Config.Store.minObjectSize
6b698a21 2207DOC_START
41bd17a4 2208 Objects smaller than this size will NOT be saved on disk. The
2209 value is specified in kilobytes, and the default is 0 KB, which
2210 means there is no minimum.
6b698a21 2211DOC_END
0976f8db 2212
41bd17a4 2213NAME: maximum_object_size
2214COMMENT: (bytes)
2215TYPE: b_int64_t
2216DEFAULT: 4096 KB
2217LOC: Config.Store.maxObjectSize
777831e0 2218DOC_START
41bd17a4 2219 Objects larger than this size will NOT be saved on disk. The
2220 value is specified in kilobytes, and the default is 4MB. If
2221 you wish to get a high BYTES hit ratio, you should probably
2222 increase this (one 32 MB object hit counts for 3200 10KB
2223 hits). If you wish to increase speed more than your want to
2224 save bandwidth you should leave this low.
777831e0 2225
41bd17a4 2226 NOTE: if using the LFUDA replacement policy you should increase
2227 this value to maximize the byte hit rate improvement of LFUDA!
2228 See replacement_policy below for a discussion of this policy.
6b698a21 2229DOC_END
0976f8db 2230
41bd17a4 2231NAME: cache_swap_low
2232COMMENT: (percent, 0-100)
5473c134 2233TYPE: int
41bd17a4 2234DEFAULT: 90
2235LOC: Config.Swap.lowWaterMark
2236DOC_NONE
2237
2238NAME: cache_swap_high
2239COMMENT: (percent, 0-100)
2240TYPE: int
2241DEFAULT: 95
2242LOC: Config.Swap.highWaterMark
6b698a21 2243DOC_START
41bd17a4 2244
2245 The low- and high-water marks for cache object replacement.
2246 Replacement begins when the swap (disk) usage is above the
2247 low-water mark and attempts to maintain utilization near the
2248 low-water mark. As swap utilization gets close to high-water
2249 mark object eviction becomes more aggressive. If utilization is
2250 close to the low-water mark less replacement is done each time.
2251
2252 Defaults are 90% and 95%. If you have a large cache, 5% could be
2253 hundreds of MB. If this is the case you may wish to set these
2254 numbers closer together.
6b698a21 2255DOC_END
0976f8db 2256
5473c134 2257COMMENT_START
41bd17a4 2258 LOGFILE OPTIONS
5473c134 2259 -----------------------------------------------------------------------------
2260COMMENT_END
0976f8db 2261
41bd17a4 2262NAME: logformat
2263TYPE: logformat
2264LOC: Config.Log.logformats
5473c134 2265DEFAULT: none
6b698a21 2266DOC_START
41bd17a4 2267 Usage:
0976f8db 2268
41bd17a4 2269 logformat <name> <format specification>
0976f8db 2270
41bd17a4 2271 Defines an access log format.
6b698a21 2272
41bd17a4 2273 The <format specification> is a string with embedded % format codes
5473c134 2274
41bd17a4 2275 % format codes all follow the same basic structure where all but
2276 the formatcode is optional. Output strings are automatically escaped
2277 as required according to their context and the output format
2278 modifiers are usually not needed, but can be specified if an explicit
2279 output format is desired.
6b698a21 2280
41bd17a4 2281 % ["|[|'|#] [-] [[0]width] [{argument}] formatcode
0976f8db 2282
41bd17a4 2283 " output in quoted string format
2284 [ output in squid text log format as used by log_mime_hdrs
2285 # output in URL quoted format
2286 ' output as-is
5473c134 2287
41bd17a4 2288 - left aligned
2289 width field width. If starting with 0 the
2290 output is zero padded
2291 {arg} argument such as header name etc
5473c134 2292
41bd17a4 2293 Format codes:
5473c134 2294
41bd17a4 2295 >a Client source IP address
2296 >A Client FQDN
2297 >p Client source port
2298 <A Server IP address or peer name
2299 la Local IP address (http_port)
2300 lp Local port number (http_port)
2301 ts Seconds since epoch
2302 tu subsecond time (milliseconds)
2303 tl Local time. Optional strftime format argument
2304 default %d/%b/%Y:%H:%M:%S %z
2305 tg GMT time. Optional strftime format argument
2306 default %d/%b/%Y:%H:%M:%S %z
2307 tr Response time (milliseconds)
2308 >h Request header. Optional header name argument
2309 on the format header[:[separator]element]
2310 <h Reply header. Optional header name argument
2311 as for >h
2312 un User name
2313 ul User name from authentication
2314 ui User name from ident
2315 us User name from SSL
2316 ue User name from external acl helper
2317 Hs HTTP status code
2318 Ss Squid request status (TCP_MISS etc)
2319 Sh Squid hierarchy status (DEFAULT_PARENT etc)
2320 mt MIME content type
2321 rm Request method (GET/POST etc)
2322 ru Request URL
2323 rp Request URL-Path excluding hostname
2324 rv Request protocol version
2325 et Tag returned by external acl
2326 ea Log string returned by external acl
2327 <st Reply size including HTTP headers
1a86db31
AJ
2328 >st Request size including HTTP headers
2329 st Request+Reply size including HTTP headers
41bd17a4 2330 <sH Reply high offset sent
2331 <sS Upstream object size
2332 % a literal % character
5473c134 2333
7d9acc3c
AJ
2334 The default formats available (which do not need re-defining) are:
2335
2336logformat squid %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt
2337logformat squidmime %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt [%>h] [%<h]
41bd17a4 2338logformat common %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st %Ss:%Sh
2339logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh
5473c134 2340DOC_END
2341
41bd17a4 2342NAME: access_log cache_access_log
2343TYPE: access_log
2344LOC: Config.Log.accesslogs
02424612 2345DEFAULT: none
01ddaf65 2346DEFAULT_IF_NONE: @DEFAULT_ACCESS_LOG@ squid
5473c134 2347DOC_START
41bd17a4 2348 These files log client request activities. Has a line every HTTP or
2349 ICP request. The format is:
2350 access_log <filepath> [<logformat name> [acl acl ...]]
2351 access_log none [acl acl ...]]
5473c134 2352
41bd17a4 2353 Will log to the specified file using the specified format (which
2354 must be defined in a logformat directive) those entries which match
2355 ALL the acl's specified (which must be defined in acl clauses).
2356 If no acl is specified, all requests will be logged to this file.
5473c134 2357
41bd17a4 2358 To disable logging of a request use the filepath "none", in which case
2359 a logformat name should not be specified.
5473c134 2360
41bd17a4 2361 To log the request via syslog specify a filepath of "syslog":
5473c134 2362
41bd17a4 2363 access_log syslog[:facility.priority] [format [acl1 [acl2 ....]]]
2364 where facility could be any of:
2365 authpriv, daemon, local0 .. local7 or user.
5473c134 2366
41bd17a4 2367 And priority could be any of:
2368 err, warning, notice, info, debug.
df2eec10
AJ
2369
2370 Default:
2371 access_log @DEFAULT_ACCESS_LOG@ squid
41bd17a4 2372DOC_END
5473c134 2373
5b0f5383 2374NAME: log_access
2375TYPE: acl_access
2376LOC: Config.accessList.log
2377DEFAULT: none
2378COMMENT: allow|deny acl acl...
2379DOC_START
2380 This options allows you to control which requests gets logged
2381 to access.log (see access_log directive). Requests denied for
2382 logging will also not be accounted for in performance counters.
2383DOC_END
2384
41bd17a4 2385NAME: cache_store_log
2386TYPE: string
df2eec10 2387DEFAULT: none
41bd17a4 2388LOC: Config.Log.store
2389DOC_START
2390 Logs the activities of the storage manager. Shows which
2391 objects are ejected from the cache, and which objects are
df2eec10
AJ
2392 saved and for how long. To disable, enter "none" or remove the line.
2393 There are not really utilities to analyze this data, so you can safely
41bd17a4 2394 disable it.
df2eec10
AJ
2395NOCOMMENT_START
2396# cache_store_log @DEFAULT_STORE_LOG@
2397NOCOMMENT_END
5473c134 2398DOC_END
2399
41bd17a4 2400NAME: cache_swap_state cache_swap_log
2401TYPE: string
2402LOC: Config.Log.swap
5473c134 2403DEFAULT: none
2404DOC_START
41bd17a4 2405 Location for the cache "swap.state" file. This index file holds
2406 the metadata of objects saved on disk. It is used to rebuild
2407 the cache during startup. Normally this file resides in each
2408 'cache_dir' directory, but you may specify an alternate
2409 pathname here. Note you must give a full filename, not just
2410 a directory. Since this is the index for the whole object
2411 list you CANNOT periodically rotate it!
5473c134 2412
41bd17a4 2413 If %s can be used in the file name it will be replaced with a
2414 a representation of the cache_dir name where each / is replaced
2415 with '.'. This is needed to allow adding/removing cache_dir
2416 lines when cache_swap_log is being used.
5473c134 2417
41bd17a4 2418 If have more than one 'cache_dir', and %s is not used in the name
2419 these swap logs will have names such as:
5473c134 2420
41bd17a4 2421 cache_swap_log.00
2422 cache_swap_log.01
2423 cache_swap_log.02
5473c134 2424
41bd17a4 2425 The numbered extension (which is added automatically)
2426 corresponds to the order of the 'cache_dir' lines in this
2427 configuration file. If you change the order of the 'cache_dir'
2428 lines in this file, these index files will NOT correspond to
2429 the correct 'cache_dir' entry (unless you manually rename
2430 them). We recommend you do NOT use this option. It is
2431 better to keep these index files in each 'cache_dir' directory.
5473c134 2432DOC_END
2433
41bd17a4 2434NAME: logfile_rotate
2435TYPE: int
2436DEFAULT: 10
2437LOC: Config.Log.rotateNumber
5473c134 2438DOC_START
41bd17a4 2439 Specifies the number of logfile rotations to make when you
2440 type 'squid -k rotate'. The default is 10, which will rotate
2441 with extensions 0 through 9. Setting logfile_rotate to 0 will
2442 disable the file name rotation, but the logfiles are still closed
2443 and re-opened. This will enable you to rename the logfiles
2444 yourself just before sending the rotate signal.
5473c134 2445
41bd17a4 2446 Note, the 'squid -k rotate' command normally sends a USR1
2447 signal to the running squid process. In certain situations
2448 (e.g. on Linux with Async I/O), USR1 is used for other
2449 purposes, so -k rotate uses another signal. It is best to get
2450 in the habit of using 'squid -k rotate' instead of 'kill -USR1
2451 <pid>'.
62493678
AJ
2452
2453 Note, from Squid-3.1 this option has no effect on the cache.log,
2454 that log can be rotated separately by using debug_options
41bd17a4 2455DOC_END
5473c134 2456
41bd17a4 2457NAME: emulate_httpd_log
2458COMMENT: on|off
2459TYPE: onoff
2460DEFAULT: off
2461LOC: Config.onoff.common_log
2462DOC_START
2463 The Cache can emulate the log file format which many 'httpd'
2464 programs use. To disable/enable this emulation, set
2465 emulate_httpd_log to 'off' or 'on'. The default
2466 is to use the native log format since it includes useful
2467 information Squid-specific log analyzers use.
5473c134 2468DOC_END
2469
41bd17a4 2470NAME: log_ip_on_direct
2471COMMENT: on|off
2472TYPE: onoff
5473c134 2473DEFAULT: on
41bd17a4 2474LOC: Config.onoff.log_ip_on_direct
5473c134 2475DOC_START
41bd17a4 2476 Log the destination IP address in the hierarchy log tag when going
2477 direct. Earlier Squid versions logged the hostname here. If you
2478 prefer the old way set this to off.
2479DOC_END
5473c134 2480
41bd17a4 2481NAME: mime_table
2482TYPE: string
2483DEFAULT: @DEFAULT_MIME_TABLE@
2484LOC: Config.mimeTablePathname
2485DOC_START
2486 Pathname to Squid's MIME table. You shouldn't need to change
2487 this, but the default file contains examples and formatting
2488 information if you do.
5473c134 2489DOC_END
2490
41bd17a4 2491NAME: log_mime_hdrs
2492COMMENT: on|off
2493TYPE: onoff
2494LOC: Config.onoff.log_mime_hdrs
2495DEFAULT: off
2496DOC_START
2497 The Cache can record both the request and the response MIME
2498 headers for each HTTP transaction. The headers are encoded
2499 safely and will appear as two bracketed fields at the end of
2500 the access log (for either the native or httpd-emulated log
2501 formats). To enable this logging set log_mime_hdrs to 'on'.
2502DOC_END
5473c134 2503
41bd17a4 2504NAME: useragent_log
2505TYPE: string
2506LOC: Config.Log.useragent
2507DEFAULT: none
2508IFDEF: USE_USERAGENT_LOG
5473c134 2509DOC_START
41bd17a4 2510 Squid will write the User-Agent field from HTTP requests
2511 to the filename specified here. By default useragent_log
2512 is disabled.
5473c134 2513DOC_END
2514
41bd17a4 2515NAME: referer_log referrer_log
2516TYPE: string
2517LOC: Config.Log.referer
2518DEFAULT: none
2519IFDEF: USE_REFERER_LOG
5473c134 2520DOC_START
41bd17a4 2521 Squid will write the Referer field from HTTP requests to the
2522 filename specified here. By default referer_log is disabled.
2523 Note that "referer" is actually a misspelling of "referrer"
2524 however the misspelt version has been accepted into the HTTP RFCs
2525 and we accept both.
5473c134 2526DOC_END
2527
41bd17a4 2528NAME: pid_filename
2529TYPE: string
2530DEFAULT: @DEFAULT_PID_FILE@
2531LOC: Config.pidFilename
5473c134 2532DOC_START
41bd17a4 2533 A filename to write the process-id to. To disable, enter "none".
5473c134 2534DOC_END
2535
41bd17a4 2536NAME: log_fqdn
2537COMMENT: on|off
2538TYPE: onoff
2539DEFAULT: off
2540LOC: Config.onoff.log_fqdn
5473c134 2541DOC_START
41bd17a4 2542 Turn this on if you wish to log fully qualified domain names
2543 in the access.log. To do this Squid does a DNS lookup of all
2544 IP's connecting to it. This can (in some situations) increase
2545 latency, which makes your cache seem slower for interactive
2546 browsing.
5473c134 2547DOC_END
2548
41bd17a4 2549NAME: client_netmask
2550TYPE: address
2551LOC: Config.Addrs.client_netmask
2552DEFAULT: 255.255.255.255
5473c134 2553DOC_START
41bd17a4 2554 A netmask for client addresses in logfiles and cachemgr output.
2555 Change this to protect the privacy of your cache clients.
2556 A netmask of 255.255.255.0 will log all IP's in that range with
2557 the last digit set to '0'.
5473c134 2558DOC_END
2559
41bd17a4 2560NAME: forward_log
2561IFDEF: WIP_FWD_LOG
2562TYPE: string
2563DEFAULT: none
2564LOC: Config.Log.forward
5473c134 2565DOC_START
41bd17a4 2566 Logs the server-side requests.
5473c134 2567
41bd17a4 2568 This is currently work in progress.
5473c134 2569DOC_END
2570
41bd17a4 2571NAME: strip_query_terms
5473c134 2572TYPE: onoff
41bd17a4 2573LOC: Config.onoff.strip_query_terms
5473c134 2574DEFAULT: on
2575DOC_START
41bd17a4 2576 By default, Squid strips query terms from requested URLs before
2577 logging. This protects your user's privacy.
5473c134 2578DOC_END
2579
41bd17a4 2580NAME: buffered_logs
2581COMMENT: on|off
2582TYPE: onoff
2583DEFAULT: off
2584LOC: Config.onoff.buffered_logs
5473c134 2585DOC_START
41bd17a4 2586 cache.log log file is written with stdio functions, and as such
2587 it can be buffered or unbuffered. By default it will be unbuffered.
2588 Buffering it can speed up the writing slightly (though you are
2589 unlikely to need to worry unless you run with tons of debugging
2590 enabled in which case performance will suffer badly anyway..).
6b698a21 2591DOC_END
0976f8db 2592
2b753521 2593NAME: netdb_filename
2594TYPE: string
2595DEFAULT: @DEFAULT_NETDB_FILE@
2596LOC: Config.netdbFilename
fb6a61d1 2597IFDEF: USE_ICMP
2b753521 2598DOC_START
2599 A filename where Squid stores it's netdb state between restarts.
2600 To disable, enter "none".
2601DOC_END
2602
62493678
AJ
2603COMMENT_START
2604 OPTIONS FOR TROUBLESHOOTING
2605 -----------------------------------------------------------------------------
2606COMMENT_END
2607
2608NAME: cache_log
2609TYPE: string
2610DEFAULT: none
2611DEFAULT_IF_NONE: @DEFAULT_CACHE_LOG@
2612LOC: Debug::cache_log
2613DOC_START
2614 Cache logging file. This is where general information about
2615 your cache's behavior goes. You can increase the amount of data
2616 logged to this file and how often its rotated with "debug_options"
2617DOC_END
2618
2619NAME: debug_options
2620TYPE: eol
2621DEFAULT: rotate=1 ALL,1
2622LOC: Debug::debugOptions
2623DOC_START
2624 Logging options are set as section,level where each source file
2625 is assigned a unique section. Lower levels result in less
2626 output, Full debugging (level 9) can result in a very large
2627 log file, so be careful.
2628
2629 The magic word "ALL" sets debugging levels for all sections.
2630 We recommend normally running with "ALL,1".
2631
2632 The rotate= option can be increased to keep more of these logs.
2633 For most uses a single log should be enough to monitor current
2634 events affecting Squid.
2635DOC_END
2636
2637NAME: coredump_dir
2638TYPE: string
2639LOC: Config.coredump_dir
2640DEFAULT: none
2641DEFAULT_IF_NONE: none
2642DOC_START
2643 By default Squid leaves core files in the directory from where
2644 it was started. If you set 'coredump_dir' to a directory
2645 that exists, Squid will chdir() to that directory at startup
2646 and coredump files will be left there.
2647
2648NOCOMMENT_START
2649# Leave coredumps in the first cache dir
2650coredump_dir @DEFAULT_SWAP_DIR@
2651NOCOMMENT_END
2652DOC_END
2653
2654
41bd17a4 2655COMMENT_START
2656 OPTIONS FOR FTP GATEWAYING
2657 -----------------------------------------------------------------------------
2658COMMENT_END
2659
2660NAME: ftp_user
2661TYPE: string
2662DEFAULT: Squid@
2663LOC: Config.Ftp.anon_user
6b698a21 2664DOC_START
41bd17a4 2665 If you want the anonymous login password to be more informative
2666 (and enable the use of picky ftp servers), set this to something
2667 reasonable for your domain, like wwwuser@somewhere.net
7f7db318 2668
41bd17a4 2669 The reason why this is domainless by default is the
2670 request can be made on the behalf of a user in any domain,
2671 depending on how the cache is used.
2672 Some ftp server also validate the email address is valid
2673 (for example perl.com).
6b698a21 2674DOC_END
0976f8db 2675
41bd17a4 2676NAME: ftp_list_width
2677TYPE: size_t
2678DEFAULT: 32
2679LOC: Config.Ftp.list_width
6b698a21 2680DOC_START
41bd17a4 2681 Sets the width of ftp listings. This should be set to fit in
2682 the width of a standard browser. Setting this too small
2683 can cut off long filenames when browsing ftp sites.
6b698a21 2684DOC_END
9e7dbc51 2685
41bd17a4 2686NAME: ftp_passive
2687TYPE: onoff
2688DEFAULT: on
2689LOC: Config.Ftp.passive
6b698a21 2690DOC_START
41bd17a4 2691 If your firewall does not allow Squid to use passive
2692 connections, turn off this option.
a689bd4e 2693
2694 Use of ftp_epsv_all option requires this to be ON.
2695DOC_END
2696
2697NAME: ftp_epsv_all
2698TYPE: onoff
2699DEFAULT: off
2700LOC: Config.Ftp.epsv_all
2701DOC_START
2702 FTP Protocol extensions permit the use of a special "EPSV ALL" command.
2703
2704 NATs may be able to put the connection on a "fast path" through the
2705 translator, as the EPRT command will never be used and therefore,
2706 translation of the data portion of the segments will never be needed.
2707
2708 When a client only expects to do two-way FTP transfers this may be useful.
2709 If squid finds that it must do a three-way FTP transfer after issuing
2710 an EPSV ALL command, the FTP session will fail.
2711
2712 If you have any doubts about this option do not use it.
2713 Squid will nicely attempt all other connection methods.
2714
2715 Requires ftp_passive to be ON (default)
41bd17a4 2716DOC_END
9e7dbc51 2717
41bd17a4 2718NAME: ftp_sanitycheck
2719TYPE: onoff
2720DEFAULT: on
2721LOC: Config.Ftp.sanitycheck
2722DOC_START
2723 For security and data integrity reasons Squid by default performs
2724 sanity checks of the addresses of FTP data connections ensure the
2725 data connection is to the requested server. If you need to allow
2726 FTP connections to servers using another IP address for the data
2727 connection turn this off.
2728DOC_END
9e7dbc51 2729
41bd17a4 2730NAME: ftp_telnet_protocol
2731TYPE: onoff
2732DEFAULT: on
2733LOC: Config.Ftp.telnet
2734DOC_START
2735 The FTP protocol is officially defined to use the telnet protocol
2736 as transport channel for the control connection. However, many
2737 implementations are broken and does not respect this aspect of
2738 the FTP protocol.
2739
2740 If you have trouble accessing files with ASCII code 255 in the
2741 path or similar problems involving this ASCII code you can
2742 try setting this directive to off. If that helps, report to the
2743 operator of the FTP server in question that their FTP server
2744 is broken and does not follow the FTP standard.
2745DOC_END
2746
2747COMMENT_START
2748 OPTIONS FOR EXTERNAL SUPPORT PROGRAMS
2749 -----------------------------------------------------------------------------
2750COMMENT_END
2751
2752NAME: diskd_program
2753TYPE: string
2754DEFAULT: @DEFAULT_DISKD@
2755LOC: Config.Program.diskd
2756DOC_START
2757 Specify the location of the diskd executable.
2758 Note this is only useful if you have compiled in
2759 diskd as one of the store io modules.
2760DOC_END
2761
2762NAME: unlinkd_program
2763IFDEF: USE_UNLINKD
2764TYPE: string
2765DEFAULT: @DEFAULT_UNLINKD@
2766LOC: Config.Program.unlinkd
2767DOC_START
2768 Specify the location of the executable for file deletion process.
2769DOC_END
2770
2771NAME: pinger_program
2772TYPE: string
2773DEFAULT: @DEFAULT_PINGER@
cc192b50 2774LOC: Config.pinger.program
41bd17a4 2775IFDEF: USE_ICMP
2776DOC_START
2777 Specify the location of the executable for the pinger process.
2778DOC_END
2779
cc192b50 2780NAME: pinger_enable
2781TYPE: onoff
2782DEFAULT: on
2783LOC: Config.pinger.enable
2784IFDEF: USE_ICMP
2785DOC_START
2786 Control whether the pinger is active at run-time.
2787 Enables turning ICMP pinger on and off with a simple squid -k reconfigure.
2788DOC_END
2789
2790
41bd17a4 2791COMMENT_START
2792 OPTIONS FOR URL REWRITING
2793 -----------------------------------------------------------------------------
2794COMMENT_END
2795
2796NAME: url_rewrite_program redirect_program
2797TYPE: wordlist
2798LOC: Config.Program.redirect
2799DEFAULT: none
2800DOC_START
2801 Specify the location of the executable for the URL rewriter.
2802 Since they can perform almost any function there isn't one included.
2803
2804 For each requested URL rewriter will receive on line with the format
2805
c71adec1 2806 URL <SP> client_ip "/" fqdn <SP> user <SP> method [<SP> kvpairs]<NL>
2807
2808 In the future, the rewriter interface will be extended with
2809 key=value pairs ("kvpairs" shown above). Rewriter programs
2810 should be prepared to receive and possibly ignore additional
2811 whitespace-separated tokens on each input line.
41bd17a4 2812
2813 And the rewriter may return a rewritten URL. The other components of
2814 the request line does not need to be returned (ignored if they are).
2815
2816 The rewriter can also indicate that a client-side redirect should
2817 be performed to the new URL. This is done by prefixing the returned
2818 URL with "301:" (moved permanently) or 302: (moved temporarily).
2819
2820 By default, a URL rewriter is not used.
2821DOC_END
2822
2823NAME: url_rewrite_children redirect_children
2824TYPE: int
2825DEFAULT: 5
2826LOC: Config.redirectChildren
2827DOC_START
2828 The number of redirector processes to spawn. If you start
2829 too few Squid will have to wait for them to process a backlog of
2830 URLs, slowing it down. If you start too many they will use RAM
2831 and other system resources.
2832DOC_END
2833
2834NAME: url_rewrite_concurrency redirect_concurrency
2835TYPE: int
2836DEFAULT: 0
2837LOC: Config.redirectConcurrency
2838DOC_START
2839 The number of requests each redirector helper can handle in
2840 parallel. Defaults to 0 which indicates the redirector
2841 is a old-style single threaded redirector.
6a171502
AJ
2842
2843 When this directive is set to a value >= 1 then the protocol
2844 used to communicate with the helper is modified to include
2845 a request ID in front of the request/response. The request
2846 ID from the request must be echoed back with the response
2847 to that request.
41bd17a4 2848DOC_END
2849
2850NAME: url_rewrite_host_header redirect_rewrites_host_header
2851TYPE: onoff
2852DEFAULT: on
2853LOC: Config.onoff.redir_rewrites_host
2854DOC_START
2855 By default Squid rewrites any Host: header in redirected
2856 requests. If you are running an accelerator this may
2857 not be a wanted effect of a redirector.
2858
2859 WARNING: Entries are cached on the result of the URL rewriting
2860 process, so be careful if you have domain-virtual hosts.
2861DOC_END
2862
2863NAME: url_rewrite_access redirector_access
2864TYPE: acl_access
2865DEFAULT: none
2866LOC: Config.accessList.redirector
2867DOC_START
2868 If defined, this access list specifies which requests are
2869 sent to the redirector processes. By default all requests
2870 are sent.
2871DOC_END
2872
2873NAME: url_rewrite_bypass redirector_bypass
2874TYPE: onoff
2875LOC: Config.onoff.redirector_bypass
2876DEFAULT: off
2877DOC_START
2878 When this is 'on', a request will not go through the
2879 redirector if all redirectors are busy. If this is 'off'
2880 and the redirector queue grows too large, Squid will exit
2881 with a FATAL error and ask you to increase the number of
2882 redirectors. You should only enable this if the redirectors
2883 are not critical to your caching system. If you use
2884 redirectors for access control, and you enable this option,
2885 users may have access to pages they should not
2886 be allowed to request.
2887DOC_END
2888
2889COMMENT_START
2890 OPTIONS FOR TUNING THE CACHE
2891 -----------------------------------------------------------------------------
2892COMMENT_END
2893
f04b37d8 2894NAME: cache no_cache
2895TYPE: acl_access
2896DEFAULT: none
2897LOC: Config.accessList.noCache
41bd17a4 2898DOC_START
240887f0 2899 A list of ACL elements which, if matched and denied, cause the request to
f04b37d8 2900 not be satisfied from the cache and the reply to not be cached.
2901 In other words, use this to force certain objects to never be cached.
41bd17a4 2902
240887f0 2903 You must use the words 'allow' or 'deny' to indicate whether items
2904 matching the ACL should be allowed or denied into the cache.
f04b37d8 2905
240887f0 2906 Default is to allow all to be cached.
41bd17a4 2907DOC_END
2908
2909NAME: refresh_pattern
2910TYPE: refreshpattern
2911LOC: Config.Refresh
2912DEFAULT: none
2913DOC_START
2914 usage: refresh_pattern [-i] regex min percent max [options]
9e7dbc51 2915
6b698a21 2916 By default, regular expressions are CASE-SENSITIVE. To make
2917 them case-insensitive, use the -i option.
9e7dbc51 2918
41bd17a4 2919 'Min' is the time (in minutes) an object without an explicit
2920 expiry time should be considered fresh. The recommended
2921 value is 0, any higher values may cause dynamic applications
2922 to be erroneously cached unless the application designer
2923 has taken the appropriate actions.
9e7dbc51 2924
41bd17a4 2925 'Percent' is a percentage of the objects age (time since last
2926 modification age) an object without explicit expiry time
2927 will be considered fresh.
5b807763 2928
41bd17a4 2929 'Max' is an upper limit on how long objects without an explicit
2930 expiry time will be considered fresh.
9e7dbc51 2931
41bd17a4 2932 options: override-expire
2933 override-lastmod
2934 reload-into-ims
2935 ignore-reload
2936 ignore-no-cache
2937 ignore-no-store
4ca08219 2938 ignore-must-revalidate
41bd17a4 2939 ignore-private
2940 ignore-auth
2941 refresh-ims
a0ec9f68 2942
41bd17a4 2943 override-expire enforces min age even if the server
9b2ad080
HN
2944 sent an explicit expiry time (e.g., with the
2945 Expires: header or Cache-Control: max-age). Doing this
2946 VIOLATES the HTTP standard. Enabling this feature
2947 could make you liable for problems which it causes.
6468fe10 2948
41bd17a4 2949 override-lastmod enforces min age even on objects
2950 that were modified recently.
934b03fc 2951
41bd17a4 2952 reload-into-ims changes client no-cache or ``reload''
2953 to If-Modified-Since requests. Doing this VIOLATES the
2954 HTTP standard. Enabling this feature could make you
2955 liable for problems which it causes.
dba79ac5 2956
41bd17a4 2957 ignore-reload ignores a client no-cache or ``reload''
2958 header. Doing this VIOLATES the HTTP standard. Enabling
2959 this feature could make you liable for problems which
2960 it causes.
9bc73deb 2961
41bd17a4 2962 ignore-no-cache ignores any ``Pragma: no-cache'' and
2963 ``Cache-control: no-cache'' headers received from a server.
2964 The HTTP RFC never allows the use of this (Pragma) header
2965 from a server, only a client, though plenty of servers
2966 send it anyway.
2967
2968 ignore-no-store ignores any ``Cache-control: no-store''
2969 headers received from a server. Doing this VIOLATES
2970 the HTTP standard. Enabling this feature could make you
2971 liable for problems which it causes.
2972
4ca08219
AJ
2973 ignore-must-revalidate ignores any ``Cache-Control: must-revalidate``
2974 headers received from a server. Doing this VIOLATES
2975 the HTTP standard. Enabling this feature could make you
2976 liable for problems which it causes.
2977
41bd17a4 2978 ignore-private ignores any ``Cache-control: private''
2979 headers received from a server. Doing this VIOLATES
2980 the HTTP standard. Enabling this feature could make you
2981 liable for problems which it causes.
2982
2983 ignore-auth caches responses to requests with authorization,
2984 as if the originserver had sent ``Cache-control: public''
2985 in the response header. Doing this VIOLATES the HTTP standard.
2986 Enabling this feature could make you liable for problems which
2987 it causes.
2988
2989 refresh-ims causes squid to contact the origin server
2990 when a client issues an If-Modified-Since request. This
2991 ensures that the client will receive an updated version
2992 if one is available.
2993
2994 Basically a cached object is:
2995
2996 FRESH if expires < now, else STALE
2997 STALE if age > max
2998 FRESH if lm-factor < percent, else STALE
2999 FRESH if age < min
3000 else STALE
3001
3002 The refresh_pattern lines are checked in the order listed here.
3003 The first entry which matches is used. If none of the entries
3004 match the default will be used.
3005
3006 Note, you must uncomment all the default lines if you want
3007 to change one. The default setting is only active if none is
3008 used.
3009
3010Suggested default:
3011NOCOMMENT_START
3012refresh_pattern ^ftp: 1440 20% 10080
3013refresh_pattern ^gopher: 1440 0% 1440
89db45fa 3014refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
41bd17a4 3015refresh_pattern . 0 20% 4320
3016NOCOMMENT_END
3017DOC_END
3018
3019NAME: quick_abort_min
3020COMMENT: (KB)
3021TYPE: kb_int64_t
3022DEFAULT: 16 KB
3023LOC: Config.quickAbort.min
3024DOC_NONE
3025
3026NAME: quick_abort_max
3027COMMENT: (KB)
3028TYPE: kb_int64_t
3029DEFAULT: 16 KB
3030LOC: Config.quickAbort.max
3031DOC_NONE
3032
3033NAME: quick_abort_pct
3034COMMENT: (percent)
3035TYPE: int
3036DEFAULT: 95
3037LOC: Config.quickAbort.pct
3038DOC_START
3039 The cache by default continues downloading aborted requests
3040 which are almost completed (less than 16 KB remaining). This
3041 may be undesirable on slow (e.g. SLIP) links and/or very busy
3042 caches. Impatient users may tie up file descriptors and
3043 bandwidth by repeatedly requesting and immediately aborting
3044 downloads.
3045
3046 When the user aborts a request, Squid will check the
3047 quick_abort values to the amount of data transfered until
3048 then.
3049
3050 If the transfer has less than 'quick_abort_min' KB remaining,
3051 it will finish the retrieval.
3052
3053 If the transfer has more than 'quick_abort_max' KB remaining,
3054 it will abort the retrieval.
3055
3056 If more than 'quick_abort_pct' of the transfer has completed,
3057 it will finish the retrieval.
3058
3059 If you do not want any retrieval to continue after the client
3060 has aborted, set both 'quick_abort_min' and 'quick_abort_max'
3061 to '0 KB'.
3062
3063 If you want retrievals to always continue if they are being
3064 cached set 'quick_abort_min' to '-1 KB'.
3065DOC_END
60d096f4 3066
41bd17a4 3067NAME: read_ahead_gap
3068COMMENT: buffer-size
3069TYPE: b_int64_t
3070LOC: Config.readAheadGap
3071DEFAULT: 16 KB
3072DOC_START
3073 The amount of data the cache will buffer ahead of what has been
3074 sent to the client when retrieving an object from another server.
3075DOC_END
53e738c6 3076
41bd17a4 3077NAME: negative_ttl
ac9cc053 3078IFDEF: HTTP_VIOLATIONS
41bd17a4 3079COMMENT: time-units
3080TYPE: time_t
3081LOC: Config.negativeTtl
ac9cc053 3082DEFAULT: 0 seconds
41bd17a4 3083DOC_START
ac9cc053
AJ
3084 Set the Default Time-to-Live (TTL) for failed requests.
3085 Certain types of failures (such as "connection refused" and
3086 "404 Not Found") are able to be negatively-cached for a short time.
3087 Modern web servers should provide Expires: header, however if they
3088 do not this can provide a minimum TTL.
3089 The default is not to cache errors with unknown expiry details.
3090
3091 Note that this is different from negative caching of DNS lookups.
39956c7c
AJ
3092
3093 WARNING: Doing this VIOLATES the HTTP standard. Enabling
3094 this feature could make you liable for problems which it
3095 causes.
41bd17a4 3096DOC_END
53e738c6 3097
41bd17a4 3098NAME: positive_dns_ttl
3099COMMENT: time-units
3100TYPE: time_t
3101LOC: Config.positiveDnsTtl
3102DEFAULT: 6 hours
3103DOC_START
3104 Upper limit on how long Squid will cache positive DNS responses.
3105 Default is 6 hours (360 minutes). This directive must be set
3106 larger than negative_dns_ttl.
3107DOC_END
c4ab8329 3108
41bd17a4 3109NAME: negative_dns_ttl
3110COMMENT: time-units
3111TYPE: time_t
3112LOC: Config.negativeDnsTtl
3113DEFAULT: 1 minutes
3114DOC_START
3115 Time-to-Live (TTL) for negative caching of failed DNS lookups.
3116 This also sets the lower cache limit on positive lookups.
3117 Minimum value is 1 second, and it is not recommendable to go
3118 much below 10 seconds.
3119DOC_END
7df0bfd7 3120
41bd17a4 3121NAME: range_offset_limit
3122COMMENT: (bytes)
3123TYPE: b_int64_t
3124LOC: Config.rangeOffsetLimit
3125DEFAULT: 0 KB
3126DOC_START
3127 Sets a upper limit on how far into the the file a Range request
3128 may be to cause Squid to prefetch the whole file. If beyond this
3129 limit Squid forwards the Range request as it is and the result
3130 is NOT cached.
c4ab8329 3131
41bd17a4 3132 This is to stop a far ahead range request (lets say start at 17MB)
3133 from making Squid fetch the whole object up to that point before
3134 sending anything to the client.
a7ad6e4e 3135
41bd17a4 3136 A value of -1 causes Squid to always fetch the object from the
3137 beginning so it may cache the result. (2.0 style)
a7ad6e4e 3138
41bd17a4 3139 A value of 0 causes Squid to never fetch more than the
3140 client requested. (default)
3141DOC_END
d95b862f 3142
41bd17a4 3143NAME: minimum_expiry_time
3144COMMENT: (seconds)
3145TYPE: time_t
3146LOC: Config.minimum_expiry_time
3147DEFAULT: 60 seconds
3148DOC_START
3149 The minimum caching time according to (Expires - Date)
3150 Headers Squid honors if the object can't be revalidated
649fa918 3151 defaults to 60 seconds. In reverse proxy environments it
41bd17a4 3152 might be desirable to honor shorter object lifetimes. It
3153 is most likely better to make your server return a
3154 meaningful Last-Modified header however. In ESI environments
3155 where page fragments often have short lifetimes, this will
3156 often be best set to 0.
3157DOC_END
c68e9c6b 3158
41bd17a4 3159NAME: store_avg_object_size
3160COMMENT: (kbytes)
3e62bd58 3161TYPE: kb_int64_t
41bd17a4 3162DEFAULT: 13 KB
3163LOC: Config.Store.avgObjectSize
3164DOC_START
3165 Average object size, used to estimate number of objects your
3166 cache can hold. The default is 13 KB.
cccac0a2 3167DOC_END
3168
41bd17a4 3169NAME: store_objects_per_bucket
3170TYPE: int
3171DEFAULT: 20
3172LOC: Config.Store.objectsPerBucket
3173DOC_START
3174 Target number of objects per bucket in the store hash table.
3175 Lowering this value increases the total number of buckets and
3176 also the storage maintenance rate. The default is 20.
3177DOC_END
3178
3179COMMENT_START
3180 HTTP OPTIONS
3181 -----------------------------------------------------------------------------
3182COMMENT_END
3183
f04b37d8 3184NAME: request_header_max_size
3185COMMENT: (KB)
3186TYPE: b_size_t
df2eec10 3187DEFAULT: 64 KB
f04b37d8 3188LOC: Config.maxRequestHeaderSize
3189DOC_START
3190 This specifies the maximum size for HTTP headers in a request.
3191 Request headers are usually relatively small (about 512 bytes).
3192 Placing a limit on the request header size will catch certain
3193 bugs (for example with persistent connections) and possibly
3194 buffer-overflow or denial-of-service attacks.
3195DOC_END
3196
3197NAME: reply_header_max_size
3198COMMENT: (KB)
3199TYPE: b_size_t
df2eec10 3200DEFAULT: 64 KB
f04b37d8 3201LOC: Config.maxReplyHeaderSize
3202DOC_START
3203 This specifies the maximum size for HTTP headers in a reply.
3204 Reply headers are usually relatively small (about 512 bytes).
3205 Placing a limit on the reply header size will catch certain
3206 bugs (for example with persistent connections) and possibly
3207 buffer-overflow or denial-of-service attacks.
3208DOC_END
3209
3210NAME: request_body_max_size
3211COMMENT: (bytes)
3212TYPE: b_int64_t
3213DEFAULT: 0 KB
3214LOC: Config.maxRequestBodySize
3215DOC_START
3216 This specifies the maximum size for an HTTP request body.
3217 In other words, the maximum size of a PUT/POST request.
3218 A user who attempts to send a request with a body larger
3219 than this limit receives an "Invalid Request" error message.
3220 If you set this parameter to a zero (the default), there will
3221 be no limit imposed.
3222DOC_END
3223
41bd17a4 3224NAME: broken_posts
aa49962c 3225IFDEF: HTTP_VIOLATIONS
cccac0a2 3226TYPE: acl_access
cccac0a2 3227DEFAULT: none
41bd17a4 3228LOC: Config.accessList.brokenPosts
cccac0a2 3229DOC_START
41bd17a4 3230 A list of ACL elements which, if matched, causes Squid to send
3231 an extra CRLF pair after the body of a PUT/POST request.
cccac0a2 3232
41bd17a4 3233 Some HTTP servers has broken implementations of PUT/POST,
3234 and rely on an extra CRLF pair sent by some WWW clients.
cccac0a2 3235
41bd17a4 3236 Quote from RFC2616 section 4.1 on this matter:
cccac0a2 3237
41bd17a4 3238 Note: certain buggy HTTP/1.0 client implementations generate an
3239 extra CRLF's after a POST request. To restate what is explicitly
3240 forbidden by the BNF, an HTTP/1.1 client must not preface or follow
3241 a request with an extra CRLF.
cccac0a2 3242
41bd17a4 3243Example:
3244 acl buggy_server url_regex ^http://....
3245 broken_posts allow buggy_server
3246DOC_END
cccac0a2 3247
41bd17a4 3248NAME: via
3249IFDEF: HTTP_VIOLATIONS
3250COMMENT: on|off
3251TYPE: onoff
3252DEFAULT: on
3253LOC: Config.onoff.via
3254DOC_START
3255 If set (default), Squid will include a Via header in requests and
3256 replies as required by RFC2616.
3257DOC_END
4cc6eb12 3258
41bd17a4 3259NAME: ie_refresh
3260COMMENT: on|off
3261TYPE: onoff
3262LOC: Config.onoff.ie_refresh
3263DEFAULT: off
3264DOC_START
3265 Microsoft Internet Explorer up until version 5.5 Service
3266 Pack 1 has an issue with transparent proxies, wherein it
3267 is impossible to force a refresh. Turning this on provides
3268 a partial fix to the problem, by causing all IMS-REFRESH
3269 requests from older IE versions to check the origin server
3270 for fresh content. This reduces hit ratio by some amount
3271 (~10% in my experience), but allows users to actually get
3272 fresh content when they want it. Note because Squid
3273 cannot tell if the user is using 5.5 or 5.5SP1, the behavior
3274 of 5.5 is unchanged from old versions of Squid (i.e. a
3275 forced refresh is impossible). Newer versions of IE will,
3276 hopefully, continue to have the new behavior and will be
3277 handled based on that assumption. This option defaults to
3278 the old Squid behavior, which is better for hit ratios but
3279 worse for clients using IE, if they need to be able to
3280 force fresh content.
3281DOC_END
b9d7fe3e 3282
41bd17a4 3283NAME: vary_ignore_expire
3284COMMENT: on|off
3285TYPE: onoff
3286LOC: Config.onoff.vary_ignore_expire
3287DEFAULT: off
3288DOC_START
3289 Many HTTP servers supporting Vary gives such objects
3290 immediate expiry time with no cache-control header
3291 when requested by a HTTP/1.0 client. This option
3292 enables Squid to ignore such expiry times until
3293 HTTP/1.1 is fully implemented.
7e73cd78
AJ
3294
3295 WARNING: If turned on this may eventually cause some
3296 varying objects not intended for caching to get cached.
cccac0a2 3297DOC_END
c4ab8329 3298
41bd17a4 3299NAME: request_entities
3300TYPE: onoff
3301LOC: Config.onoff.request_entities
3302DEFAULT: off
3303DOC_START
3304 Squid defaults to deny GET and HEAD requests with request entities,
3305 as the meaning of such requests are undefined in the HTTP standard
3306 even if not explicitly forbidden.
0976f8db 3307
41bd17a4 3308 Set this directive to on if you have clients which insists
3309 on sending request entities in GET or HEAD requests. But be warned
3310 that there is server software (both proxies and web servers) which
3311 can fail to properly process this kind of request which may make you
3312 vulnerable to cache pollution attacks if enabled.
cccac0a2 3313DOC_END
6b53c392 3314
41bd17a4 3315NAME: request_header_access
3316IFDEF: HTTP_VIOLATIONS
3317TYPE: http_header_access[]
3318LOC: Config.request_header_access
cccac0a2 3319DEFAULT: none
cccac0a2 3320DOC_START
41bd17a4 3321 Usage: request_header_access header_name allow|deny [!]aclname ...
0976f8db 3322
41bd17a4 3323 WARNING: Doing this VIOLATES the HTTP standard. Enabling
3324 this feature could make you liable for problems which it
3325 causes.
0976f8db 3326
41bd17a4 3327 This option replaces the old 'anonymize_headers' and the
3328 older 'http_anonymizer' option with something that is much
3329 more configurable. This new method creates a list of ACLs
3330 for each header, allowing you very fine-tuned header
3331 mangling.
934b03fc 3332
41bd17a4 3333 This option only applies to request headers, i.e., from the
3334 client to the server.
5401aa8d 3335
41bd17a4 3336 You can only specify known headers for the header name.
3337 Other headers are reclassified as 'Other'. You can also
3338 refer to all the headers with 'All'.
5401aa8d 3339
41bd17a4 3340 For example, to achieve the same behavior as the old
3341 'http_anonymizer standard' option, you should use:
5401aa8d 3342
41bd17a4 3343 request_header_access From deny all
3344 request_header_access Referer deny all
3345 request_header_access Server deny all
3346 request_header_access User-Agent deny all
3347 request_header_access WWW-Authenticate deny all
3348 request_header_access Link deny all
5401aa8d 3349
41bd17a4 3350 Or, to reproduce the old 'http_anonymizer paranoid' feature
3351 you should use:
5401aa8d 3352
41bd17a4 3353 request_header_access Allow allow all
3354 request_header_access Authorization allow all
3355 request_header_access WWW-Authenticate allow all
3356 request_header_access Proxy-Authorization allow all
3357 request_header_access Proxy-Authenticate allow all
3358 request_header_access Cache-Control allow all
3359 request_header_access Content-Encoding allow all
3360 request_header_access Content-Length allow all
3361 request_header_access Content-Type allow all
3362 request_header_access Date allow all
3363 request_header_access Expires allow all
3364 request_header_access Host allow all
3365 request_header_access If-Modified-Since allow all
3366 request_header_access Last-Modified allow all
3367 request_header_access Location allow all
3368 request_header_access Pragma allow all
3369 request_header_access Accept allow all
3370 request_header_access Accept-Charset allow all
3371 request_header_access Accept-Encoding allow all
3372 request_header_access Accept-Language allow all
3373 request_header_access Content-Language allow all
3374 request_header_access Mime-Version allow all
3375 request_header_access Retry-After allow all
3376 request_header_access Title allow all
3377 request_header_access Connection allow all
3378 request_header_access Proxy-Connection allow all
3379 request_header_access All deny all
5401aa8d 3380
41bd17a4 3381 although many of those are HTTP reply headers, and so should be
3382 controlled with the reply_header_access directive.
5401aa8d 3383
41bd17a4 3384 By default, all headers are allowed (no anonymizing is
3385 performed).
5401aa8d 3386DOC_END
3387
41bd17a4 3388NAME: reply_header_access
3389IFDEF: HTTP_VIOLATIONS
3390TYPE: http_header_access[]
3391LOC: Config.reply_header_access
cccac0a2 3392DEFAULT: none
3393DOC_START
41bd17a4 3394 Usage: reply_header_access header_name allow|deny [!]aclname ...
934b03fc 3395
41bd17a4 3396 WARNING: Doing this VIOLATES the HTTP standard. Enabling
3397 this feature could make you liable for problems which it
3398 causes.
934b03fc 3399
41bd17a4 3400 This option only applies to reply headers, i.e., from the
3401 server to the client.
934b03fc 3402
41bd17a4 3403 This is the same as request_header_access, but in the other
3404 direction.
6b53c392 3405
41bd17a4 3406 This option replaces the old 'anonymize_headers' and the
3407 older 'http_anonymizer' option with something that is much
3408 more configurable. This new method creates a list of ACLs
3409 for each header, allowing you very fine-tuned header
3410 mangling.
cccac0a2 3411
41bd17a4 3412 You can only specify known headers for the header name.
3413 Other headers are reclassified as 'Other'. You can also
3414 refer to all the headers with 'All'.
cccac0a2 3415
41bd17a4 3416 For example, to achieve the same behavior as the old
3417 'http_anonymizer standard' option, you should use:
cccac0a2 3418
41bd17a4 3419 reply_header_access From deny all
3420 reply_header_access Referer deny all
3421 reply_header_access Server deny all
3422 reply_header_access User-Agent deny all
3423 reply_header_access WWW-Authenticate deny all
3424 reply_header_access Link deny all
cccac0a2 3425
41bd17a4 3426 Or, to reproduce the old 'http_anonymizer paranoid' feature
3427 you should use:
cccac0a2 3428
41bd17a4 3429 reply_header_access Allow allow all
3430 reply_header_access Authorization allow all
3431 reply_header_access WWW-Authenticate allow all
3432 reply_header_access Proxy-Authorization allow all
3433 reply_header_access Proxy-Authenticate allow all
3434 reply_header_access Cache-Control allow all
3435 reply_header_access Content-Encoding allow all
3436 reply_header_access Content-Length allow all
3437 reply_header_access Content-Type allow all
3438 reply_header_access Date allow all
3439 reply_header_access Expires allow all
3440 reply_header_access Host allow all
3441 reply_header_access If-Modified-Since allow all
3442 reply_header_access Last-Modified allow all
3443 reply_header_access Location allow all
3444 reply_header_access Pragma allow all
3445 reply_header_access Accept allow all
3446 reply_header_access Accept-Charset allow all
3447 reply_header_access Accept-Encoding allow all
3448 reply_header_access Accept-Language allow all
3449 reply_header_access Content-Language allow all
3450 reply_header_access Mime-Version allow all
3451 reply_header_access Retry-After allow all
3452 reply_header_access Title allow all
3453 reply_header_access Connection allow all
3454 reply_header_access Proxy-Connection allow all
3455 reply_header_access All deny all
cccac0a2 3456
41bd17a4 3457 although the HTTP request headers won't be usefully controlled
3458 by this directive -- see request_header_access for details.
cccac0a2 3459
41bd17a4 3460 By default, all headers are allowed (no anonymizing is
3461 performed).
cccac0a2 3462DOC_END
3463
41bd17a4 3464NAME: header_replace
3465IFDEF: HTTP_VIOLATIONS
3466TYPE: http_header_replace[]
3467LOC: Config.request_header_access
cccac0a2 3468DEFAULT: none
41bd17a4 3469DOC_START
3470 Usage: header_replace header_name message
3471 Example: header_replace User-Agent Nutscrape/1.0 (CP/M; 8-bit)
cccac0a2 3472
41bd17a4 3473 This option allows you to change the contents of headers
3474 denied with header_access above, by replacing them with
3475 some fixed string. This replaces the old fake_user_agent
3476 option.
cccac0a2 3477
41bd17a4 3478 This only applies to request headers, not reply headers.
cccac0a2 3479
41bd17a4 3480 By default, headers are removed if denied.
3481DOC_END
cccac0a2 3482
41bd17a4 3483NAME: relaxed_header_parser
3484COMMENT: on|off|warn
3485TYPE: tristate
3486LOC: Config.onoff.relaxed_header_parser
3487DEFAULT: on
3488DOC_START
3489 In the default "on" setting Squid accepts certain forms
3490 of non-compliant HTTP messages where it is unambiguous
3491 what the sending application intended even if the message
3492 is not correctly formatted. The messages is then normalized
3493 to the correct form when forwarded by Squid.
cccac0a2 3494
41bd17a4 3495 If set to "warn" then a warning will be emitted in cache.log
3496 each time such HTTP error is encountered.
cccac0a2 3497
41bd17a4 3498 If set to "off" then such HTTP errors will cause the request
3499 or response to be rejected.
3500DOC_END
7d90757b 3501
41bd17a4 3502COMMENT_START
3503 TIMEOUTS
3504 -----------------------------------------------------------------------------
3505COMMENT_END
3506
3507NAME: forward_timeout
3508COMMENT: time-units
3509TYPE: time_t
3510LOC: Config.Timeout.forward
3511DEFAULT: 4 minutes
3512DOC_START
3513 This parameter specifies how long Squid should at most attempt in
3514 finding a forwarding path for the request before giving up.
cccac0a2 3515DOC_END
3516
41bd17a4 3517NAME: connect_timeout
3518COMMENT: time-units
3519TYPE: time_t
3520LOC: Config.Timeout.connect
3521DEFAULT: 1 minute
057f5854 3522DOC_START
41bd17a4 3523 This parameter specifies how long to wait for the TCP connect to
3524 the requested server or peer to complete before Squid should
3525 attempt to find another path where to forward the request.
057f5854 3526DOC_END
3527
41bd17a4 3528NAME: peer_connect_timeout
3529COMMENT: time-units
3530TYPE: time_t
3531LOC: Config.Timeout.peer_connect
3532DEFAULT: 30 seconds
cccac0a2 3533DOC_START
41bd17a4 3534 This parameter specifies how long to wait for a pending TCP
3535 connection to a peer cache. The default is 30 seconds. You
3536 may also set different timeout values for individual neighbors
3537 with the 'connect-timeout' option on a 'cache_peer' line.
3538DOC_END
7f7db318 3539
41bd17a4 3540NAME: read_timeout
3541COMMENT: time-units
3542TYPE: time_t
3543LOC: Config.Timeout.read
3544DEFAULT: 15 minutes
3545DOC_START
3546 The read_timeout is applied on server-side connections. After
3547 each successful read(), the timeout will be extended by this
3548 amount. If no data is read again after this amount of time,
3549 the request is aborted and logged with ERR_READ_TIMEOUT. The
3550 default is 15 minutes.
3551DOC_END
cccac0a2 3552
41bd17a4 3553NAME: request_timeout
3554TYPE: time_t
3555LOC: Config.Timeout.request
3556DEFAULT: 5 minutes
3557DOC_START
3558 How long to wait for an HTTP request after initial
3559 connection establishment.
3560DOC_END
cccac0a2 3561
41bd17a4 3562NAME: persistent_request_timeout
3563TYPE: time_t
3564LOC: Config.Timeout.persistent_request
3565DEFAULT: 2 minutes
3566DOC_START
3567 How long to wait for the next HTTP request on a persistent
3568 connection after the previous request completes.
3569DOC_END
cccac0a2 3570
41bd17a4 3571NAME: client_lifetime
3572COMMENT: time-units
3573TYPE: time_t
3574LOC: Config.Timeout.lifetime
3575DEFAULT: 1 day
3576DOC_START
3577 The maximum amount of time a client (browser) is allowed to
3578 remain connected to the cache process. This protects the Cache
3579 from having a lot of sockets (and hence file descriptors) tied up
3580 in a CLOSE_WAIT state from remote clients that go away without
3581 properly shutting down (either because of a network failure or
3582 because of a poor client implementation). The default is one
3583 day, 1440 minutes.
7d90757b 3584
41bd17a4 3585 NOTE: The default value is intended to be much larger than any
3586 client would ever need to be connected to your cache. You
3587 should probably change client_lifetime only as a last resort.
3588 If you seem to have many client connections tying up
3589 filedescriptors, we recommend first tuning the read_timeout,
3590 request_timeout, persistent_request_timeout and quick_abort values.
cccac0a2 3591DOC_END
3592
41bd17a4 3593NAME: half_closed_clients
3594TYPE: onoff
3595LOC: Config.onoff.half_closed_clients
0c2f5c4f 3596DEFAULT: off
4eb368f9 3597DOC_START
41bd17a4 3598 Some clients may shutdown the sending side of their TCP
3599 connections, while leaving their receiving sides open. Sometimes,
3600 Squid can not tell the difference between a half-closed and a
0c2f5c4f
AJ
3601 fully-closed TCP connection.
3602
3603 By default, Squid will immediately close client connections when
3604 read(2) returns "no more data to read."
3605
abdf1651 3606 Change this option to 'on' and Squid will keep open connections
0c2f5c4f
AJ
3607 until a read(2) or write(2) on the socket returns an error.
3608 This may show some benefits for reverse proxies. But if not
3609 it is recommended to leave OFF.
4eb368f9 3610DOC_END
3611
41bd17a4 3612NAME: pconn_timeout
3613TYPE: time_t
3614LOC: Config.Timeout.pconn
3615DEFAULT: 1 minute
cccac0a2 3616DOC_START
41bd17a4 3617 Timeout for idle persistent connections to servers and other
3618 proxies.
3619DOC_END
cccac0a2 3620
41bd17a4 3621NAME: ident_timeout
3622TYPE: time_t
3623IFDEF: USE_IDENT
3624LOC: Config.Timeout.ident
3625DEFAULT: 10 seconds
3626DOC_START
3627 Maximum time to wait for IDENT lookups to complete.
cccac0a2 3628
41bd17a4 3629 If this is too high, and you enabled IDENT lookups from untrusted
3630 users, you might be susceptible to denial-of-service by having
3631 many ident requests going at once.
cccac0a2 3632DOC_END
3633
41bd17a4 3634NAME: shutdown_lifetime
3635COMMENT: time-units
3636TYPE: time_t
3637LOC: Config.shutdownLifetime
3638DEFAULT: 30 seconds
cccac0a2 3639DOC_START
41bd17a4 3640 When SIGTERM or SIGHUP is received, the cache is put into
3641 "shutdown pending" mode until all active sockets are closed.
3642 This value is the lifetime to set for all open descriptors
3643 during shutdown mode. Any active clients after this many
3644 seconds will receive a 'timeout' message.
cccac0a2 3645DOC_END
0976f8db 3646
cccac0a2 3647COMMENT_START
3648 ADMINISTRATIVE PARAMETERS
3649 -----------------------------------------------------------------------------
3650COMMENT_END
3651
3652NAME: cache_mgr
3653TYPE: string
3654DEFAULT: webmaster
3655LOC: Config.adminEmail
3656DOC_START
3657 Email-address of local cache manager who will receive
3658 mail if the cache dies. The default is "webmaster."
3659DOC_END
3660
abacf776 3661NAME: mail_from
3662TYPE: string
3663DEFAULT: none
3664LOC: Config.EmailFrom
3665DOC_START
3666 From: email-address for mail sent when the cache dies.
3667 The default is to use 'appname@unique_hostname'.
b8c0c06d 3668 Default appname value is "squid", can be changed into
abacf776 3669 src/globals.h before building squid.
3670DOC_END
3671
d084bf20 3672NAME: mail_program
3673TYPE: eol
3674DEFAULT: mail
3675LOC: Config.EmailProgram
3676DOC_START
3677 Email program used to send mail if the cache dies.
846a5e31 3678 The default is "mail". The specified program must comply
d084bf20 3679 with the standard Unix mail syntax:
846a5e31 3680 mail-program recipient < mailfile
3681
d084bf20 3682 Optional command line options can be specified.
3683DOC_END
3684
cccac0a2 3685NAME: cache_effective_user
3686TYPE: string
5483d916 3687DEFAULT: @DEFAULT_CACHE_EFFECTIVE_USER@
cccac0a2 3688LOC: Config.effectiveUser
e3d74828 3689DOC_START
3690 If you start Squid as root, it will change its effective/real
3691 UID/GID to the user specified below. The default is to change
5483d916 3692 to UID of @DEFAULT_CACHE_EFFECTIVE_USER@.
64e288bd 3693 see also; cache_effective_group
e3d74828 3694DOC_END
3695
cccac0a2 3696NAME: cache_effective_group
3697TYPE: string
3698DEFAULT: none
3699LOC: Config.effectiveGroup
3700DOC_START
64e288bd 3701 Squid sets the GID to the effective user's default group ID
3702 (taken from the password file) and supplementary group list
3703 from the groups membership.
3704
e3d74828 3705 If you want Squid to run with a specific GID regardless of
3706 the group memberships of the effective user then set this
3707 to the group (or GID) you want Squid to run as. When set
64e288bd 3708 all other group privileges of the effective user are ignored
e3d74828 3709 and only this GID is effective. If Squid is not started as
64e288bd 3710 root the user starting Squid MUST be member of the specified
e3d74828 3711 group.
64e288bd 3712
3713 This option is not recommended by the Squid Team.
3714 Our preference is for administrators to configure a secure
3715 user account for squid with UID/GID matching system policies.
cccac0a2 3716DOC_END
3717
d3caee79 3718NAME: httpd_suppress_version_string
3719COMMENT: on|off
3720TYPE: onoff
3721DEFAULT: off
3722LOC: Config.onoff.httpd_suppress_version_string
3723DOC_START
3724 Suppress Squid version string info in HTTP headers and HTML error pages.
3725DOC_END
3726
cccac0a2 3727NAME: visible_hostname
3728TYPE: string
3729LOC: Config.visibleHostname
3730DEFAULT: none
3731DOC_START
3732 If you want to present a special hostname in error messages, etc,
7f7db318 3733 define this. Otherwise, the return value of gethostname()
cccac0a2 3734 will be used. If you have multiple caches in a cluster and
3735 get errors about IP-forwarding you must set them to have individual
3736 names with this setting.
3737DOC_END
3738
cccac0a2 3739NAME: unique_hostname
3740TYPE: string
3741LOC: Config.uniqueHostname
3742DEFAULT: none
3743DOC_START
3744 If you want to have multiple machines with the same
7f7db318 3745 'visible_hostname' you must give each machine a different
3746 'unique_hostname' so forwarding loops can be detected.
cccac0a2 3747DOC_END
3748
cccac0a2 3749NAME: hostname_aliases
3750TYPE: wordlist
3751LOC: Config.hostnameAliases
3752DEFAULT: none
3753DOC_START
7f7db318 3754 A list of other DNS names your cache has.
cccac0a2 3755DOC_END
0976f8db 3756
c642c141
AJ
3757NAME: umask
3758TYPE: int
3759LOC: Config.umask
3760DEFAULT: 027
3761DOC_START
3762 Minimum umask which should be enforced while the proxy
3763 is running, in addition to the umask set at startup.
3764
3765 For a traditional octal representation of umasks, start
3766 your value with 0.
3767DOC_END
3768
cccac0a2 3769COMMENT_START
3770 OPTIONS FOR THE CACHE REGISTRATION SERVICE
3771 -----------------------------------------------------------------------------
3772
3773 This section contains parameters for the (optional) cache
3774 announcement service. This service is provided to help
3775 cache administrators locate one another in order to join or
3776 create cache hierarchies.
3777
3778 An 'announcement' message is sent (via UDP) to the registration
3779 service by Squid. By default, the announcement message is NOT
3780 SENT unless you enable it with 'announce_period' below.
3781
3782 The announcement message includes your hostname, plus the
3783 following information from this configuration file:
3784
3785 http_port
3786 icp_port
3787 cache_mgr
3788
3789 All current information is processed regularly and made
3790 available on the Web at http://www.ircache.net/Cache/Tracker/.
3791COMMENT_END
3792
3793NAME: announce_period
3794TYPE: time_t
3795LOC: Config.Announce.period
3796DEFAULT: 0
3797DOC_START
3798 This is how frequently to send cache announcements. The
3799 default is `0' which disables sending the announcement
3800 messages.
3801
3802 To enable announcing your cache, just uncomment the line
3803 below.
3804
3805NOCOMMENT_START
9e7dbc51 3806#To enable announcing your cache, just uncomment the line below.
3807#announce_period 1 day
cccac0a2 3808NOCOMMENT_END
3809DOC_END
3810
cccac0a2 3811NAME: announce_host
3812TYPE: string
3813DEFAULT: tracker.ircache.net
3814LOC: Config.Announce.host
3815DOC_NONE
3816
3817NAME: announce_file
3818TYPE: string
3819DEFAULT: none
3820LOC: Config.Announce.file
3821DOC_NONE
3822
3823NAME: announce_port
3824TYPE: ushort
3825DEFAULT: 3131
3826LOC: Config.Announce.port
3827DOC_START
3828 announce_host and announce_port set the hostname and port
3829 number where the registration message will be sent.
3830
3831 Hostname will default to 'tracker.ircache.net' and port will
3832 default default to 3131. If the 'filename' argument is given,
3833 the contents of that file will be included in the announce
3834 message.
3835DOC_END
3836
8d6275c0 3837COMMENT_START
3838 HTTPD-ACCELERATOR OPTIONS
3839 -----------------------------------------------------------------------------
3840COMMENT_END
3841
cccac0a2 3842NAME: httpd_accel_surrogate_id
f41735ea 3843IFDEF: USE_SQUID_ESI
cccac0a2 3844TYPE: string
3845LOC: Config.Accel.surrogate_id
3846DEFAULT: unset-id
3847DOC_START
3848 Surrogates (http://www.esi.org/architecture_spec_1.0.html)
3849 need an identification token to allow control targeting. Because
3850 a farm of surrogates may all perform the same tasks, they may share
3851 an identification token.
3852DOC_END
3853
3854NAME: http_accel_surrogate_remote
f41735ea 3855IFDEF: USE_SQUID_ESI
cccac0a2 3856COMMENT: on|off
3857TYPE: onoff
3858DEFAULT: off
3859LOC: Config.onoff.surrogate_is_remote
3860DOC_START
3861 Remote surrogates (such as those in a CDN) honour Surrogate-Control: no-store-remote.
3862 Set this to on to have squid behave as a remote surrogate.
3863DOC_END
3864
3865NAME: esi_parser
f41735ea 3866IFDEF: USE_SQUID_ESI
964b44c3 3867COMMENT: libxml2|expat|custom
cccac0a2 3868TYPE: string
3869LOC: ESIParser::Type
3870DEFAULT: custom
3871DOC_START
3872 ESI markup is not strictly XML compatible. The custom ESI parser
3873 will give higher performance, but cannot handle non ASCII character
3874 encodings.
3875DOC_END
0976f8db 3876
9edd9041 3877COMMENT_START
8d6275c0 3878 DELAY POOL PARAMETERS
9edd9041 3879 -----------------------------------------------------------------------------
3880COMMENT_END
3881
3882NAME: delay_pools
3883TYPE: delay_pool_count
3884DEFAULT: 0
3885IFDEF: DELAY_POOLS
3886LOC: Config.Delay
3887DOC_START
3888 This represents the number of delay pools to be used. For example,
3889 if you have one class 2 delay pool and one class 3 delays pool, you
3890 have a total of 2 delay pools.
3891DOC_END
3892
3893NAME: delay_class
3894TYPE: delay_pool_class
3895DEFAULT: none
3896IFDEF: DELAY_POOLS
3897LOC: Config.Delay
3898DOC_START
3899 This defines the class of each delay pool. There must be exactly one
3900 delay_class line for each delay pool. For example, to define two
3901 delay pools, one of class 2 and one of class 3, the settings above
3902 and here would be:
3903
3904Example:
3905 delay_pools 4 # 4 delay pools
3906 delay_class 1 2 # pool 1 is a class 2 pool
3907 delay_class 2 3 # pool 2 is a class 3 pool
3908 delay_class 3 4 # pool 3 is a class 4 pool
3909 delay_class 4 5 # pool 4 is a class 5 pool
3910
3911 The delay pool classes are:
3912
3913 class 1 Everything is limited by a single aggregate
3914 bucket.
3915
3916 class 2 Everything is limited by a single aggregate
3917 bucket as well as an "individual" bucket chosen
3918 from bits 25 through 32 of the IP address.
3919
3920 class 3 Everything is limited by a single aggregate
3921 bucket as well as a "network" bucket chosen
3922 from bits 17 through 24 of the IP address and a
3923 "individual" bucket chosen from bits 17 through
3924 32 of the IP address.
3925
3926 class 4 Everything in a class 3 delay pool, with an
3927 additional limit on a per user basis. This
3928 only takes effect if the username is established
3929 in advance - by forcing authentication in your
3930 http_access rules.
3931
3932 class 5 Requests are grouped according their tag (see
3933 external_acl's tag= reply).
3934
3935 NOTE: If an IP address is a.b.c.d
3936 -> bits 25 through 32 are "d"
3937 -> bits 17 through 24 are "c"
3938 -> bits 17 through 32 are "c * 256 + d"
3939DOC_END
3940
3941NAME: delay_access
3942TYPE: delay_pool_access
3943DEFAULT: none
3944IFDEF: DELAY_POOLS
3945LOC: Config.Delay
3946DOC_START
3947 This is used to determine which delay pool a request falls into.
3948
3949 delay_access is sorted per pool and the matching starts with pool 1,
3950 then pool 2, ..., and finally pool N. The first delay pool where the
3951 request is allowed is selected for the request. If it does not allow
3952 the request to any pool then the request is not delayed (default).
3953
3954 For example, if you want some_big_clients in delay
3955 pool 1 and lotsa_little_clients in delay pool 2:
3956
3957Example:
3958 delay_access 1 allow some_big_clients
3959 delay_access 1 deny all
3960 delay_access 2 allow lotsa_little_clients
3961 delay_access 2 deny all
3962 delay_access 3 allow authenticated_clients
3963DOC_END
3964
3965NAME: delay_parameters
3966TYPE: delay_pool_rates
3967DEFAULT: none
3968IFDEF: DELAY_POOLS
3969LOC: Config.Delay
3970DOC_START
3971 This defines the parameters for a delay pool. Each delay pool has
3972 a number of "buckets" associated with it, as explained in the
3973 description of delay_class. For a class 1 delay pool, the syntax is:
3974
3975delay_parameters pool aggregate
3976
3977 For a class 2 delay pool:
3978
3979delay_parameters pool aggregate individual
3980
3981 For a class 3 delay pool:
3982
3983delay_parameters pool aggregate network individual
3984
3985 For a class 4 delay pool:
3986
3987delay_parameters pool aggregate network individual user
3988
3989 For a class 5 delay pool:
3990
3991delay_parameters pool tag
3992
3993 The variables here are:
3994
3995 pool a pool number - ie, a number between 1 and the
3996 number specified in delay_pools as used in
3997 delay_class lines.
3998
3999 aggregate the "delay parameters" for the aggregate bucket
4000 (class 1, 2, 3).
4001
4002 individual the "delay parameters" for the individual
4003 buckets (class 2, 3).
4004
4005 network the "delay parameters" for the network buckets
4006 (class 3).
4007
4008 user the delay parameters for the user buckets
4009 (class 4).
4010
4011 tag the delay parameters for the tag buckets
4012 (class 5).
4013
4014 A pair of delay parameters is written restore/maximum, where restore is
4015 the number of bytes (not bits - modem and network speeds are usually
4016 quoted in bits) per second placed into the bucket, and maximum is the
4017 maximum number of bytes which can be in the bucket at any time.
4018
4019 For example, if delay pool number 1 is a class 2 delay pool as in the
4020 above example, and is being used to strictly limit each host to 64kbps
4021 (plus overheads), with no overall limit, the line is:
4022
4023delay_parameters 1 -1/-1 8000/8000
4024
4025 Note that the figure -1 is used to represent "unlimited".
4026
4027 And, if delay pool number 2 is a class 3 delay pool as in the above
4028 example, and you want to limit it to a total of 256kbps (strict limit)
4029 with each 8-bit network permitted 64kbps (strict limit) and each
4030 individual host permitted 4800bps with a bucket maximum size of 64kb
4031 to permit a decent web page to be downloaded at a decent speed
4032 (if the network is not being limited due to overuse) but slow down
4033 large downloads more significantly:
4034
4035delay_parameters 2 32000/32000 8000/8000 600/8000
4036
4037 There must be one delay_parameters line for each delay pool.
4038
4039 Finally, for a class 4 delay pool as in the example - each user will
4040 be limited to 128Kb no matter how many workstations they are logged into.:
4041
4042delay_parameters 4 32000/32000 8000/8000 600/64000 16000/16000
4043DOC_END
4044
4045NAME: delay_initial_bucket_level
4046COMMENT: (percent, 0-100)
4047TYPE: ushort
4048DEFAULT: 50
4049IFDEF: DELAY_POOLS
4050LOC: Config.Delay.initial
4051DOC_START
4052 The initial bucket percentage is used to determine how much is put
4053 in each bucket when squid starts, is reconfigured, or first notices
4054 a host accessing it (in class 2 and class 3, individual hosts and
4055 networks only have buckets associated with them once they have been
4056 "seen" by squid).
4057DOC_END
4058
cccac0a2 4059COMMENT_START
8d6275c0 4060 WCCPv1 AND WCCPv2 CONFIGURATION OPTIONS
cccac0a2 4061 -----------------------------------------------------------------------------
4062COMMENT_END
4063
8d6275c0 4064NAME: wccp_router
4065TYPE: address
4066LOC: Config.Wccp.router
4067DEFAULT: 0.0.0.0
4068IFDEF: USE_WCCP
e313ab0a
AJ
4069DOC_START
4070 Use this option to define your WCCP ``home'' router for
4071 Squid.
4072
4073 wccp_router supports a single WCCP(v1) router
4074
4075 wccp2_router supports multiple WCCPv2 routers
4076
4077 only one of the two may be used at the same time and defines
4078 which version of WCCP to use.
4079DOC_END
df2eec10 4080
8d6275c0 4081NAME: wccp2_router
9fb4efad 4082TYPE: IpAddress_list
8d6275c0 4083LOC: Config.Wccp2.router
cccac0a2 4084DEFAULT: none
8d6275c0 4085IFDEF: USE_WCCPv2
cccac0a2 4086DOC_START
8d6275c0 4087 Use this option to define your WCCP ``home'' router for
4088 Squid.
cccac0a2 4089
8d6275c0 4090 wccp_router supports a single WCCP(v1) router
cccac0a2 4091
8d6275c0 4092 wccp2_router supports multiple WCCPv2 routers
cccac0a2 4093
8d6275c0 4094 only one of the two may be used at the same time and defines
4095 which version of WCCP to use.
4096DOC_END
4097
4098NAME: wccp_version
cccac0a2 4099TYPE: int
8d6275c0 4100LOC: Config.Wccp.version
4101DEFAULT: 4
4102IFDEF: USE_WCCP
cccac0a2 4103DOC_START
8d6275c0 4104 This directive is only relevant if you need to set up WCCP(v1)
4105 to some very old and end-of-life Cisco routers. In all other
4106 setups it must be left unset or at the default setting.
4107 It defines an internal version in the WCCP(v1) protocol,
4108 with version 4 being the officially documented protocol.
cccac0a2 4109
8d6275c0 4110 According to some users, Cisco IOS 11.2 and earlier only
4111 support WCCP version 3. If you're using that or an earlier
4112 version of IOS, you may need to change this value to 3, otherwise
4113 do not specify this parameter.
cccac0a2 4114DOC_END
4115
8d6275c0 4116NAME: wccp2_rebuild_wait
4117TYPE: onoff
4118LOC: Config.Wccp2.rebuildwait
4119DEFAULT: on
4120IFDEF: USE_WCCPv2
4121DOC_START
4122 If this is enabled Squid will wait for the cache dir rebuild to finish
4123 before sending the first wccp2 HereIAm packet
4124DOC_END
cccac0a2 4125
8d6275c0 4126NAME: wccp2_forwarding_method
e313ab0a 4127TYPE: wccp2_method
8d6275c0 4128LOC: Config.Wccp2.forwarding_method
451c4786 4129DEFAULT: gre
8d6275c0 4130IFDEF: USE_WCCPv2
cccac0a2 4131DOC_START
699acd19 4132 WCCP2 allows the setting of forwarding methods between the
8d6275c0 4133 router/switch and the cache. Valid values are as follows:
cccac0a2 4134
451c4786
AJ
4135 gre - GRE encapsulation (forward the packet in a GRE/WCCP tunnel)
4136 l2 - L2 redirect (forward the packet using Layer 2/MAC rewriting)
cccac0a2 4137
8d6275c0 4138 Currently (as of IOS 12.4) cisco routers only support GRE.
4139 Cisco switches only support the L2 redirect assignment method.
cccac0a2 4140DOC_END
4141
8d6275c0 4142NAME: wccp2_return_method
e313ab0a 4143TYPE: wccp2_method
8d6275c0 4144LOC: Config.Wccp2.return_method
451c4786 4145DEFAULT: gre
8d6275c0 4146IFDEF: USE_WCCPv2
cccac0a2 4147DOC_START
699acd19 4148 WCCP2 allows the setting of return methods between the
8d6275c0 4149 router/switch and the cache for packets that the cache
4150 decides not to handle. Valid values are as follows:
cccac0a2 4151
451c4786
AJ
4152 gre - GRE encapsulation (forward the packet in a GRE/WCCP tunnel)
4153 l2 - L2 redirect (forward the packet using Layer 2/MAC rewriting)
cccac0a2 4154
8d6275c0 4155 Currently (as of IOS 12.4) cisco routers only support GRE.
4156 Cisco switches only support the L2 redirect assignment.
cccac0a2 4157
699acd19 4158 If the "ip wccp redirect exclude in" command has been
8d6275c0 4159 enabled on the cache interface, then it is still safe for
4160 the proxy server to use a l2 redirect method even if this
4161 option is set to GRE.
cccac0a2 4162DOC_END
4163
8d6275c0 4164NAME: wccp2_assignment_method
451c4786 4165TYPE: wccp2_amethod
8d6275c0 4166LOC: Config.Wccp2.assignment_method
451c4786 4167DEFAULT: hash
8d6275c0 4168IFDEF: USE_WCCPv2
cccac0a2 4169DOC_START
8d6275c0 4170 WCCP2 allows the setting of methods to assign the WCCP hash
4171 Valid values are as follows:
cccac0a2 4172
451c4786
AJ
4173 hash - Hash assignment
4174 mask - Mask assignment
cccac0a2 4175
8d6275c0 4176 As a general rule, cisco routers support the hash assignment method
4177 and cisco switches support the mask assignment method.
4178DOC_END
cccac0a2 4179
8d6275c0 4180NAME: wccp2_service
4181TYPE: wccp2_service
4182LOC: Config.Wccp2.info
4183DEFAULT: none
4184DEFAULT_IF_NONE: standard 0
4185IFDEF: USE_WCCPv2
4186DOC_START
4187 WCCP2 allows for multiple traffic services. There are two
4188 types: "standard" and "dynamic". The standard type defines
4189 one service id - http (id 0). The dynamic service ids can be from
4190 51 to 255 inclusive. In order to use a dynamic service id
4191 one must define the type of traffic to be redirected; this is done
4192 using the wccp2_service_info option.
4193
4194 The "standard" type does not require a wccp2_service_info option,
4195 just specifying the service id will suffice.
4196
4197 MD5 service authentication can be enabled by adding
4198 "password=<password>" to the end of this service declaration.
4199
4200 Examples:
4201
4202 wccp2_service standard 0 # for the 'web-cache' standard service
4203 wccp2_service dynamic 80 # a dynamic service type which will be
4204 # fleshed out with subsequent options.
4205 wccp2_service standard 0 password=foo
8d6275c0 4206DOC_END
4207
4208NAME: wccp2_service_info
4209TYPE: wccp2_service_info
4210LOC: Config.Wccp2.info
4211DEFAULT: none
4212IFDEF: USE_WCCPv2
4213DOC_START
4214 Dynamic WCCPv2 services require further information to define the
4215 traffic you wish to have diverted.
4216
4217 The format is:
4218
4219 wccp2_service_info <id> protocol=<protocol> flags=<flag>,<flag>..
4220 priority=<priority> ports=<port>,<port>..
4221
4222 The relevant WCCPv2 flags:
4223 + src_ip_hash, dst_ip_hash
005fe566 4224 + source_port_hash, dst_port_hash
8d6275c0 4225 + src_ip_alt_hash, dst_ip_alt_hash
4226 + src_port_alt_hash, dst_port_alt_hash
4227 + ports_source
4228
4229 The port list can be one to eight entries.
4230
4231 Example:
4232
4233 wccp2_service_info 80 protocol=tcp flags=src_ip_hash,ports_source
4234 priority=240 ports=80
4235
4236 Note: the service id must have been defined by a previous
4237 'wccp2_service dynamic <id>' entry.
4238DOC_END
4239
4240NAME: wccp2_weight
4241TYPE: int
4242LOC: Config.Wccp2.weight
4243DEFAULT: 10000
4244IFDEF: USE_WCCPv2
4245DOC_START
4246 Each cache server gets assigned a set of the destination
4247 hash proportional to their weight.
4248DOC_END
4249
4250NAME: wccp_address
4251TYPE: address
4252LOC: Config.Wccp.address
4253DEFAULT: 0.0.0.0
4254IFDEF: USE_WCCP
4255DOC_NONE
df2eec10 4256
8d6275c0 4257NAME: wccp2_address
4258TYPE: address
4259LOC: Config.Wccp2.address
4260DEFAULT: 0.0.0.0
4261IFDEF: USE_WCCPv2
4262DOC_START
4263 Use this option if you require WCCP to use a specific
4264 interface address.
4265
4266 The default behavior is to not bind to any specific address.
4267DOC_END
4268
4269COMMENT_START
4270 PERSISTENT CONNECTION HANDLING
4271 -----------------------------------------------------------------------------
4272
4273 Also see "pconn_timeout" in the TIMEOUTS section
4274COMMENT_END
4275
4276NAME: client_persistent_connections
4277TYPE: onoff
4278LOC: Config.onoff.client_pconns
4279DEFAULT: on
4280DOC_NONE
4281
4282NAME: server_persistent_connections
4283TYPE: onoff
4284LOC: Config.onoff.server_pconns
4285DEFAULT: on
4286DOC_START
4287 Persistent connection support for clients and servers. By
4288 default, Squid uses persistent connections (when allowed)
4289 with its clients and servers. You can use these options to
4290 disable persistent connections with clients and/or servers.
4291DOC_END
4292
4293NAME: persistent_connection_after_error
4294TYPE: onoff
4295LOC: Config.onoff.error_pconns
4296DEFAULT: off
4297DOC_START
4298 With this directive the use of persistent connections after
4299 HTTP errors can be disabled. Useful if you have clients
4300 who fail to handle errors on persistent connections proper.
4301DOC_END
4302
4303NAME: detect_broken_pconn
4304TYPE: onoff
4305LOC: Config.onoff.detect_broken_server_pconns
4306DEFAULT: off
4307DOC_START
4308 Some servers have been found to incorrectly signal the use
4309 of HTTP/1.0 persistent connections even on replies not
4310 compatible, causing significant delays. This server problem
4311 has mostly been seen on redirects.
4312
4313 By enabling this directive Squid attempts to detect such
4314 broken replies and automatically assume the reply is finished
4315 after 10 seconds timeout.
4316DOC_END
4317
4318COMMENT_START
4319 CACHE DIGEST OPTIONS
4320 -----------------------------------------------------------------------------
4321COMMENT_END
4322
4323NAME: digest_generation
4324IFDEF: USE_CACHE_DIGESTS
4325TYPE: onoff
4326LOC: Config.onoff.digest_generation
4327DEFAULT: on
4328DOC_START
4329 This controls whether the server will generate a Cache Digest
4330 of its contents. By default, Cache Digest generation is
13e917b5 4331 enabled if Squid is compiled with --enable-cache-digests defined.
8d6275c0 4332DOC_END
4333
4334NAME: digest_bits_per_entry
4335IFDEF: USE_CACHE_DIGESTS
4336TYPE: int
4337LOC: Config.digest.bits_per_entry
4338DEFAULT: 5
4339DOC_START
4340 This is the number of bits of the server's Cache Digest which
4341 will be associated with the Digest entry for a given HTTP
4342 Method and URL (public key) combination. The default is 5.
4343DOC_END
4344
4345NAME: digest_rebuild_period
4346IFDEF: USE_CACHE_DIGESTS
4347COMMENT: (seconds)
4348TYPE: time_t
4349LOC: Config.digest.rebuild_period
4350DEFAULT: 1 hour
4351DOC_START
749ceff8 4352 This is the wait time between Cache Digest rebuilds.
8d6275c0 4353DOC_END
4354
4355NAME: digest_rewrite_period
4356COMMENT: (seconds)
4357IFDEF: USE_CACHE_DIGESTS
4358TYPE: time_t
4359LOC: Config.digest.rewrite_period
4360DEFAULT: 1 hour
4361DOC_START
749ceff8 4362 This is the wait time between Cache Digest writes to
8d6275c0 4363 disk.
4364DOC_END
4365
4366NAME: digest_swapout_chunk_size
4367COMMENT: (bytes)
4368TYPE: b_size_t
4369IFDEF: USE_CACHE_DIGESTS
4370LOC: Config.digest.swapout_chunk_size
4371DEFAULT: 4096 bytes
4372DOC_START
4373 This is the number of bytes of the Cache Digest to write to
4374 disk at a time. It defaults to 4096 bytes (4KB), the Squid
4375 default swap page.
4376DOC_END
4377
4378NAME: digest_rebuild_chunk_percentage
4379COMMENT: (percent, 0-100)
4380IFDEF: USE_CACHE_DIGESTS
4381TYPE: int
4382LOC: Config.digest.rebuild_chunk_percentage
4383DEFAULT: 10
4384DOC_START
4385 This is the percentage of the Cache Digest to be scanned at a
4386 time. By default it is set to 10% of the Cache Digest.
4387DOC_END
4388
1db9eacd 4389COMMENT_START
5473c134 4390 SNMP OPTIONS
1db9eacd 4391 -----------------------------------------------------------------------------
4392COMMENT_END
4393
5473c134 4394NAME: snmp_port
4395TYPE: ushort
4396LOC: Config.Port.snmp
87630341 4397DEFAULT: 0
5473c134 4398IFDEF: SQUID_SNMP
8d6275c0 4399DOC_START
87630341 4400 The port number where Squid listens for SNMP requests. To enable
4401 SNMP support set this to a suitable port number. Port number
4402 3401 is often used for the Squid SNMP agent. By default it's
4403 set to "0" (disabled)
4404NOCOMMENT_START
4405#snmp_port 3401
4406NOCOMMENT_END
8d6275c0 4407DOC_END
4408
5473c134 4409NAME: snmp_access
4410TYPE: acl_access
4411LOC: Config.accessList.snmp
8d6275c0 4412DEFAULT: none
5473c134 4413DEFAULT_IF_NONE: deny all
4414IFDEF: SQUID_SNMP
8d6275c0 4415DOC_START
5473c134 4416 Allowing or denying access to the SNMP port.
8d6275c0 4417
5473c134 4418 All access to the agent is denied by default.
4419 usage:
8d6275c0 4420
5473c134 4421 snmp_access allow|deny [!]aclname ...
8d6275c0 4422
5473c134 4423Example:
4424 snmp_access allow snmppublic localhost
4425 snmp_access deny all
cccac0a2 4426DOC_END
4427
5473c134 4428NAME: snmp_incoming_address
4429TYPE: address
4430LOC: Config.Addrs.snmp_incoming
4431DEFAULT: 0.0.0.0
4432IFDEF: SQUID_SNMP
4433DOC_NONE
df2eec10 4434
5473c134 4435NAME: snmp_outgoing_address
4436TYPE: address
4437LOC: Config.Addrs.snmp_outgoing
4438DEFAULT: 255.255.255.255
4439IFDEF: SQUID_SNMP
cccac0a2 4440DOC_START
df2eec10 4441 Just like 'udp_incoming_address', but for the SNMP port.
cccac0a2 4442
5473c134 4443 snmp_incoming_address is used for the SNMP socket receiving
4444 messages from SNMP agents.
4445 snmp_outgoing_address is used for SNMP packets returned to SNMP
4446 agents.
cccac0a2 4447
5473c134 4448 The default snmp_incoming_address (0.0.0.0) is to listen on all
4449 available network interfaces.
cccac0a2 4450
5473c134 4451 If snmp_outgoing_address is set to 255.255.255.255 (the default)
4452 it will use the same socket as snmp_incoming_address. Only
4453 change this if you want to have SNMP replies sent using another
4454 address than where this Squid listens for SNMP queries.
cccac0a2 4455
5473c134 4456 NOTE, snmp_incoming_address and snmp_outgoing_address can not have
4457 the same value since they both use port 3401.
cccac0a2 4458DOC_END
4459
5473c134 4460COMMENT_START
4461 ICP OPTIONS
4462 -----------------------------------------------------------------------------
4463COMMENT_END
4464
4465NAME: icp_port udp_port
4466TYPE: ushort
4467DEFAULT: 0
4468LOC: Config.Port.icp
cccac0a2 4469DOC_START
5473c134 4470 The port number where Squid sends and receives ICP queries to
4471 and from neighbor caches. The standard UDP port for ICP is 3130.
4472 Default is disabled (0).
4473NOCOMMENT_START
df2eec10 4474#icp_port @DEFAULT_ICP_PORT@
5473c134 4475NOCOMMENT_END
cccac0a2 4476DOC_END
4477
5473c134 4478NAME: htcp_port
4479IFDEF: USE_HTCP
4480TYPE: ushort
87630341 4481DEFAULT: 0
5473c134 4482LOC: Config.Port.htcp
cccac0a2 4483DOC_START
5473c134 4484 The port number where Squid sends and receives HTCP queries to
87630341 4485 and from neighbor caches. To turn it on you want to set it to
4486 4827. By default it is set to "0" (disabled).
4487NOCOMMENT_START
4488#htcp_port 4827
4489NOCOMMENT_END
cccac0a2 4490DOC_END
4491
4492NAME: log_icp_queries
4493COMMENT: on|off
4494TYPE: onoff
4495DEFAULT: on
4496LOC: Config.onoff.log_udp
4497DOC_START
4498 If set, ICP queries are logged to access.log. You may wish
4499 do disable this if your ICP load is VERY high to speed things
4500 up or to simplify log analysis.
4501DOC_END
4502
5473c134 4503NAME: udp_incoming_address
4504TYPE: address
4505LOC:Config.Addrs.udp_incoming
4506DEFAULT: 0.0.0.0
8524d4b2 4507DOC_START
4508 udp_incoming_address is used for UDP packets received from other
4509 caches.
4510
4511 The default behavior is to not bind to any specific address.
4512
4513 Only change this if you want to have all UDP queries received on
4514 a specific interface/address.
4515
4516 NOTE: udp_incoming_address is used by the ICP, HTCP, and DNS
4517 modules. Altering it will affect all of them in the same manner.
4518
4519 see also; udp_outgoing_address
4520
4521 NOTE, udp_incoming_address and udp_outgoing_address can not
4522 have the same value since they both use the same port.
4523DOC_END
cccac0a2 4524
5473c134 4525NAME: udp_outgoing_address
4526TYPE: address
4527LOC: Config.Addrs.udp_outgoing
4528DEFAULT: 255.255.255.255
cccac0a2 4529DOC_START
8524d4b2 4530 udp_outgoing_address is used for UDP packets sent out to other
5473c134 4531 caches.
cccac0a2 4532
5473c134 4533 The default behavior is to not bind to any specific address.
cccac0a2 4534
8524d4b2 4535 Instead it will use the same socket as udp_incoming_address.
4536 Only change this if you want to have UDP queries sent using another
4537 address than where this Squid listens for UDP queries from other
5473c134 4538 caches.
4539
8524d4b2 4540 NOTE: udp_outgoing_address is used by the ICP, HTCP, and DNS
4541 modules. Altering it will affect all of them in the same manner.
4542
4543 see also; udp_incoming_address
4544
5473c134 4545 NOTE, udp_incoming_address and udp_outgoing_address can not
8524d4b2 4546 have the same value since they both use the same port.
cccac0a2 4547DOC_END
4548
3d1e3e43 4549NAME: icp_hit_stale
4550COMMENT: on|off
4551TYPE: onoff
4552DEFAULT: off
4553LOC: Config.onoff.icp_hit_stale
4554DOC_START
4555 If you want to return ICP_HIT for stale cache objects, set this
4556 option to 'on'. If you have sibling relationships with caches
4557 in other administrative domains, this should be 'off'. If you only
4558 have sibling relationships with caches under your control,
4559 it is probably okay to set this to 'on'.
4560 If set to 'on', your siblings should use the option "allow-miss"
4561 on their cache_peer lines for connecting to you.
4562DOC_END
4563
5473c134 4564NAME: minimum_direct_hops
cccac0a2 4565TYPE: int
5473c134 4566DEFAULT: 4
4567LOC: Config.minDirectHops
cccac0a2 4568DOC_START
5473c134 4569 If using the ICMP pinging stuff, do direct fetches for sites
4570 which are no more than this many hops away.
cccac0a2 4571DOC_END
4572
5473c134 4573NAME: minimum_direct_rtt
4574TYPE: int
4575DEFAULT: 400
4576LOC: Config.minDirectRtt
cccac0a2 4577DOC_START
5473c134 4578 If using the ICMP pinging stuff, do direct fetches for sites
4579 which are no more than this many rtt milliseconds away.
cccac0a2 4580DOC_END
4581
cccac0a2 4582NAME: netdb_low
4583TYPE: int
4584DEFAULT: 900
4585LOC: Config.Netdb.low
4586DOC_NONE
4587
4588NAME: netdb_high
4589TYPE: int
4590DEFAULT: 1000
4591LOC: Config.Netdb.high
4592DOC_START
4593 The low and high water marks for the ICMP measurement
4594 database. These are counts, not percents. The defaults are
4595 900 and 1000. When the high water mark is reached, database
4596 entries will be deleted until the low mark is reached.
4597DOC_END
4598
cccac0a2 4599NAME: netdb_ping_period
4600TYPE: time_t
4601LOC: Config.Netdb.period
4602DEFAULT: 5 minutes
4603DOC_START
4604 The minimum period for measuring a site. There will be at
4605 least this much delay between successive pings to the same
4606 network. The default is five minutes.
4607DOC_END
4608
cccac0a2 4609NAME: query_icmp
4610COMMENT: on|off
4611TYPE: onoff
4612DEFAULT: off
4613LOC: Config.onoff.query_icmp
4614DOC_START
4615 If you want to ask your peers to include ICMP data in their ICP
4616 replies, enable this option.
4617
4618 If your peer has configured Squid (during compilation) with
7f7db318 4619 '--enable-icmp' that peer will send ICMP pings to origin server
4620 sites of the URLs it receives. If you enable this option the
cccac0a2 4621 ICP replies from that peer will include the ICMP data (if available).
4622 Then, when choosing a parent cache, Squid will choose the parent with
4623 the minimal RTT to the origin server. When this happens, the
4624 hierarchy field of the access.log will be
4625 "CLOSEST_PARENT_MISS". This option is off by default.
4626DOC_END
4627
4628NAME: test_reachability
4629COMMENT: on|off
4630TYPE: onoff
4631DEFAULT: off
4632LOC: Config.onoff.test_reachability
4633DOC_START
4634 When this is 'on', ICP MISS replies will be ICP_MISS_NOFETCH
4635 instead of ICP_MISS if the target host is NOT in the ICMP
4636 database, or has a zero RTT.
4637DOC_END
4638
5473c134 4639NAME: icp_query_timeout
4640COMMENT: (msec)
4641DEFAULT: 0
4642TYPE: int
4643LOC: Config.Timeout.icp_query
4c3ef9b2 4644DOC_START
5473c134 4645 Normally Squid will automatically determine an optimal ICP
4646 query timeout value based on the round-trip-time of recent ICP
4647 queries. If you want to override the value determined by
4648 Squid, set this 'icp_query_timeout' to a non-zero value. This
4649 value is specified in MILLISECONDS, so, to use a 2-second
4650 timeout (the old default), you would write:
4c3ef9b2 4651
5473c134 4652 icp_query_timeout 2000
4c3ef9b2 4653DOC_END
4654
5473c134 4655NAME: maximum_icp_query_timeout
4656COMMENT: (msec)
4657DEFAULT: 2000
4658TYPE: int
4659LOC: Config.Timeout.icp_query_max
cccac0a2 4660DOC_START
5473c134 4661 Normally the ICP query timeout is determined dynamically. But
4662 sometimes it can lead to very large values (say 5 seconds).
4663 Use this option to put an upper limit on the dynamic timeout
4664 value. Do NOT use this option to always use a fixed (instead
4665 of a dynamic) timeout value. To set a fixed timeout see the
4666 'icp_query_timeout' directive.
cccac0a2 4667DOC_END
4668
5473c134 4669NAME: minimum_icp_query_timeout
4670COMMENT: (msec)
4671DEFAULT: 5
4672TYPE: int
4673LOC: Config.Timeout.icp_query_min
cccac0a2 4674DOC_START
5473c134 4675 Normally the ICP query timeout is determined dynamically. But
4676 sometimes it can lead to very small timeouts, even lower than
4677 the normal latency variance on your link due to traffic.
4678 Use this option to put an lower limit on the dynamic timeout
4679 value. Do NOT use this option to always use a fixed (instead
4680 of a dynamic) timeout value. To set a fixed timeout see the
4681 'icp_query_timeout' directive.
cccac0a2 4682DOC_END
4683
5473c134 4684NAME: background_ping_rate
4685COMMENT: time-units
4686TYPE: time_t
4687DEFAULT: 10 seconds
4688LOC: Config.backgroundPingRate
cccac0a2 4689DOC_START
5473c134 4690 Controls how often the ICP pings are sent to siblings that
4691 have background-ping set.
cccac0a2 4692DOC_END
4693
5473c134 4694COMMENT_START
4695 MULTICAST ICP OPTIONS
4696 -----------------------------------------------------------------------------
4697COMMENT_END
4698
4699NAME: mcast_groups
4700TYPE: wordlist
4701LOC: Config.mcast_group_list
8c01ada0 4702DEFAULT: none
4703DOC_START
5473c134 4704 This tag specifies a list of multicast groups which your server
4705 should join to receive multicasted ICP queries.
8c01ada0 4706
5473c134 4707 NOTE! Be very careful what you put here! Be sure you
4708 understand the difference between an ICP _query_ and an ICP
4709 _reply_. This option is to be set only if you want to RECEIVE
4710 multicast queries. Do NOT set this option to SEND multicast
4711 ICP (use cache_peer for that). ICP replies are always sent via
4712 unicast, so this option does not affect whether or not you will
4713 receive replies from multicast group members.
8c01ada0 4714
5473c134 4715 You must be very careful to NOT use a multicast address which
4716 is already in use by another group of caches.
8c01ada0 4717
5473c134 4718 If you are unsure about multicast, please read the Multicast
4719 chapter in the Squid FAQ (http://www.squid-cache.org/FAQ/).
8c01ada0 4720
5473c134 4721 Usage: mcast_groups 239.128.16.128 224.0.1.20
8c01ada0 4722
5473c134 4723 By default, Squid doesn't listen on any multicast groups.
4724DOC_END
8c01ada0 4725
5473c134 4726NAME: mcast_miss_addr
4727IFDEF: MULTICAST_MISS_STREAM
4728TYPE: address
4729LOC: Config.mcast_miss.addr
4730DEFAULT: 255.255.255.255
4731DOC_START
4732 If you enable this option, every "cache miss" URL will
4733 be sent out on the specified multicast address.
cccac0a2 4734
5473c134 4735 Do not enable this option unless you are are absolutely
4736 certain you understand what you are doing.
cccac0a2 4737DOC_END
4738
5473c134 4739NAME: mcast_miss_ttl
4740IFDEF: MULTICAST_MISS_STREAM
4741TYPE: ushort
4742LOC: Config.mcast_miss.ttl
4743DEFAULT: 16
cccac0a2 4744DOC_START
5473c134 4745 This is the time-to-live value for packets multicasted
4746 when multicasting off cache miss URLs is enabled. By
4747 default this is set to 'site scope', i.e. 16.
4748DOC_END
cccac0a2 4749
5473c134 4750NAME: mcast_miss_port
4751IFDEF: MULTICAST_MISS_STREAM
4752TYPE: ushort
4753LOC: Config.mcast_miss.port
4754DEFAULT: 3135
4755DOC_START
4756 This is the port number to be used in conjunction with
4757 'mcast_miss_addr'.
4758DOC_END
cccac0a2 4759
5473c134 4760NAME: mcast_miss_encode_key
4761IFDEF: MULTICAST_MISS_STREAM
4762TYPE: string
4763LOC: Config.mcast_miss.encode_key
4764DEFAULT: XXXXXXXXXXXXXXXX
4765DOC_START
4766 The URLs that are sent in the multicast miss stream are
4767 encrypted. This is the encryption key.
4768DOC_END
8c01ada0 4769
5473c134 4770NAME: mcast_icp_query_timeout
4771COMMENT: (msec)
4772DEFAULT: 2000
4773TYPE: int
4774LOC: Config.Timeout.mcast_icp_query
4775DOC_START
4776 For multicast peers, Squid regularly sends out ICP "probes" to
4777 count how many other peers are listening on the given multicast
4778 address. This value specifies how long Squid should wait to
4779 count all the replies. The default is 2000 msec, or 2
4780 seconds.
cccac0a2 4781DOC_END
4782
5473c134 4783COMMENT_START
4784 INTERNAL ICON OPTIONS
4785 -----------------------------------------------------------------------------
4786COMMENT_END
4787
cccac0a2 4788NAME: icon_directory
4789TYPE: string
4790LOC: Config.icons.directory
4791DEFAULT: @DEFAULT_ICON_DIR@
4792DOC_START
4793 Where the icons are stored. These are normally kept in
4794 @DEFAULT_ICON_DIR@
4795DOC_END
4796
f024c970 4797NAME: global_internal_static
4798TYPE: onoff
4799LOC: Config.onoff.global_internal_static
4800DEFAULT: on
4801DOC_START
4802 This directive controls is Squid should intercept all requests for
4803 /squid-internal-static/ no matter which host the URL is requesting
4804 (default on setting), or if nothing special should be done for
4805 such URLs (off setting). The purpose of this directive is to make
4806 icons etc work better in complex cache hierarchies where it may
4807 not always be possible for all corners in the cache mesh to reach
4808 the server generating a directory listing.
4809DOC_END
4810
5473c134 4811NAME: short_icon_urls
4812TYPE: onoff
4813LOC: Config.icons.use_short_names
4814DEFAULT: on
4815DOC_START
4816 If this is enabled Squid will use short URLs for icons.
4817 If disabled it will revert to the old behavior of including
4818 it's own name and port in the URL.
4819
4820 If you run a complex cache hierarchy with a mix of Squid and
4821 other proxies you may need to disable this directive.
4822DOC_END
4823
4824COMMENT_START
4825 ERROR PAGE OPTIONS
4826 -----------------------------------------------------------------------------
4827COMMENT_END
4828
4829NAME: error_directory
4830TYPE: string
4831LOC: Config.errorDirectory
43000484 4832DEFAULT: none
5473c134 4833DOC_START
4834 If you wish to create your own versions of the default
43000484
AJ
4835 error files to customize them to suit your company copy
4836 the error/template files to another directory and point
4837 this tag at them.
4838
4839 WARNING: This option will disable multi-language support
4840 on error pages if used.
5473c134 4841
4842 The squid developers are interested in making squid available in
4843 a wide variety of languages. If you are making translations for a
43000484 4844 language that Squid does not currently provide please consider
5473c134 4845 contributing your translation back to the project.
43000484
AJ
4846 http://wiki.squid-cache.org/Translations
4847
4848 The squid developers working on translations are happy to supply drop-in
4849 translated error files in exchange for any new language contributions.
4850DOC_END
4851
4852NAME: error_default_language
4853IFDEF: USE_ERR_LOCALES
4854TYPE: string
4855LOC: Config.errorDefaultLanguage
4856DEFAULT: none
4857DOC_START
4858 Set the default language which squid will send error pages in
4859 if no existing translation matches the clients language
4860 preferences.
4861
4862 If unset (default) generic English will be used.
4863
4864 The squid developers are interested in making squid available in
4865 a wide variety of languages. If you are interested in making
4866 translations for any language see the squid wiki for details.
4867 http://wiki.squid-cache.org/Translations
5473c134 4868DOC_END
4869
c411820c
AJ
4870NAME: error_log_languages
4871IFDEF: USE_ERR_LOCALES
4872TYPE: onoff
4873LOC: Config.errorLogMissingLanguages
4874DEFAULT: on
4875DOC_START
4876 Log to cache.log what languages users are attempting to
4877 auto-negotiate for translations.
4878
4879 Successful negotiations are not logged. Only failures
4880 have meaning to indicate that Squid may need an upgrade
0c49f10e 4881 of its error page translations.
c411820c
AJ
4882DOC_END
4883
5b52cb6c
AJ
4884NAME: err_page_stylesheet
4885TYPE: string
4886LOC: Config.errorStylesheet
4887DEFAULT: @DEFAULT_CONFIG_DIR@/errorpage.css
4888DOC_START
4889 CSS Stylesheet to pattern the display of Squid default error pages.
4890
4891 For information on CSS see http://www.w3.org/Style/CSS/
4892DOC_END
4893
5473c134 4894NAME: err_html_text
4895TYPE: eol
4896LOC: Config.errHtmlText
4897DEFAULT: none
4898DOC_START
4899 HTML text to include in error messages. Make this a "mailto"
4900 URL to your admin address, or maybe just a link to your
4901 organizations Web page.
4902
4903 To include this in your error messages, you must rewrite
4904 the error template files (found in the "errors" directory).
4905 Wherever you want the 'err_html_text' line to appear,
4906 insert a %L tag in the error template file.
4907DOC_END
4908
4909NAME: email_err_data
4910COMMENT: on|off
4911TYPE: onoff
4912LOC: Config.onoff.emailErrData
4913DEFAULT: on
4914DOC_START
4915 If enabled, information about the occurred error will be
4916 included in the mailto links of the ERR pages (if %W is set)
4917 so that the email body contains the data.
4918 Syntax is <A HREF="mailto:%w%W">%w</A>
4919DOC_END
4920
4921NAME: deny_info
4922TYPE: denyinfo
4923LOC: Config.denyInfoList
4924DEFAULT: none
4925DOC_START
4926 Usage: deny_info err_page_name acl
4927 or deny_info http://... acl
43000484 4928 or deny_info TCP_RESET acl
5473c134 4929
4930 This can be used to return a ERR_ page for requests which
4931 do not pass the 'http_access' rules. Squid remembers the last
4932 acl it evaluated in http_access, and if a 'deny_info' line exists
4933 for that ACL Squid returns a corresponding error page.
4934
4935 The acl is typically the last acl on the http_access deny line which
4936 denied access. The exceptions to this rule are:
4937 - When Squid needs to request authentication credentials. It's then
4938 the first authentication related acl encountered
4939 - When none of the http_access lines matches. It's then the last
4940 acl processed on the last http_access line.
4941
43000484
AJ
4942 NP: If providing your own custom error pages with error_directory
4943 you may also specify them by your custom file name:
4944 Example: deny_info ERR_CUSTOM_ACCESS_DENIED bad_guys
5473c134 4945
4946 Alternatively you can specify an error URL. The browsers will
4947 get redirected (302) to the specified URL. %s in the redirection
4948 URL will be replaced by the requested URL.
4949
4950 Alternatively you can tell Squid to reset the TCP connection
4951 by specifying TCP_RESET.
4952DOC_END
4953
4954COMMENT_START
4955 OPTIONS INFLUENCING REQUEST FORWARDING
4956 -----------------------------------------------------------------------------
4957COMMENT_END
4958
4959NAME: nonhierarchical_direct
e72a0ec0 4960TYPE: onoff
5473c134 4961LOC: Config.onoff.nonhierarchical_direct
e72a0ec0 4962DEFAULT: on
4963DOC_START
5473c134 4964 By default, Squid will send any non-hierarchical requests
4965 (matching hierarchy_stoplist or not cacheable request type) direct
4966 to origin servers.
e72a0ec0 4967
5473c134 4968 If you set this to off, Squid will prefer to send these
4969 requests to parents.
0b0cfcf2 4970
5473c134 4971 Note that in most configurations, by turning this off you will only
4972 add latency to these request without any improvement in global hit
4973 ratio.
0b0cfcf2 4974
5473c134 4975 If you are inside an firewall see never_direct instead of
4976 this directive.
8d6275c0 4977DOC_END
0b0cfcf2 4978
5473c134 4979NAME: prefer_direct
8d6275c0 4980TYPE: onoff
5473c134 4981LOC: Config.onoff.prefer_direct
8d6275c0 4982DEFAULT: off
4983DOC_START
5473c134 4984 Normally Squid tries to use parents for most requests. If you for some
4985 reason like it to first try going direct and only use a parent if
4986 going direct fails set this to on.
0b0cfcf2 4987
5473c134 4988 By combining nonhierarchical_direct off and prefer_direct on you
4989 can set up Squid to use a parent as a backup path if going direct
4990 fails.
4991
4992 Note: If you want Squid to use parents for all requests see
4993 the never_direct directive. prefer_direct only modifies how Squid
4994 acts on cacheable requests.
cccac0a2 4995DOC_END
4996
5473c134 4997NAME: always_direct
8d6275c0 4998TYPE: acl_access
5473c134 4999LOC: Config.accessList.AlwaysDirect
0b0cfcf2 5000DEFAULT: none
0b0cfcf2 5001DOC_START
5473c134 5002 Usage: always_direct allow|deny [!]aclname ...
0b0cfcf2 5003
5473c134 5004 Here you can use ACL elements to specify requests which should
5005 ALWAYS be forwarded by Squid to the origin servers without using
5006 any peers. For example, to always directly forward requests for
5007 local servers ignoring any parents or siblings you may have use
5008 something like:
0b0cfcf2 5009
5473c134 5010 acl local-servers dstdomain my.domain.net
5011 always_direct allow local-servers
0b0cfcf2 5012
5473c134 5013 To always forward FTP requests directly, use
f16fbc82 5014
5473c134 5015 acl FTP proto FTP
5016 always_direct allow FTP
cccac0a2 5017
5473c134 5018 NOTE: There is a similar, but opposite option named
5019 'never_direct'. You need to be aware that "always_direct deny
5020 foo" is NOT the same thing as "never_direct allow foo". You
5021 may need to use a deny rule to exclude a more-specific case of
5022 some other rule. Example:
8d6275c0 5023
5473c134 5024 acl local-external dstdomain external.foo.net
5025 acl local-servers dstdomain .foo.net
5026 always_direct deny local-external
5027 always_direct allow local-servers
8d6275c0 5028
5473c134 5029 NOTE: If your goal is to make the client forward the request
5030 directly to the origin server bypassing Squid then this needs
5031 to be done in the client configuration. Squid configuration
5032 can only tell Squid how Squid should fetch the object.
8d6275c0 5033
5473c134 5034 NOTE: This directive is not related to caching. The replies
5035 is cached as usual even if you use always_direct. To not cache
5036 the replies see no_cache.
5037
5038 This option replaces some v1.1 options such as local_domain
5039 and local_ip.
cccac0a2 5040DOC_END
0976f8db 5041
5473c134 5042NAME: never_direct
5043TYPE: acl_access
5044LOC: Config.accessList.NeverDirect
5045DEFAULT: none
8d6275c0 5046DOC_START
5473c134 5047 Usage: never_direct allow|deny [!]aclname ...
5048
5049 never_direct is the opposite of always_direct. Please read
5050 the description for always_direct if you have not already.
5051
5052 With 'never_direct' you can use ACL elements to specify
5053 requests which should NEVER be forwarded directly to origin
5054 servers. For example, to force the use of a proxy for all
5055 requests, except those in your local domain use something like:
5056
5057 acl local-servers dstdomain .foo.net
5473c134 5058 never_direct deny local-servers
5059 never_direct allow all
5060
5061 or if Squid is inside a firewall and there are local intranet
5062 servers inside the firewall use something like:
5063
5064 acl local-intranet dstdomain .foo.net
5065 acl local-external dstdomain external.foo.net
5066 always_direct deny local-external
5067 always_direct allow local-intranet
5068 never_direct allow all
5069
5070 This option replaces some v1.1 options such as inside_firewall
5071 and firewall_ip.
8d6275c0 5072DOC_END
0976f8db 5073
5473c134 5074COMMENT_START
5075 ADVANCED NETWORKING OPTIONS
5076 -----------------------------------------------------------------------------
5077COMMENT_END
5078
cccac0a2 5079NAME: incoming_icp_average
5080TYPE: int
5081DEFAULT: 6
5082LOC: Config.comm_incoming.icp_average
5083DOC_NONE
5084
5085NAME: incoming_http_average
5086TYPE: int
5087DEFAULT: 4
5088LOC: Config.comm_incoming.http_average
5089DOC_NONE
5090
5091NAME: incoming_dns_average
5092TYPE: int
5093DEFAULT: 4
5094LOC: Config.comm_incoming.dns_average
5095DOC_NONE
5096
5097NAME: min_icp_poll_cnt
5098TYPE: int
5099DEFAULT: 8
5100LOC: Config.comm_incoming.icp_min_poll
5101DOC_NONE
5102
5103NAME: min_dns_poll_cnt
5104TYPE: int
5105DEFAULT: 8
5106LOC: Config.comm_incoming.dns_min_poll
5107DOC_NONE
5108
5109NAME: min_http_poll_cnt
5110TYPE: int
5111DEFAULT: 8
5112LOC: Config.comm_incoming.http_min_poll
5113DOC_START
5473c134 5114 Heavy voodoo here. I can't even believe you are reading this.
5115 Are you crazy? Don't even think about adjusting these unless
5116 you understand the algorithms in comm_select.c first!
5117DOC_END
5118
5119NAME: accept_filter
5473c134 5120TYPE: string
5121DEFAULT: none
5122LOC: Config.accept_filter
5123DOC_START
0b4d4be5 5124 FreeBSD:
5125
5473c134 5126 The name of an accept(2) filter to install on Squid's
5127 listen socket(s). This feature is perhaps specific to
5128 FreeBSD and requires support in the kernel.
5129
5130 The 'httpready' filter delays delivering new connections
2324cda2 5131 to Squid until a full HTTP request has been received.
0b4d4be5 5132 See the accf_http(9) man page for details.
5133
5134 The 'dataready' filter delays delivering new connections
5135 to Squid until there is some data to process.
5136 See the accf_dataready(9) man page for details.
5137
5138 Linux:
5139
5140 The 'data' filter delays delivering of new connections
5141 to Squid until there is some data to process by TCP_ACCEPT_DEFER.
5142 You may optionally specify a number of seconds to wait by
5143 'data=N' where N is the number of seconds. Defaults to 30
5144 if not specified. See the tcp(7) man page for details.
5473c134 5145EXAMPLE:
0b4d4be5 5146# FreeBSD
5473c134 5147accept_filter httpready
0b4d4be5 5148# Linux
5149accept_filter data
5473c134 5150DOC_END
5151
5152NAME: tcp_recv_bufsize
5153COMMENT: (bytes)
5154TYPE: b_size_t
5155DEFAULT: 0 bytes
5156LOC: Config.tcpRcvBufsz
5157DOC_START
5158 Size of receive buffer to set for TCP sockets. Probably just
5159 as easy to change your kernel's default. Set to zero to use
5160 the default buffer size.
5161DOC_END
5162
5163COMMENT_START
5164 ICAP OPTIONS
5165 -----------------------------------------------------------------------------
5166COMMENT_END
5167
5168NAME: icap_enable
5169TYPE: onoff
5170IFDEF: ICAP_CLIENT
5171COMMENT: on|off
26cc52cb 5172LOC: Adaptation::Icap::TheConfig.onoff
5473c134 5173DEFAULT: off
5174DOC_START
53e738c6 5175 If you want to enable the ICAP module support, set this to on.
5473c134 5176DOC_END
5177
5178NAME: icap_connect_timeout
5179TYPE: time_t
5180DEFAULT: none
26cc52cb 5181LOC: Adaptation::Icap::TheConfig.connect_timeout_raw
5473c134 5182IFDEF: ICAP_CLIENT
5183DOC_START
5184 This parameter specifies how long to wait for the TCP connect to
5185 the requested ICAP server to complete before giving up and either
5186 terminating the HTTP transaction or bypassing the failure.
5187
5188 The default for optional services is peer_connect_timeout.
5189 The default for essential services is connect_timeout.
5190 If this option is explicitly set, its value applies to all services.
5191DOC_END
5192
5193NAME: icap_io_timeout
5194COMMENT: time-units
5195TYPE: time_t
5196DEFAULT: none
26cc52cb 5197LOC: Adaptation::Icap::TheConfig.io_timeout_raw
5473c134 5198IFDEF: ICAP_CLIENT
5199DOC_START
5200 This parameter specifies how long to wait for an I/O activity on
5201 an established, active ICAP connection before giving up and
5202 either terminating the HTTP transaction or bypassing the
5203 failure.
5204
5205 The default is read_timeout.
5206DOC_END
5207
5208NAME: icap_service_failure_limit
5209TYPE: int
5210IFDEF: ICAP_CLIENT
26cc52cb 5211LOC: Adaptation::Icap::TheConfig.service_failure_limit
5473c134 5212DEFAULT: 10
5213DOC_START
5214 The limit specifies the number of failures that Squid tolerates
5215 when establishing a new TCP connection with an ICAP service. If
5216 the number of failures exceeds the limit, the ICAP service is
5217 not used for new ICAP requests until it is time to refresh its
5218 OPTIONS. The per-service failure counter is reset to zero each
5219 time Squid fetches new service OPTIONS.
5220
5221 A negative value disables the limit. Without the limit, an ICAP
5222 service will not be considered down due to connectivity failures
5223 between ICAP OPTIONS requests.
cccac0a2 5224DOC_END
5225
5473c134 5226NAME: icap_service_revival_delay
cccac0a2 5227TYPE: int
5473c134 5228IFDEF: ICAP_CLIENT
26cc52cb 5229LOC: Adaptation::Icap::TheConfig.service_revival_delay
5473c134 5230DEFAULT: 180
cccac0a2 5231DOC_START
5473c134 5232 The delay specifies the number of seconds to wait after an ICAP
5233 OPTIONS request failure before requesting the options again. The
5234 failed ICAP service is considered "down" until fresh OPTIONS are
5235 fetched.
cccac0a2 5236
5473c134 5237 The actual delay cannot be smaller than the hardcoded minimum
5238 delay of 30 seconds.
cccac0a2 5239DOC_END
5240
5473c134 5241NAME: icap_preview_enable
cccac0a2 5242TYPE: onoff
5473c134 5243IFDEF: ICAP_CLIENT
5244COMMENT: on|off
26cc52cb 5245LOC: Adaptation::Icap::TheConfig.preview_enable
ac7a62f9 5246DEFAULT: on
cccac0a2 5247DOC_START
ac7a62f9 5248 The ICAP Preview feature allows the ICAP server to handle the
5249 HTTP message by looking only at the beginning of the message body
5250 or even without receiving the body at all. In some environments,
5251 previews greatly speedup ICAP processing.
5252
5253 During an ICAP OPTIONS transaction, the server may tell Squid what
5254 HTTP messages should be previewed and how big the preview should be.
5255 Squid will not use Preview if the server did not request one.
5256
5257 To disable ICAP Preview for all ICAP services, regardless of
5258 individual ICAP server OPTIONS responses, set this option to "off".
5259Example:
5260icap_preview_enable off
cccac0a2 5261DOC_END
5262
5473c134 5263NAME: icap_preview_size
5264TYPE: int
5265IFDEF: ICAP_CLIENT
26cc52cb 5266LOC: Adaptation::Icap::TheConfig.preview_size
5473c134 5267DEFAULT: -1
cccac0a2 5268DOC_START
53e738c6 5269 The default size of preview data to be sent to the ICAP server.
5270 -1 means no preview. This value might be overwritten on a per server
5271 basis by OPTIONS requests.
cccac0a2 5272DOC_END
5273
5473c134 5274NAME: icap_default_options_ttl
5275TYPE: int
5276IFDEF: ICAP_CLIENT
26cc52cb 5277LOC: Adaptation::Icap::TheConfig.default_options_ttl
5473c134 5278DEFAULT: 60
cccac0a2 5279DOC_START
53e738c6 5280 The default TTL value for ICAP OPTIONS responses that don't have
5473c134 5281 an Options-TTL header.
cccac0a2 5282DOC_END
5283
5473c134 5284NAME: icap_persistent_connections
5285TYPE: onoff
5286IFDEF: ICAP_CLIENT
5287COMMENT: on|off
26cc52cb 5288LOC: Adaptation::Icap::TheConfig.reuse_connections
5473c134 5289DEFAULT: on
cccac0a2 5290DOC_START
5473c134 5291 Whether or not Squid should use persistent connections to
5292 an ICAP server.
cccac0a2 5293DOC_END
5294
5473c134 5295NAME: icap_send_client_ip
5296TYPE: onoff
5297IFDEF: ICAP_CLIENT
5298COMMENT: on|off
26cc52cb 5299LOC: Adaptation::Icap::TheConfig.send_client_ip
5473c134 5300DEFAULT: off
cccac0a2 5301DOC_START
53e738c6 5302 This adds the header "X-Client-IP" to ICAP requests.
cccac0a2 5303DOC_END
5304
5473c134 5305NAME: icap_send_client_username
5306TYPE: onoff
5307IFDEF: ICAP_CLIENT
5308COMMENT: on|off
26cc52cb 5309LOC: Adaptation::Icap::TheConfig.send_client_username
5473c134 5310DEFAULT: off
cccac0a2 5311DOC_START
5473c134 5312 This sends authenticated HTTP client username (if available) to
5313 the ICAP service. The username value is encoded based on the
5314 icap_client_username_encode option and is sent using the header
5315 specified by the icap_client_username_header option.
cccac0a2 5316DOC_END
5317
5473c134 5318NAME: icap_client_username_header
cccac0a2 5319TYPE: string
5473c134 5320IFDEF: ICAP_CLIENT
26cc52cb 5321LOC: Adaptation::Icap::TheConfig.client_username_header
5473c134 5322DEFAULT: X-Client-Username
cccac0a2 5323DOC_START
5473c134 5324 ICAP request header name to use for send_client_username.
cccac0a2 5325DOC_END
5326
5473c134 5327NAME: icap_client_username_encode
cccac0a2 5328TYPE: onoff
5473c134 5329IFDEF: ICAP_CLIENT
5330COMMENT: on|off
26cc52cb 5331LOC: Adaptation::Icap::TheConfig.client_username_encode
5473c134 5332DEFAULT: off
cccac0a2 5333DOC_START
5473c134 5334 Whether to base64 encode the authenticated client username.
cccac0a2 5335DOC_END
5336
5473c134 5337NAME: icap_service
5338TYPE: icap_service_type
5339IFDEF: ICAP_CLIENT
26cc52cb 5340LOC: Adaptation::Icap::TheConfig
5473c134 5341DEFAULT: none
cccac0a2 5342DOC_START
53e738c6 5343 Defines a single ICAP service
cccac0a2 5344
53e738c6 5345 icap_service servicename vectoring_point bypass service_url
7d90757b 5346
53e738c6 5347 vectoring_point = reqmod_precache|reqmod_postcache|respmod_precache|respmod_postcache
f3db09e2 5348 This specifies at which point of transaction processing the
5349 ICAP service should be activated. *_postcache vectoring points
5350 are not yet supported.
53e738c6 5351 bypass = 1|0
f3db09e2 5352 If set to 1, the ICAP service is treated as optional. If the
5353 service cannot be reached or malfunctions, Squid will try to
5354 ignore any errors and process the message as if the service
5355 was not enabled. No all ICAP errors can be bypassed.
5356 If set to 0, the ICAP service is treated as essential and all
5357 ICAP errors will result in an error page returned to the
5358 HTTP client.
53e738c6 5359 service_url = icap://servername:port/service
5473c134 5360
5473c134 5361Example:
5362icap_service service_1 reqmod_precache 0 icap://icap1.mydomain.net:1344/reqmod
5363icap_service service_2 respmod_precache 0 icap://icap2.mydomain.net:1344/respmod
cccac0a2 5364DOC_END
5365
5473c134 5366NAME: icap_class
5367TYPE: icap_class_type
5368IFDEF: ICAP_CLIENT
21a26d31 5369LOC: none
5473c134 5370DEFAULT: none
cccac0a2 5371DOC_START
62c7f90e
AR
5372 This depricated option was documented to define an ICAP service
5373 chain, even though it actually defined a set of similar, redundant
5374 services, and the chains were not supported.
5473c134 5375
62c7f90e
AR
5376 To define a set of redundant services, please use the
5377 adaptation_service_set directive.
5473c134 5378
62c7f90e
AR
5379 If you need adaptation service chains, patches or sponsorship
5380 is welcome.
cccac0a2 5381DOC_END
5382
5473c134 5383NAME: icap_access
5384TYPE: icap_access_type
5385IFDEF: ICAP_CLIENT
21a26d31 5386LOC: none
cccac0a2 5387DEFAULT: none
cccac0a2 5388DOC_START
62c7f90e
AR
5389 This option is depricated. Please use adaptation_access, which
5390 has the same ICAP functionality, but comes with better
5391 documentation, and eCAP support.
cccac0a2 5392DOC_END
5393
57afc994
AR
5394COMMENT_START
5395 eCAP OPTIONS
5396 -----------------------------------------------------------------------------
5397COMMENT_END
5398
21a26d31
AR
5399NAME: ecap_enable
5400TYPE: onoff
5401IFDEF: USE_ECAP
5402COMMENT: on|off
574b508c 5403LOC: Adaptation::Ecap::TheConfig.onoff
21a26d31
AR
5404DEFAULT: off
5405DOC_START
5406 Controls whether eCAP support is enabled.
5407DOC_END
5408
5409NAME: ecap_service
5410TYPE: ecap_service_type
5411IFDEF: USE_ECAP
574b508c 5412LOC: Adaptation::Ecap::TheConfig
21a26d31
AR
5413DEFAULT: none
5414DOC_START
5415 Defines a single eCAP service
5416
5417 ecap_service servicename vectoring_point bypass service_url
5418
5419 vectoring_point = reqmod_precache|reqmod_postcache|respmod_precache|respmod_postcache
5420 This specifies at which point of transaction processing the
5421 eCAP service should be activated. *_postcache vectoring points
5422 are not yet supported.
5423 bypass = 1|0
5424 If set to 1, the eCAP service is treated as optional. If the
5425 service cannot be reached or malfunctions, Squid will try to
5426 ignore any errors and process the message as if the service
5427 was not enabled. No all eCAP errors can be bypassed.
5428 If set to 0, the eCAP service is treated as essential and all
5429 eCAP errors will result in an error page returned to the
5430 HTTP client.
5431 service_url = ecap://vendor/service_name?custom&cgi=style&parameters=optional
5432
5433Example:
5434ecap_service service_1 reqmod_precache 0 ecap://filters-R-us/leakDetector?on_error=block
5435ecap_service service_2 respmod_precache 1 icap://filters-R-us/virusFilter?config=/etc/vf.cfg
5436DOC_END
5437
57afc994
AR
5438NAME: loadable_modules
5439TYPE: wordlist
5440IFDEF: USE_LOADABLE_MODULES
5441LOC: Config.loadable_module_names
5442DEFAULT: none
5443DOC_START
5444 Instructs Squid to load the specified dynamic module(s) or activate
5445 preloaded module(s).
5446Example:
5447loadable_modules @DEFAULT_PREFIX@/lib/MinimalAdapter.so
5448DOC_END
5449
62c7f90e
AR
5450COMMENT_START
5451 MESSAGE ADAPTATION OPTIONS
5452 -----------------------------------------------------------------------------
5453COMMENT_END
5454
5455NAME: adaptation_service_set
5456TYPE: adaptation_service_set_type
5457IFDEF: USE_ADAPTATION
5458LOC: none
5459DEFAULT: none
5460DOC_START
5461
5462 Defines a named adaptation service set. The set is populated in
5463 the order of adaptation_service_set directives in this file.
5464 When adaptation ACLs are processed, the first and only the first
5465 applicable adaptation service from the set will be used. Thus,
5466 the set should group similar, redundant services, rather than a
5467 chain of complementary services.
5468
5469 If you have a single adaptation service, you do not need to
5470 define a set containing it because adaptation_access accepts
5471 service names.
5472
5473 See also: adaptation_access
5474
5475Example:
5476adaptation_service_set svcBlocker urlFilterPrimary urlFilterBackup
5477adaptation service_set svcLogger loggerLocal loggerRemote
5478DOC_END
5479
5480NAME: adaptation_access
5481TYPE: adaptation_access_type
5482IFDEF: USE_ADAPTATION
5483LOC: none
5484DEFAULT: none
5485DOC_START
5486 Sends an HTTP transaction to an ICAP or eCAP adaptation service.
5487
5488 adaptation_access service_name allow|deny [!]aclname...
5489 adaptation_access set_name allow|deny [!]aclname...
5490
5491 At each supported vectoring point, the adaptation_access
5492 statements are processed in the order they appear in this
5493 configuration file. Statements pointing to the following services
5494 are ignored (i.e., skipped without checking their ACL):
5495
5496 - services serving different vectoring points
5497 - "broken-but-bypassable" services
5498 - "up" services configured to ignore such transactions
5499 (e.g., based on the ICAP Transfer-Ignore header).
5500
5501 When a set_name is used, all services in the set are checked
5502 using the same rules, to find the first applicable one. See
5503 adaptation_service_set for details.
5504
5505 If an access list is checked and there is a match, the
5506 processing stops: For an "allow" rule, the corresponding
5507 adaptation service is used for the transaction. For a "deny"
5508 rule, no adaptation service is activated.
5509
5510 It is currently not possible to apply more than one adaptation
5511 service at the same vectoring point to the same HTTP transaction.
5512
5513 See also: icap_service and ecap_service
5514
5515Example:
5516adaptation_access service_1 allow all
5517DOC_END
5518
5473c134 5519COMMENT_START
5520 DNS OPTIONS
5521 -----------------------------------------------------------------------------
5522COMMENT_END
5523
5524NAME: check_hostnames
cccac0a2 5525TYPE: onoff
cccac0a2 5526DEFAULT: off
5473c134 5527LOC: Config.onoff.check_hostnames
cccac0a2 5528DOC_START
5473c134 5529 For security and stability reasons Squid can check
5530 hostnames for Internet standard RFC compliance. If you want
5531 Squid to perform these checks turn this directive on.
cccac0a2 5532DOC_END
5533
5473c134 5534NAME: allow_underscore
cccac0a2 5535TYPE: onoff
cccac0a2 5536DEFAULT: on
5473c134 5537LOC: Config.onoff.allow_underscore
cccac0a2 5538DOC_START
5473c134 5539 Underscore characters is not strictly allowed in Internet hostnames
5540 but nevertheless used by many sites. Set this to off if you want
5541 Squid to be strict about the standard.
5542 This check is performed only when check_hostnames is set to on.
cccac0a2 5543DOC_END
5544
5473c134 5545NAME: cache_dns_program
cccac0a2 5546TYPE: string
5473c134 5547IFDEF: USE_DNSSERVERS
5548DEFAULT: @DEFAULT_DNSSERVER@
5549LOC: Config.Program.dnsserver
cccac0a2 5550DOC_START
5473c134 5551 Specify the location of the executable for dnslookup process.
cccac0a2 5552DOC_END
5553
5473c134 5554NAME: dns_children
5555TYPE: int
5556IFDEF: USE_DNSSERVERS
5557DEFAULT: 5
5558LOC: Config.dnsChildren
58850d15 5559DOC_START
5473c134 5560 The number of processes spawn to service DNS name lookups.
5561 For heavily loaded caches on large servers, you should
5562 probably increase this value to at least 10. The maximum
5563 is 32. The default is 5.
58850d15 5564
5473c134 5565 You must have at least one dnsserver process.
58850d15 5566DOC_END
5567
5473c134 5568NAME: dns_retransmit_interval
5569TYPE: time_t
5570DEFAULT: 5 seconds
5571LOC: Config.Timeout.idns_retransmit
5572IFDEF: !USE_DNSSERVERS
cccac0a2 5573DOC_START
5473c134 5574 Initial retransmit interval for DNS queries. The interval is
5575 doubled each time all configured DNS servers have been tried.
cccac0a2 5576
cccac0a2 5577DOC_END
5578
5473c134 5579NAME: dns_timeout
5580TYPE: time_t
5581DEFAULT: 2 minutes
5582LOC: Config.Timeout.idns_query
5583IFDEF: !USE_DNSSERVERS
cccac0a2 5584DOC_START
5473c134 5585 DNS Query timeout. If no response is received to a DNS query
5586 within this time all DNS servers for the queried domain
5587 are assumed to be unavailable.
cccac0a2 5588DOC_END
5589
5473c134 5590NAME: dns_defnames
5591COMMENT: on|off
cccac0a2 5592TYPE: onoff
cccac0a2 5593DEFAULT: off
5473c134 5594LOC: Config.onoff.res_defnames
cccac0a2 5595DOC_START
5473c134 5596 Normally the RES_DEFNAMES resolver option is disabled
5597 (see res_init(3)). This prevents caches in a hierarchy
5598 from interpreting single-component hostnames locally. To allow
5599 Squid to handle single-component names, enable this option.
cccac0a2 5600DOC_END
5601
5473c134 5602NAME: dns_nameservers
5603TYPE: wordlist
5604DEFAULT: none
5605LOC: Config.dns_nameservers
cccac0a2 5606DOC_START
5473c134 5607 Use this if you want to specify a list of DNS name servers
5608 (IP addresses) to use instead of those given in your
5609 /etc/resolv.conf file.
5610 On Windows platforms, if no value is specified here or in
5611 the /etc/resolv.conf file, the list of DNS name servers are
5612 taken from the Windows registry, both static and dynamic DHCP
5613 configurations are supported.
cccac0a2 5614
5473c134 5615 Example: dns_nameservers 10.0.0.1 192.172.0.4
cccac0a2 5616DOC_END
5617
5473c134 5618NAME: hosts_file
cccac0a2 5619TYPE: string
5473c134 5620DEFAULT: @DEFAULT_HOSTS@
5621LOC: Config.etcHostsPath
cccac0a2 5622DOC_START
5473c134 5623 Location of the host-local IP name-address associations
5624 database. Most Operating Systems have such a file on different
5625 default locations:
5626 - Un*X & Linux: /etc/hosts
5627 - Windows NT/2000: %SystemRoot%\system32\drivers\etc\hosts
5628 (%SystemRoot% value install default is c:\winnt)
5629 - Windows XP/2003: %SystemRoot%\system32\drivers\etc\hosts
5630 (%SystemRoot% value install default is c:\windows)
5631 - Windows 9x/Me: %windir%\hosts
5632 (%windir% value is usually c:\windows)
5633 - Cygwin: /etc/hosts
cccac0a2 5634
5473c134 5635 The file contains newline-separated definitions, in the
5636 form ip_address_in_dotted_form name [name ...] names are
5637 whitespace-separated. Lines beginning with an hash (#)
5638 character are comments.
cccac0a2 5639
5473c134 5640 The file is checked at startup and upon configuration.
5641 If set to 'none', it won't be checked.
5642 If append_domain is used, that domain will be added to
5643 domain-local (i.e. not containing any dot character) host
5644 definitions.
cccac0a2 5645DOC_END
5646
5473c134 5647NAME: append_domain
5648TYPE: string
5649LOC: Config.appendDomain
5650DEFAULT: none
6a2f3fcf 5651DOC_START
5473c134 5652 Appends local domain name to hostnames without any dots in
5653 them. append_domain must begin with a period.
5654
5655 Be warned there are now Internet names with no dots in
5656 them using only top-domain names, so setting this may
5657 cause some Internet sites to become unavailable.
5658
5659Example:
5660 append_domain .yourdomain.com
6a2f3fcf 5661DOC_END
5662
5473c134 5663NAME: ignore_unknown_nameservers
5664TYPE: onoff
5665LOC: Config.onoff.ignore_unknown_nameservers
df6fd596 5666DEFAULT: on
5667DOC_START
5473c134 5668 By default Squid checks that DNS responses are received
5669 from the same IP addresses they are sent to. If they
5670 don't match, Squid ignores the response and writes a warning
5671 message to cache.log. You can allow responses from unknown
5672 nameservers by setting this option to 'off'.
df6fd596 5673DOC_END
5674
cc192b50 5675NAME: dns_v4_fallback
5676TYPE: onoff
5677DEFAULT: on
5678LOC: Config.onoff.dns_require_A
5679DOC_START
5680 Standard practice with DNS is to lookup either A or AAAA records
5681 and use the results if it succeeds. Only looking up the other if
5682 the first attempt fails or otherwise produces no results.
5683
5684 That policy however will cause squid to produce error pages for some
5685 servers that advertise AAAA but are unreachable over IPv6.
5686
5687 If this is ON squid will always lookup both AAAA and A, using both.
5688 If this is OFF squid will lookup AAAA and only try A if none found.
5689
5690 WARNING: There are some possibly unwanted side-effects with this on:
5691 *) Doubles the load placed by squid on the DNS network.
5692 *) May negatively impact connection delay times.
5693DOC_END
5694
6bc15a4f 5695NAME: ipcache_size
5696COMMENT: (number of entries)
5697TYPE: int
5698DEFAULT: 1024
5699LOC: Config.ipcache.size
5700DOC_NONE
5701
5702NAME: ipcache_low
5703COMMENT: (percent)
5704TYPE: int
5705DEFAULT: 90
5706LOC: Config.ipcache.low
5707DOC_NONE
5708
5709NAME: ipcache_high
5710COMMENT: (percent)
5711TYPE: int
5712DEFAULT: 95
5713LOC: Config.ipcache.high
5714DOC_START
5715 The size, low-, and high-water marks for the IP cache.
5716DOC_END
5717
5718NAME: fqdncache_size
5719COMMENT: (number of entries)
5720TYPE: int
5721DEFAULT: 1024
5722LOC: Config.fqdncache.size
5723DOC_START
5724 Maximum number of FQDN cache entries.
5725DOC_END
5726
a58ff010 5727COMMENT_START
5473c134 5728 MISCELLANEOUS
a58ff010 5729 -----------------------------------------------------------------------------
5730COMMENT_END
5731
5473c134 5732NAME: memory_pools
a58ff010 5733COMMENT: on|off
5473c134 5734TYPE: onoff
5735DEFAULT: on
5736LOC: Config.onoff.mem_pools
a58ff010 5737DOC_START
5473c134 5738 If set, Squid will keep pools of allocated (but unused) memory
5739 available for future use. If memory is a premium on your
5740 system and you believe your malloc library outperforms Squid
5741 routines, disable this.
a58ff010 5742DOC_END
5743
5473c134 5744NAME: memory_pools_limit
5745COMMENT: (bytes)
5746TYPE: b_size_t
5747DEFAULT: 5 MB
5748LOC: Config.MemPools.limit
ec1245f8 5749DOC_START
5473c134 5750 Used only with memory_pools on:
5751 memory_pools_limit 50 MB
ec1245f8 5752
5473c134 5753 If set to a non-zero value, Squid will keep at most the specified
5754 limit of allocated (but unused) memory in memory pools. All free()
5755 requests that exceed this limit will be handled by your malloc
5756 library. Squid does not pre-allocate any memory, just safe-keeps
5757 objects that otherwise would be free()d. Thus, it is safe to set
5758 memory_pools_limit to a reasonably high value even if your
5759 configuration will use less memory.
ec1245f8 5760
5473c134 5761 If set to zero, Squid will keep all memory it can. That is, there
5762 will be no limit on the total amount of memory used for safe-keeping.
ec1245f8 5763
5473c134 5764 To disable memory allocation optimization, do not set
5765 memory_pools_limit to 0. Set memory_pools to "off" instead.
5766
5767 An overhead for maintaining memory pools is not taken into account
5768 when the limit is checked. This overhead is close to four bytes per
5769 object kept. However, pools may actually _save_ memory because of
5770 reduced memory thrashing in your malloc library.
ec1245f8 5771DOC_END
5772
5473c134 5773NAME: forwarded_for
67c06f0d
AJ
5774COMMENT: on|off|transparent|truncate|delete
5775TYPE: string
5473c134 5776DEFAULT: on
5777LOC: opt_forwarded_for
5f8252d2 5778DOC_START
67c06f0d
AJ
5779 If set to "on", Squid will append your client's IP address
5780 in the HTTP requests it forwards. By default it looks like:
5f8252d2 5781
5473c134 5782 X-Forwarded-For: 192.1.2.3
5783
67c06f0d 5784 If set to "off", it will appear as
5473c134 5785
5786 X-Forwarded-For: unknown
67c06f0d
AJ
5787
5788 If set to "transparent", Squid will not alter the
5789 X-Forwarded-For header in any way.
5790
5791 If set to "delete", Squid will delete the entire
5792 X-Forwarded-For header.
5793
5794 If set to "truncate", Squid will remove all existing
5795 X-Forwarded-For entries, and place itself as the sole entry.
5f8252d2 5796DOC_END
5797
5473c134 5798NAME: cachemgr_passwd
5799TYPE: cachemgrpasswd
5800DEFAULT: none
5801LOC: Config.passwd_list
5f8252d2 5802DOC_START
5473c134 5803 Specify passwords for cachemgr operations.
5f8252d2 5804
5473c134 5805 Usage: cachemgr_passwd password action action ...
5806
5807 Some valid actions are (see cache manager menu for a full list):
5808 5min
5809 60min
5810 asndb
5811 authenticator
5812 cbdata
5813 client_list
5814 comm_incoming
5815 config *
5816 counters
5817 delay
5818 digest_stats
5819 dns
5820 events
5821 filedescriptors
5822 fqdncache
5823 histograms
5824 http_headers
5825 info
5826 io
5827 ipcache
5828 mem
5829 menu
5830 netdb
5831 non_peers
5832 objects
5833 offline_toggle *
5834 pconn
5835 peer_select
b360c477 5836 reconfigure *
5473c134 5837 redirector
5838 refresh
5839 server_list
5840 shutdown *
5841 store_digest
5842 storedir
5843 utilization
5844 via_headers
5845 vm_objects
5846
5847 * Indicates actions which will not be performed without a
5848 valid password, others can be performed if not listed here.
5849
5850 To disable an action, set the password to "disable".
5851 To allow performing an action without a password, set the
5852 password to "none".
5853
5854 Use the keyword "all" to set the same password for all actions.
5855
5856Example:
5857 cachemgr_passwd secret shutdown
5858 cachemgr_passwd lesssssssecret info stats/objects
5859 cachemgr_passwd disable all
5f8252d2 5860DOC_END
5861
5473c134 5862NAME: client_db
a58ff010 5863COMMENT: on|off
5473c134 5864TYPE: onoff
5865DEFAULT: on
5866LOC: Config.onoff.client_db
a58ff010 5867DOC_START
5473c134 5868 If you want to disable collecting per-client statistics,
5869 turn off client_db here.
a58ff010 5870DOC_END
5871
5473c134 5872NAME: refresh_all_ims
5873COMMENT: on|off
5874TYPE: onoff
5875DEFAULT: off
5876LOC: Config.onoff.refresh_all_ims
a58ff010 5877DOC_START
5473c134 5878 When you enable this option, squid will always check
5879 the origin server for an update when a client sends an
5880 If-Modified-Since request. Many browsers use IMS
5881 requests when the user requests a reload, and this
5882 ensures those clients receive the latest version.
a58ff010 5883
5473c134 5884 By default (off), squid may return a Not Modified response
5885 based on the age of the cached version.
78e8cfc4 5886DOC_END
5887
5473c134 5888NAME: reload_into_ims
5889IFDEF: HTTP_VIOLATIONS
12b91c99 5890COMMENT: on|off
5473c134 5891TYPE: onoff
5892DEFAULT: off
5893LOC: Config.onoff.reload_into_ims
12b91c99 5894DOC_START
5473c134 5895 When you enable this option, client no-cache or ``reload''
5896 requests will be changed to If-Modified-Since requests.
5897 Doing this VIOLATES the HTTP standard. Enabling this
5898 feature could make you liable for problems which it
5899 causes.
5900
5901 see also refresh_pattern for a more selective approach.
12b91c99 5902DOC_END
5903
5473c134 5904NAME: maximum_single_addr_tries
5905TYPE: int
5906LOC: Config.retry.maxtries
5907DEFAULT: 1
a58ff010 5908DOC_START
5473c134 5909 This sets the maximum number of connection attempts for a
5910 host that only has one address (for multiple-address hosts,
5911 each address is tried once).
5912
5913 The default value is one attempt, the (not recommended)
5914 maximum is 255 tries. A warning message will be generated
5915 if it is set to a value greater than ten.
5916
5917 Note: This is in addition to the request re-forwarding which
5918 takes place if Squid fails to get a satisfying response.
a58ff010 5919DOC_END
5920
5473c134 5921NAME: retry_on_error
a58ff010 5922TYPE: onoff
5473c134 5923LOC: Config.retry.onerror
a58ff010 5924DEFAULT: off
5925DOC_START
5473c134 5926 If set to on Squid will automatically retry requests when
5927 receiving an error response. This is mainly useful if you
5928 are in a complex cache hierarchy to work around access
5929 control errors.
5f8252d2 5930DOC_END
5931
5473c134 5932NAME: as_whois_server
5f8252d2 5933TYPE: string
5473c134 5934LOC: Config.as_whois_server
5935DEFAULT: whois.ra.net
5936DEFAULT_IF_NONE: whois.ra.net
5f8252d2 5937DOC_START
5473c134 5938 WHOIS server to query for AS numbers. NOTE: AS numbers are
5939 queried only when Squid starts up, not for every request.
5f8252d2 5940DOC_END
5941
5473c134 5942NAME: offline_mode
5f8252d2 5943TYPE: onoff
5473c134 5944LOC: Config.onoff.offline
5f8252d2 5945DEFAULT: off
5946DOC_START
5473c134 5947 Enable this option and Squid will never try to validate cached
5948 objects.
a58ff010 5949DOC_END
5950
5473c134 5951NAME: uri_whitespace
5952TYPE: uri_whitespace
5953LOC: Config.uri_whitespace
5954DEFAULT: strip
a58ff010 5955DOC_START
5473c134 5956 What to do with requests that have whitespace characters in the
5957 URI. Options:
a58ff010 5958
5473c134 5959 strip: The whitespace characters are stripped out of the URL.
5960 This is the behavior recommended by RFC2396.
5961 deny: The request is denied. The user receives an "Invalid
5962 Request" message.
5963 allow: The request is allowed and the URI is not changed. The
5964 whitespace characters remain in the URI. Note the
5965 whitespace is passed to redirector processes if they
5966 are in use.
5967 encode: The request is allowed and the whitespace characters are
5968 encoded according to RFC1738. This could be considered
5969 a violation of the HTTP/1.1
5970 RFC because proxies are not allowed to rewrite URI's.
5971 chop: The request is allowed and the URI is chopped at the
5972 first whitespace. This might also be considered a
5973 violation.
5974DOC_END
a58ff010 5975
5473c134 5976NAME: chroot
5977TYPE: string
5978LOC: Config.chroot_dir
a58ff010 5979DEFAULT: none
5980DOC_START
5473c134 5981 Use this to have Squid do a chroot() while initializing. This
5982 also causes Squid to fully drop root privileges after
5983 initializing. This means, for example, if you use a HTTP
5984 port less than 1024 and try to reconfigure, you will may get an
5985 error saying that Squid can not open the port.
5986DOC_END
a58ff010 5987
5473c134 5988NAME: balance_on_multiple_ip
5989TYPE: onoff
5990LOC: Config.onoff.balance_on_multiple_ip
cc192b50 5991DEFAULT: off
5473c134 5992DOC_START
cc192b50 5993 Modern IP resolvers in squid sort lookup results by preferred access.
5994 By default squid will use these IP in order and only rotates to
5995 the next listed when the most preffered fails.
5996
5473c134 5997 Some load balancing servers based on round robin DNS have been
5998 found not to preserve user session state across requests
5999 to different IP addresses.
a58ff010 6000
cc192b50 6001 Enabling this directive Squid rotates IP's per request.
a58ff010 6002DOC_END
6003
5473c134 6004NAME: pipeline_prefetch
6005TYPE: onoff
6006LOC: Config.onoff.pipeline_prefetch
6007DEFAULT: off
a58ff010 6008DOC_START
5473c134 6009 To boost the performance of pipelined requests to closer
6010 match that of a non-proxied environment Squid can try to fetch
6011 up to two requests in parallel from a pipeline.
a58ff010 6012
5473c134 6013 Defaults to off for bandwidth management and access logging
6014 reasons.
6015DOC_END
a58ff010 6016
5473c134 6017NAME: high_response_time_warning
6018TYPE: int
6019COMMENT: (msec)
6020LOC: Config.warnings.high_rptm
6021DEFAULT: 0
6022DOC_START
6023 If the one-minute median response time exceeds this value,
6024 Squid prints a WARNING with debug level 0 to get the
6025 administrators attention. The value is in milliseconds.
a58ff010 6026DOC_END
6027
5473c134 6028NAME: high_page_fault_warning
6029TYPE: int
6030LOC: Config.warnings.high_pf
6031DEFAULT: 0
cc9f92d4 6032DOC_START
5473c134 6033 If the one-minute average page fault rate exceeds this
6034 value, Squid prints a WARNING with debug level 0 to get
6035 the administrators attention. The value is in page faults
6036 per second.
6037DOC_END
cc9f92d4 6038
5473c134 6039NAME: high_memory_warning
6040TYPE: b_size_t
6041LOC: Config.warnings.high_memory
904971da 6042DEFAULT: 0 KB
5473c134 6043DOC_START
6044 If the memory usage (as determined by mallinfo) exceeds
904971da 6045 this amount, Squid prints a WARNING with debug level 0 to get
5473c134 6046 the administrators attention.
6047DOC_END
cc9f92d4 6048
5473c134 6049NAME: sleep_after_fork
6050COMMENT: (microseconds)
6051TYPE: int
6052LOC: Config.sleep_after_fork
6053DEFAULT: 0
6054DOC_START
6055 When this is set to a non-zero value, the main Squid process
6056 sleeps the specified number of microseconds after a fork()
6057 system call. This sleep may help the situation where your
6058 system reports fork() failures due to lack of (virtual)
6059 memory. Note, however, if you have a lot of child
6060 processes, these sleep delays will add up and your
6061 Squid will not service requests for some amount of time
6062 until all the child processes have been started.
6063 On Windows value less then 1000 (1 milliseconds) are
6064 rounded to 1000.
cc9f92d4 6065DOC_END
6066
b6696974 6067NAME: windows_ipaddrchangemonitor
6b0516c6 6068IFDEF: _SQUID_MSWIN_
b6696974
GS
6069COMMENT: on|off
6070TYPE: onoff
6071DEFAULT: on
6072LOC: Config.onoff.WIN32_IpAddrChangeMonitor
6073DOC_START
6074 On Windows Squid by default will monitor IP address changes and will
6075 reconfigure itself after any detected event. This is very useful for
6076 proxies connected to internet with dial-up interfaces.
6077 In some cases (a Proxy server acting as VPN gateway is one) it could be
6078 desiderable to disable this behaviour setting this to 'off'.
6079 Note: after changing this, Squid service must be restarted.
6080DOC_END
6081
cccac0a2 6082EOF