]> git.ipfire.org Git - thirdparty/squid.git/blame - src/cf.data.pre
AutoDocs: Exclude test build directories
[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
41bd17a4 195 auth_param digest program @DEFAULT_PREFIX@/bin/digest_auth_pw @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
2938 ignore-private
2939 ignore-auth
2940 refresh-ims
a0ec9f68 2941
41bd17a4 2942 override-expire enforces min age even if the server
9b2ad080
HN
2943 sent an explicit expiry time (e.g., with the
2944 Expires: header or Cache-Control: max-age). Doing this
2945 VIOLATES the HTTP standard. Enabling this feature
2946 could make you liable for problems which it causes.
6468fe10 2947
41bd17a4 2948 override-lastmod enforces min age even on objects
2949 that were modified recently.
934b03fc 2950
41bd17a4 2951 reload-into-ims changes client no-cache or ``reload''
2952 to If-Modified-Since requests. Doing this VIOLATES the
2953 HTTP standard. Enabling this feature could make you
2954 liable for problems which it causes.
dba79ac5 2955
41bd17a4 2956 ignore-reload ignores a client no-cache or ``reload''
2957 header. Doing this VIOLATES the HTTP standard. Enabling
2958 this feature could make you liable for problems which
2959 it causes.
9bc73deb 2960
41bd17a4 2961 ignore-no-cache ignores any ``Pragma: no-cache'' and
2962 ``Cache-control: no-cache'' headers received from a server.
2963 The HTTP RFC never allows the use of this (Pragma) header
2964 from a server, only a client, though plenty of servers
2965 send it anyway.
2966
2967 ignore-no-store ignores any ``Cache-control: no-store''
2968 headers received from a server. Doing this VIOLATES
2969 the HTTP standard. Enabling this feature could make you
2970 liable for problems which it causes.
2971
2972 ignore-private ignores any ``Cache-control: private''
2973 headers received from a server. Doing this VIOLATES
2974 the HTTP standard. Enabling this feature could make you
2975 liable for problems which it causes.
2976
2977 ignore-auth caches responses to requests with authorization,
2978 as if the originserver had sent ``Cache-control: public''
2979 in the response header. Doing this VIOLATES the HTTP standard.
2980 Enabling this feature could make you liable for problems which
2981 it causes.
2982
2983 refresh-ims causes squid to contact the origin server
2984 when a client issues an If-Modified-Since request. This
2985 ensures that the client will receive an updated version
2986 if one is available.
2987
2988 Basically a cached object is:
2989
2990 FRESH if expires < now, else STALE
2991 STALE if age > max
2992 FRESH if lm-factor < percent, else STALE
2993 FRESH if age < min
2994 else STALE
2995
2996 The refresh_pattern lines are checked in the order listed here.
2997 The first entry which matches is used. If none of the entries
2998 match the default will be used.
2999
3000 Note, you must uncomment all the default lines if you want
3001 to change one. The default setting is only active if none is
3002 used.
3003
3004Suggested default:
3005NOCOMMENT_START
3006refresh_pattern ^ftp: 1440 20% 10080
3007refresh_pattern ^gopher: 1440 0% 1440
89db45fa 3008refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
41bd17a4 3009refresh_pattern . 0 20% 4320
3010NOCOMMENT_END
3011DOC_END
3012
3013NAME: quick_abort_min
3014COMMENT: (KB)
3015TYPE: kb_int64_t
3016DEFAULT: 16 KB
3017LOC: Config.quickAbort.min
3018DOC_NONE
3019
3020NAME: quick_abort_max
3021COMMENT: (KB)
3022TYPE: kb_int64_t
3023DEFAULT: 16 KB
3024LOC: Config.quickAbort.max
3025DOC_NONE
3026
3027NAME: quick_abort_pct
3028COMMENT: (percent)
3029TYPE: int
3030DEFAULT: 95
3031LOC: Config.quickAbort.pct
3032DOC_START
3033 The cache by default continues downloading aborted requests
3034 which are almost completed (less than 16 KB remaining). This
3035 may be undesirable on slow (e.g. SLIP) links and/or very busy
3036 caches. Impatient users may tie up file descriptors and
3037 bandwidth by repeatedly requesting and immediately aborting
3038 downloads.
3039
3040 When the user aborts a request, Squid will check the
3041 quick_abort values to the amount of data transfered until
3042 then.
3043
3044 If the transfer has less than 'quick_abort_min' KB remaining,
3045 it will finish the retrieval.
3046
3047 If the transfer has more than 'quick_abort_max' KB remaining,
3048 it will abort the retrieval.
3049
3050 If more than 'quick_abort_pct' of the transfer has completed,
3051 it will finish the retrieval.
3052
3053 If you do not want any retrieval to continue after the client
3054 has aborted, set both 'quick_abort_min' and 'quick_abort_max'
3055 to '0 KB'.
3056
3057 If you want retrievals to always continue if they are being
3058 cached set 'quick_abort_min' to '-1 KB'.
3059DOC_END
60d096f4 3060
41bd17a4 3061NAME: read_ahead_gap
3062COMMENT: buffer-size
3063TYPE: b_int64_t
3064LOC: Config.readAheadGap
3065DEFAULT: 16 KB
3066DOC_START
3067 The amount of data the cache will buffer ahead of what has been
3068 sent to the client when retrieving an object from another server.
3069DOC_END
53e738c6 3070
41bd17a4 3071NAME: negative_ttl
ac9cc053 3072IFDEF: HTTP_VIOLATIONS
41bd17a4 3073COMMENT: time-units
3074TYPE: time_t
3075LOC: Config.negativeTtl
ac9cc053 3076DEFAULT: 0 seconds
41bd17a4 3077DOC_START
ac9cc053
AJ
3078 Set the Default Time-to-Live (TTL) for failed requests.
3079 Certain types of failures (such as "connection refused" and
3080 "404 Not Found") are able to be negatively-cached for a short time.
3081 Modern web servers should provide Expires: header, however if they
3082 do not this can provide a minimum TTL.
3083 The default is not to cache errors with unknown expiry details.
3084
3085 Note that this is different from negative caching of DNS lookups.
39956c7c
AJ
3086
3087 WARNING: Doing this VIOLATES the HTTP standard. Enabling
3088 this feature could make you liable for problems which it
3089 causes.
41bd17a4 3090DOC_END
53e738c6 3091
41bd17a4 3092NAME: positive_dns_ttl
3093COMMENT: time-units
3094TYPE: time_t
3095LOC: Config.positiveDnsTtl
3096DEFAULT: 6 hours
3097DOC_START
3098 Upper limit on how long Squid will cache positive DNS responses.
3099 Default is 6 hours (360 minutes). This directive must be set
3100 larger than negative_dns_ttl.
3101DOC_END
c4ab8329 3102
41bd17a4 3103NAME: negative_dns_ttl
3104COMMENT: time-units
3105TYPE: time_t
3106LOC: Config.negativeDnsTtl
3107DEFAULT: 1 minutes
3108DOC_START
3109 Time-to-Live (TTL) for negative caching of failed DNS lookups.
3110 This also sets the lower cache limit on positive lookups.
3111 Minimum value is 1 second, and it is not recommendable to go
3112 much below 10 seconds.
3113DOC_END
7df0bfd7 3114
41bd17a4 3115NAME: range_offset_limit
3116COMMENT: (bytes)
3117TYPE: b_int64_t
3118LOC: Config.rangeOffsetLimit
3119DEFAULT: 0 KB
3120DOC_START
3121 Sets a upper limit on how far into the the file a Range request
3122 may be to cause Squid to prefetch the whole file. If beyond this
3123 limit Squid forwards the Range request as it is and the result
3124 is NOT cached.
c4ab8329 3125
41bd17a4 3126 This is to stop a far ahead range request (lets say start at 17MB)
3127 from making Squid fetch the whole object up to that point before
3128 sending anything to the client.
a7ad6e4e 3129
41bd17a4 3130 A value of -1 causes Squid to always fetch the object from the
3131 beginning so it may cache the result. (2.0 style)
a7ad6e4e 3132
41bd17a4 3133 A value of 0 causes Squid to never fetch more than the
3134 client requested. (default)
3135DOC_END
d95b862f 3136
41bd17a4 3137NAME: minimum_expiry_time
3138COMMENT: (seconds)
3139TYPE: time_t
3140LOC: Config.minimum_expiry_time
3141DEFAULT: 60 seconds
3142DOC_START
3143 The minimum caching time according to (Expires - Date)
3144 Headers Squid honors if the object can't be revalidated
649fa918 3145 defaults to 60 seconds. In reverse proxy environments it
41bd17a4 3146 might be desirable to honor shorter object lifetimes. It
3147 is most likely better to make your server return a
3148 meaningful Last-Modified header however. In ESI environments
3149 where page fragments often have short lifetimes, this will
3150 often be best set to 0.
3151DOC_END
c68e9c6b 3152
41bd17a4 3153NAME: store_avg_object_size
3154COMMENT: (kbytes)
3e62bd58 3155TYPE: kb_int64_t
41bd17a4 3156DEFAULT: 13 KB
3157LOC: Config.Store.avgObjectSize
3158DOC_START
3159 Average object size, used to estimate number of objects your
3160 cache can hold. The default is 13 KB.
cccac0a2 3161DOC_END
3162
41bd17a4 3163NAME: store_objects_per_bucket
3164TYPE: int
3165DEFAULT: 20
3166LOC: Config.Store.objectsPerBucket
3167DOC_START
3168 Target number of objects per bucket in the store hash table.
3169 Lowering this value increases the total number of buckets and
3170 also the storage maintenance rate. The default is 20.
3171DOC_END
3172
3173COMMENT_START
3174 HTTP OPTIONS
3175 -----------------------------------------------------------------------------
3176COMMENT_END
3177
f04b37d8 3178NAME: request_header_max_size
3179COMMENT: (KB)
3180TYPE: b_size_t
df2eec10 3181DEFAULT: 64 KB
f04b37d8 3182LOC: Config.maxRequestHeaderSize
3183DOC_START
3184 This specifies the maximum size for HTTP headers in a request.
3185 Request headers are usually relatively small (about 512 bytes).
3186 Placing a limit on the request header size will catch certain
3187 bugs (for example with persistent connections) and possibly
3188 buffer-overflow or denial-of-service attacks.
3189DOC_END
3190
3191NAME: reply_header_max_size
3192COMMENT: (KB)
3193TYPE: b_size_t
df2eec10 3194DEFAULT: 64 KB
f04b37d8 3195LOC: Config.maxReplyHeaderSize
3196DOC_START
3197 This specifies the maximum size for HTTP headers in a reply.
3198 Reply headers are usually relatively small (about 512 bytes).
3199 Placing a limit on the reply header size will catch certain
3200 bugs (for example with persistent connections) and possibly
3201 buffer-overflow or denial-of-service attacks.
3202DOC_END
3203
3204NAME: request_body_max_size
3205COMMENT: (bytes)
3206TYPE: b_int64_t
3207DEFAULT: 0 KB
3208LOC: Config.maxRequestBodySize
3209DOC_START
3210 This specifies the maximum size for an HTTP request body.
3211 In other words, the maximum size of a PUT/POST request.
3212 A user who attempts to send a request with a body larger
3213 than this limit receives an "Invalid Request" error message.
3214 If you set this parameter to a zero (the default), there will
3215 be no limit imposed.
3216DOC_END
3217
41bd17a4 3218NAME: broken_posts
aa49962c 3219IFDEF: HTTP_VIOLATIONS
cccac0a2 3220TYPE: acl_access
cccac0a2 3221DEFAULT: none
41bd17a4 3222LOC: Config.accessList.brokenPosts
cccac0a2 3223DOC_START
41bd17a4 3224 A list of ACL elements which, if matched, causes Squid to send
3225 an extra CRLF pair after the body of a PUT/POST request.
cccac0a2 3226
41bd17a4 3227 Some HTTP servers has broken implementations of PUT/POST,
3228 and rely on an extra CRLF pair sent by some WWW clients.
cccac0a2 3229
41bd17a4 3230 Quote from RFC2616 section 4.1 on this matter:
cccac0a2 3231
41bd17a4 3232 Note: certain buggy HTTP/1.0 client implementations generate an
3233 extra CRLF's after a POST request. To restate what is explicitly
3234 forbidden by the BNF, an HTTP/1.1 client must not preface or follow
3235 a request with an extra CRLF.
cccac0a2 3236
41bd17a4 3237Example:
3238 acl buggy_server url_regex ^http://....
3239 broken_posts allow buggy_server
3240DOC_END
cccac0a2 3241
41bd17a4 3242NAME: via
3243IFDEF: HTTP_VIOLATIONS
3244COMMENT: on|off
3245TYPE: onoff
3246DEFAULT: on
3247LOC: Config.onoff.via
3248DOC_START
3249 If set (default), Squid will include a Via header in requests and
3250 replies as required by RFC2616.
3251DOC_END
4cc6eb12 3252
41bd17a4 3253NAME: ie_refresh
3254COMMENT: on|off
3255TYPE: onoff
3256LOC: Config.onoff.ie_refresh
3257DEFAULT: off
3258DOC_START
3259 Microsoft Internet Explorer up until version 5.5 Service
3260 Pack 1 has an issue with transparent proxies, wherein it
3261 is impossible to force a refresh. Turning this on provides
3262 a partial fix to the problem, by causing all IMS-REFRESH
3263 requests from older IE versions to check the origin server
3264 for fresh content. This reduces hit ratio by some amount
3265 (~10% in my experience), but allows users to actually get
3266 fresh content when they want it. Note because Squid
3267 cannot tell if the user is using 5.5 or 5.5SP1, the behavior
3268 of 5.5 is unchanged from old versions of Squid (i.e. a
3269 forced refresh is impossible). Newer versions of IE will,
3270 hopefully, continue to have the new behavior and will be
3271 handled based on that assumption. This option defaults to
3272 the old Squid behavior, which is better for hit ratios but
3273 worse for clients using IE, if they need to be able to
3274 force fresh content.
3275DOC_END
b9d7fe3e 3276
41bd17a4 3277NAME: vary_ignore_expire
3278COMMENT: on|off
3279TYPE: onoff
3280LOC: Config.onoff.vary_ignore_expire
3281DEFAULT: off
3282DOC_START
3283 Many HTTP servers supporting Vary gives such objects
3284 immediate expiry time with no cache-control header
3285 when requested by a HTTP/1.0 client. This option
3286 enables Squid to ignore such expiry times until
3287 HTTP/1.1 is fully implemented.
7e73cd78
AJ
3288
3289 WARNING: If turned on this may eventually cause some
3290 varying objects not intended for caching to get cached.
cccac0a2 3291DOC_END
c4ab8329 3292
41bd17a4 3293NAME: request_entities
3294TYPE: onoff
3295LOC: Config.onoff.request_entities
3296DEFAULT: off
3297DOC_START
3298 Squid defaults to deny GET and HEAD requests with request entities,
3299 as the meaning of such requests are undefined in the HTTP standard
3300 even if not explicitly forbidden.
0976f8db 3301
41bd17a4 3302 Set this directive to on if you have clients which insists
3303 on sending request entities in GET or HEAD requests. But be warned
3304 that there is server software (both proxies and web servers) which
3305 can fail to properly process this kind of request which may make you
3306 vulnerable to cache pollution attacks if enabled.
cccac0a2 3307DOC_END
6b53c392 3308
41bd17a4 3309NAME: request_header_access
3310IFDEF: HTTP_VIOLATIONS
3311TYPE: http_header_access[]
3312LOC: Config.request_header_access
cccac0a2 3313DEFAULT: none
cccac0a2 3314DOC_START
41bd17a4 3315 Usage: request_header_access header_name allow|deny [!]aclname ...
0976f8db 3316
41bd17a4 3317 WARNING: Doing this VIOLATES the HTTP standard. Enabling
3318 this feature could make you liable for problems which it
3319 causes.
0976f8db 3320
41bd17a4 3321 This option replaces the old 'anonymize_headers' and the
3322 older 'http_anonymizer' option with something that is much
3323 more configurable. This new method creates a list of ACLs
3324 for each header, allowing you very fine-tuned header
3325 mangling.
934b03fc 3326
41bd17a4 3327 This option only applies to request headers, i.e., from the
3328 client to the server.
5401aa8d 3329
41bd17a4 3330 You can only specify known headers for the header name.
3331 Other headers are reclassified as 'Other'. You can also
3332 refer to all the headers with 'All'.
5401aa8d 3333
41bd17a4 3334 For example, to achieve the same behavior as the old
3335 'http_anonymizer standard' option, you should use:
5401aa8d 3336
41bd17a4 3337 request_header_access From deny all
3338 request_header_access Referer deny all
3339 request_header_access Server deny all
3340 request_header_access User-Agent deny all
3341 request_header_access WWW-Authenticate deny all
3342 request_header_access Link deny all
5401aa8d 3343
41bd17a4 3344 Or, to reproduce the old 'http_anonymizer paranoid' feature
3345 you should use:
5401aa8d 3346
41bd17a4 3347 request_header_access Allow allow all
3348 request_header_access Authorization allow all
3349 request_header_access WWW-Authenticate allow all
3350 request_header_access Proxy-Authorization allow all
3351 request_header_access Proxy-Authenticate allow all
3352 request_header_access Cache-Control allow all
3353 request_header_access Content-Encoding allow all
3354 request_header_access Content-Length allow all
3355 request_header_access Content-Type allow all
3356 request_header_access Date allow all
3357 request_header_access Expires allow all
3358 request_header_access Host allow all
3359 request_header_access If-Modified-Since allow all
3360 request_header_access Last-Modified allow all
3361 request_header_access Location allow all
3362 request_header_access Pragma allow all
3363 request_header_access Accept allow all
3364 request_header_access Accept-Charset allow all
3365 request_header_access Accept-Encoding allow all
3366 request_header_access Accept-Language allow all
3367 request_header_access Content-Language allow all
3368 request_header_access Mime-Version allow all
3369 request_header_access Retry-After allow all
3370 request_header_access Title allow all
3371 request_header_access Connection allow all
3372 request_header_access Proxy-Connection allow all
3373 request_header_access All deny all
5401aa8d 3374
41bd17a4 3375 although many of those are HTTP reply headers, and so should be
3376 controlled with the reply_header_access directive.
5401aa8d 3377
41bd17a4 3378 By default, all headers are allowed (no anonymizing is
3379 performed).
5401aa8d 3380DOC_END
3381
41bd17a4 3382NAME: reply_header_access
3383IFDEF: HTTP_VIOLATIONS
3384TYPE: http_header_access[]
3385LOC: Config.reply_header_access
cccac0a2 3386DEFAULT: none
3387DOC_START
41bd17a4 3388 Usage: reply_header_access header_name allow|deny [!]aclname ...
934b03fc 3389
41bd17a4 3390 WARNING: Doing this VIOLATES the HTTP standard. Enabling
3391 this feature could make you liable for problems which it
3392 causes.
934b03fc 3393
41bd17a4 3394 This option only applies to reply headers, i.e., from the
3395 server to the client.
934b03fc 3396
41bd17a4 3397 This is the same as request_header_access, but in the other
3398 direction.
6b53c392 3399
41bd17a4 3400 This option replaces the old 'anonymize_headers' and the
3401 older 'http_anonymizer' option with something that is much
3402 more configurable. This new method creates a list of ACLs
3403 for each header, allowing you very fine-tuned header
3404 mangling.
cccac0a2 3405
41bd17a4 3406 You can only specify known headers for the header name.
3407 Other headers are reclassified as 'Other'. You can also
3408 refer to all the headers with 'All'.
cccac0a2 3409
41bd17a4 3410 For example, to achieve the same behavior as the old
3411 'http_anonymizer standard' option, you should use:
cccac0a2 3412
41bd17a4 3413 reply_header_access From deny all
3414 reply_header_access Referer deny all
3415 reply_header_access Server deny all
3416 reply_header_access User-Agent deny all
3417 reply_header_access WWW-Authenticate deny all
3418 reply_header_access Link deny all
cccac0a2 3419
41bd17a4 3420 Or, to reproduce the old 'http_anonymizer paranoid' feature
3421 you should use:
cccac0a2 3422
41bd17a4 3423 reply_header_access Allow allow all
3424 reply_header_access Authorization allow all
3425 reply_header_access WWW-Authenticate allow all
3426 reply_header_access Proxy-Authorization allow all
3427 reply_header_access Proxy-Authenticate allow all
3428 reply_header_access Cache-Control allow all
3429 reply_header_access Content-Encoding allow all
3430 reply_header_access Content-Length allow all
3431 reply_header_access Content-Type allow all
3432 reply_header_access Date allow all
3433 reply_header_access Expires allow all
3434 reply_header_access Host allow all
3435 reply_header_access If-Modified-Since allow all
3436 reply_header_access Last-Modified allow all
3437 reply_header_access Location allow all
3438 reply_header_access Pragma allow all
3439 reply_header_access Accept allow all
3440 reply_header_access Accept-Charset allow all
3441 reply_header_access Accept-Encoding allow all
3442 reply_header_access Accept-Language allow all
3443 reply_header_access Content-Language allow all
3444 reply_header_access Mime-Version allow all
3445 reply_header_access Retry-After allow all
3446 reply_header_access Title allow all
3447 reply_header_access Connection allow all
3448 reply_header_access Proxy-Connection allow all
3449 reply_header_access All deny all
cccac0a2 3450
41bd17a4 3451 although the HTTP request headers won't be usefully controlled
3452 by this directive -- see request_header_access for details.
cccac0a2 3453
41bd17a4 3454 By default, all headers are allowed (no anonymizing is
3455 performed).
cccac0a2 3456DOC_END
3457
41bd17a4 3458NAME: header_replace
3459IFDEF: HTTP_VIOLATIONS
3460TYPE: http_header_replace[]
3461LOC: Config.request_header_access
cccac0a2 3462DEFAULT: none
41bd17a4 3463DOC_START
3464 Usage: header_replace header_name message
3465 Example: header_replace User-Agent Nutscrape/1.0 (CP/M; 8-bit)
cccac0a2 3466
41bd17a4 3467 This option allows you to change the contents of headers
3468 denied with header_access above, by replacing them with
3469 some fixed string. This replaces the old fake_user_agent
3470 option.
cccac0a2 3471
41bd17a4 3472 This only applies to request headers, not reply headers.
cccac0a2 3473
41bd17a4 3474 By default, headers are removed if denied.
3475DOC_END
cccac0a2 3476
41bd17a4 3477NAME: relaxed_header_parser
3478COMMENT: on|off|warn
3479TYPE: tristate
3480LOC: Config.onoff.relaxed_header_parser
3481DEFAULT: on
3482DOC_START
3483 In the default "on" setting Squid accepts certain forms
3484 of non-compliant HTTP messages where it is unambiguous
3485 what the sending application intended even if the message
3486 is not correctly formatted. The messages is then normalized
3487 to the correct form when forwarded by Squid.
cccac0a2 3488
41bd17a4 3489 If set to "warn" then a warning will be emitted in cache.log
3490 each time such HTTP error is encountered.
cccac0a2 3491
41bd17a4 3492 If set to "off" then such HTTP errors will cause the request
3493 or response to be rejected.
3494DOC_END
7d90757b 3495
41bd17a4 3496COMMENT_START
3497 TIMEOUTS
3498 -----------------------------------------------------------------------------
3499COMMENT_END
3500
3501NAME: forward_timeout
3502COMMENT: time-units
3503TYPE: time_t
3504LOC: Config.Timeout.forward
3505DEFAULT: 4 minutes
3506DOC_START
3507 This parameter specifies how long Squid should at most attempt in
3508 finding a forwarding path for the request before giving up.
cccac0a2 3509DOC_END
3510
41bd17a4 3511NAME: connect_timeout
3512COMMENT: time-units
3513TYPE: time_t
3514LOC: Config.Timeout.connect
3515DEFAULT: 1 minute
057f5854 3516DOC_START
41bd17a4 3517 This parameter specifies how long to wait for the TCP connect to
3518 the requested server or peer to complete before Squid should
3519 attempt to find another path where to forward the request.
057f5854 3520DOC_END
3521
41bd17a4 3522NAME: peer_connect_timeout
3523COMMENT: time-units
3524TYPE: time_t
3525LOC: Config.Timeout.peer_connect
3526DEFAULT: 30 seconds
cccac0a2 3527DOC_START
41bd17a4 3528 This parameter specifies how long to wait for a pending TCP
3529 connection to a peer cache. The default is 30 seconds. You
3530 may also set different timeout values for individual neighbors
3531 with the 'connect-timeout' option on a 'cache_peer' line.
3532DOC_END
7f7db318 3533
41bd17a4 3534NAME: read_timeout
3535COMMENT: time-units
3536TYPE: time_t
3537LOC: Config.Timeout.read
3538DEFAULT: 15 minutes
3539DOC_START
3540 The read_timeout is applied on server-side connections. After
3541 each successful read(), the timeout will be extended by this
3542 amount. If no data is read again after this amount of time,
3543 the request is aborted and logged with ERR_READ_TIMEOUT. The
3544 default is 15 minutes.
3545DOC_END
cccac0a2 3546
41bd17a4 3547NAME: request_timeout
3548TYPE: time_t
3549LOC: Config.Timeout.request
3550DEFAULT: 5 minutes
3551DOC_START
3552 How long to wait for an HTTP request after initial
3553 connection establishment.
3554DOC_END
cccac0a2 3555
41bd17a4 3556NAME: persistent_request_timeout
3557TYPE: time_t
3558LOC: Config.Timeout.persistent_request
3559DEFAULT: 2 minutes
3560DOC_START
3561 How long to wait for the next HTTP request on a persistent
3562 connection after the previous request completes.
3563DOC_END
cccac0a2 3564
41bd17a4 3565NAME: client_lifetime
3566COMMENT: time-units
3567TYPE: time_t
3568LOC: Config.Timeout.lifetime
3569DEFAULT: 1 day
3570DOC_START
3571 The maximum amount of time a client (browser) is allowed to
3572 remain connected to the cache process. This protects the Cache
3573 from having a lot of sockets (and hence file descriptors) tied up
3574 in a CLOSE_WAIT state from remote clients that go away without
3575 properly shutting down (either because of a network failure or
3576 because of a poor client implementation). The default is one
3577 day, 1440 minutes.
7d90757b 3578
41bd17a4 3579 NOTE: The default value is intended to be much larger than any
3580 client would ever need to be connected to your cache. You
3581 should probably change client_lifetime only as a last resort.
3582 If you seem to have many client connections tying up
3583 filedescriptors, we recommend first tuning the read_timeout,
3584 request_timeout, persistent_request_timeout and quick_abort values.
cccac0a2 3585DOC_END
3586
41bd17a4 3587NAME: half_closed_clients
3588TYPE: onoff
3589LOC: Config.onoff.half_closed_clients
0c2f5c4f 3590DEFAULT: off
4eb368f9 3591DOC_START
41bd17a4 3592 Some clients may shutdown the sending side of their TCP
3593 connections, while leaving their receiving sides open. Sometimes,
3594 Squid can not tell the difference between a half-closed and a
0c2f5c4f
AJ
3595 fully-closed TCP connection.
3596
3597 By default, Squid will immediately close client connections when
3598 read(2) returns "no more data to read."
3599
abdf1651 3600 Change this option to 'on' and Squid will keep open connections
0c2f5c4f
AJ
3601 until a read(2) or write(2) on the socket returns an error.
3602 This may show some benefits for reverse proxies. But if not
3603 it is recommended to leave OFF.
4eb368f9 3604DOC_END
3605
41bd17a4 3606NAME: pconn_timeout
3607TYPE: time_t
3608LOC: Config.Timeout.pconn
3609DEFAULT: 1 minute
cccac0a2 3610DOC_START
41bd17a4 3611 Timeout for idle persistent connections to servers and other
3612 proxies.
3613DOC_END
cccac0a2 3614
41bd17a4 3615NAME: ident_timeout
3616TYPE: time_t
3617IFDEF: USE_IDENT
3618LOC: Config.Timeout.ident
3619DEFAULT: 10 seconds
3620DOC_START
3621 Maximum time to wait for IDENT lookups to complete.
cccac0a2 3622
41bd17a4 3623 If this is too high, and you enabled IDENT lookups from untrusted
3624 users, you might be susceptible to denial-of-service by having
3625 many ident requests going at once.
cccac0a2 3626DOC_END
3627
41bd17a4 3628NAME: shutdown_lifetime
3629COMMENT: time-units
3630TYPE: time_t
3631LOC: Config.shutdownLifetime
3632DEFAULT: 30 seconds
cccac0a2 3633DOC_START
41bd17a4 3634 When SIGTERM or SIGHUP is received, the cache is put into
3635 "shutdown pending" mode until all active sockets are closed.
3636 This value is the lifetime to set for all open descriptors
3637 during shutdown mode. Any active clients after this many
3638 seconds will receive a 'timeout' message.
cccac0a2 3639DOC_END
0976f8db 3640
cccac0a2 3641COMMENT_START
3642 ADMINISTRATIVE PARAMETERS
3643 -----------------------------------------------------------------------------
3644COMMENT_END
3645
3646NAME: cache_mgr
3647TYPE: string
3648DEFAULT: webmaster
3649LOC: Config.adminEmail
3650DOC_START
3651 Email-address of local cache manager who will receive
3652 mail if the cache dies. The default is "webmaster."
3653DOC_END
3654
abacf776 3655NAME: mail_from
3656TYPE: string
3657DEFAULT: none
3658LOC: Config.EmailFrom
3659DOC_START
3660 From: email-address for mail sent when the cache dies.
3661 The default is to use 'appname@unique_hostname'.
b8c0c06d 3662 Default appname value is "squid", can be changed into
abacf776 3663 src/globals.h before building squid.
3664DOC_END
3665
d084bf20 3666NAME: mail_program
3667TYPE: eol
3668DEFAULT: mail
3669LOC: Config.EmailProgram
3670DOC_START
3671 Email program used to send mail if the cache dies.
846a5e31 3672 The default is "mail". The specified program must comply
d084bf20 3673 with the standard Unix mail syntax:
846a5e31 3674 mail-program recipient < mailfile
3675
d084bf20 3676 Optional command line options can be specified.
3677DOC_END
3678
cccac0a2 3679NAME: cache_effective_user
3680TYPE: string
5483d916 3681DEFAULT: @DEFAULT_CACHE_EFFECTIVE_USER@
cccac0a2 3682LOC: Config.effectiveUser
e3d74828 3683DOC_START
3684 If you start Squid as root, it will change its effective/real
3685 UID/GID to the user specified below. The default is to change
5483d916 3686 to UID of @DEFAULT_CACHE_EFFECTIVE_USER@.
64e288bd 3687 see also; cache_effective_group
e3d74828 3688DOC_END
3689
cccac0a2 3690NAME: cache_effective_group
3691TYPE: string
3692DEFAULT: none
3693LOC: Config.effectiveGroup
3694DOC_START
64e288bd 3695 Squid sets the GID to the effective user's default group ID
3696 (taken from the password file) and supplementary group list
3697 from the groups membership.
3698
e3d74828 3699 If you want Squid to run with a specific GID regardless of
3700 the group memberships of the effective user then set this
3701 to the group (or GID) you want Squid to run as. When set
64e288bd 3702 all other group privileges of the effective user are ignored
e3d74828 3703 and only this GID is effective. If Squid is not started as
64e288bd 3704 root the user starting Squid MUST be member of the specified
e3d74828 3705 group.
64e288bd 3706
3707 This option is not recommended by the Squid Team.
3708 Our preference is for administrators to configure a secure
3709 user account for squid with UID/GID matching system policies.
cccac0a2 3710DOC_END
3711
d3caee79 3712NAME: httpd_suppress_version_string
3713COMMENT: on|off
3714TYPE: onoff
3715DEFAULT: off
3716LOC: Config.onoff.httpd_suppress_version_string
3717DOC_START
3718 Suppress Squid version string info in HTTP headers and HTML error pages.
3719DOC_END
3720
cccac0a2 3721NAME: visible_hostname
3722TYPE: string
3723LOC: Config.visibleHostname
3724DEFAULT: none
3725DOC_START
3726 If you want to present a special hostname in error messages, etc,
7f7db318 3727 define this. Otherwise, the return value of gethostname()
cccac0a2 3728 will be used. If you have multiple caches in a cluster and
3729 get errors about IP-forwarding you must set them to have individual
3730 names with this setting.
3731DOC_END
3732
cccac0a2 3733NAME: unique_hostname
3734TYPE: string
3735LOC: Config.uniqueHostname
3736DEFAULT: none
3737DOC_START
3738 If you want to have multiple machines with the same
7f7db318 3739 'visible_hostname' you must give each machine a different
3740 'unique_hostname' so forwarding loops can be detected.
cccac0a2 3741DOC_END
3742
cccac0a2 3743NAME: hostname_aliases
3744TYPE: wordlist
3745LOC: Config.hostnameAliases
3746DEFAULT: none
3747DOC_START
7f7db318 3748 A list of other DNS names your cache has.
cccac0a2 3749DOC_END
0976f8db 3750
c642c141
AJ
3751NAME: umask
3752TYPE: int
3753LOC: Config.umask
3754DEFAULT: 027
3755DOC_START
3756 Minimum umask which should be enforced while the proxy
3757 is running, in addition to the umask set at startup.
3758
3759 For a traditional octal representation of umasks, start
3760 your value with 0.
3761DOC_END
3762
cccac0a2 3763COMMENT_START
3764 OPTIONS FOR THE CACHE REGISTRATION SERVICE
3765 -----------------------------------------------------------------------------
3766
3767 This section contains parameters for the (optional) cache
3768 announcement service. This service is provided to help
3769 cache administrators locate one another in order to join or
3770 create cache hierarchies.
3771
3772 An 'announcement' message is sent (via UDP) to the registration
3773 service by Squid. By default, the announcement message is NOT
3774 SENT unless you enable it with 'announce_period' below.
3775
3776 The announcement message includes your hostname, plus the
3777 following information from this configuration file:
3778
3779 http_port
3780 icp_port
3781 cache_mgr
3782
3783 All current information is processed regularly and made
3784 available on the Web at http://www.ircache.net/Cache/Tracker/.
3785COMMENT_END
3786
3787NAME: announce_period
3788TYPE: time_t
3789LOC: Config.Announce.period
3790DEFAULT: 0
3791DOC_START
3792 This is how frequently to send cache announcements. The
3793 default is `0' which disables sending the announcement
3794 messages.
3795
3796 To enable announcing your cache, just uncomment the line
3797 below.
3798
3799NOCOMMENT_START
9e7dbc51 3800#To enable announcing your cache, just uncomment the line below.
3801#announce_period 1 day
cccac0a2 3802NOCOMMENT_END
3803DOC_END
3804
cccac0a2 3805NAME: announce_host
3806TYPE: string
3807DEFAULT: tracker.ircache.net
3808LOC: Config.Announce.host
3809DOC_NONE
3810
3811NAME: announce_file
3812TYPE: string
3813DEFAULT: none
3814LOC: Config.Announce.file
3815DOC_NONE
3816
3817NAME: announce_port
3818TYPE: ushort
3819DEFAULT: 3131
3820LOC: Config.Announce.port
3821DOC_START
3822 announce_host and announce_port set the hostname and port
3823 number where the registration message will be sent.
3824
3825 Hostname will default to 'tracker.ircache.net' and port will
3826 default default to 3131. If the 'filename' argument is given,
3827 the contents of that file will be included in the announce
3828 message.
3829DOC_END
3830
8d6275c0 3831COMMENT_START
3832 HTTPD-ACCELERATOR OPTIONS
3833 -----------------------------------------------------------------------------
3834COMMENT_END
3835
cccac0a2 3836NAME: httpd_accel_surrogate_id
f41735ea 3837IFDEF: USE_SQUID_ESI
cccac0a2 3838TYPE: string
3839LOC: Config.Accel.surrogate_id
3840DEFAULT: unset-id
3841DOC_START
3842 Surrogates (http://www.esi.org/architecture_spec_1.0.html)
3843 need an identification token to allow control targeting. Because
3844 a farm of surrogates may all perform the same tasks, they may share
3845 an identification token.
3846DOC_END
3847
3848NAME: http_accel_surrogate_remote
f41735ea 3849IFDEF: USE_SQUID_ESI
cccac0a2 3850COMMENT: on|off
3851TYPE: onoff
3852DEFAULT: off
3853LOC: Config.onoff.surrogate_is_remote
3854DOC_START
3855 Remote surrogates (such as those in a CDN) honour Surrogate-Control: no-store-remote.
3856 Set this to on to have squid behave as a remote surrogate.
3857DOC_END
3858
3859NAME: esi_parser
f41735ea 3860IFDEF: USE_SQUID_ESI
964b44c3 3861COMMENT: libxml2|expat|custom
cccac0a2 3862TYPE: string
3863LOC: ESIParser::Type
3864DEFAULT: custom
3865DOC_START
3866 ESI markup is not strictly XML compatible. The custom ESI parser
3867 will give higher performance, but cannot handle non ASCII character
3868 encodings.
3869DOC_END
0976f8db 3870
9edd9041 3871COMMENT_START
8d6275c0 3872 DELAY POOL PARAMETERS
9edd9041 3873 -----------------------------------------------------------------------------
3874COMMENT_END
3875
3876NAME: delay_pools
3877TYPE: delay_pool_count
3878DEFAULT: 0
3879IFDEF: DELAY_POOLS
3880LOC: Config.Delay
3881DOC_START
3882 This represents the number of delay pools to be used. For example,
3883 if you have one class 2 delay pool and one class 3 delays pool, you
3884 have a total of 2 delay pools.
3885DOC_END
3886
3887NAME: delay_class
3888TYPE: delay_pool_class
3889DEFAULT: none
3890IFDEF: DELAY_POOLS
3891LOC: Config.Delay
3892DOC_START
3893 This defines the class of each delay pool. There must be exactly one
3894 delay_class line for each delay pool. For example, to define two
3895 delay pools, one of class 2 and one of class 3, the settings above
3896 and here would be:
3897
3898Example:
3899 delay_pools 4 # 4 delay pools
3900 delay_class 1 2 # pool 1 is a class 2 pool
3901 delay_class 2 3 # pool 2 is a class 3 pool
3902 delay_class 3 4 # pool 3 is a class 4 pool
3903 delay_class 4 5 # pool 4 is a class 5 pool
3904
3905 The delay pool classes are:
3906
3907 class 1 Everything is limited by a single aggregate
3908 bucket.
3909
3910 class 2 Everything is limited by a single aggregate
3911 bucket as well as an "individual" bucket chosen
3912 from bits 25 through 32 of the IP address.
3913
3914 class 3 Everything is limited by a single aggregate
3915 bucket as well as a "network" bucket chosen
3916 from bits 17 through 24 of the IP address and a
3917 "individual" bucket chosen from bits 17 through
3918 32 of the IP address.
3919
3920 class 4 Everything in a class 3 delay pool, with an
3921 additional limit on a per user basis. This
3922 only takes effect if the username is established
3923 in advance - by forcing authentication in your
3924 http_access rules.
3925
3926 class 5 Requests are grouped according their tag (see
3927 external_acl's tag= reply).
3928
3929 NOTE: If an IP address is a.b.c.d
3930 -> bits 25 through 32 are "d"
3931 -> bits 17 through 24 are "c"
3932 -> bits 17 through 32 are "c * 256 + d"
3933DOC_END
3934
3935NAME: delay_access
3936TYPE: delay_pool_access
3937DEFAULT: none
3938IFDEF: DELAY_POOLS
3939LOC: Config.Delay
3940DOC_START
3941 This is used to determine which delay pool a request falls into.
3942
3943 delay_access is sorted per pool and the matching starts with pool 1,
3944 then pool 2, ..., and finally pool N. The first delay pool where the
3945 request is allowed is selected for the request. If it does not allow
3946 the request to any pool then the request is not delayed (default).
3947
3948 For example, if you want some_big_clients in delay
3949 pool 1 and lotsa_little_clients in delay pool 2:
3950
3951Example:
3952 delay_access 1 allow some_big_clients
3953 delay_access 1 deny all
3954 delay_access 2 allow lotsa_little_clients
3955 delay_access 2 deny all
3956 delay_access 3 allow authenticated_clients
3957DOC_END
3958
3959NAME: delay_parameters
3960TYPE: delay_pool_rates
3961DEFAULT: none
3962IFDEF: DELAY_POOLS
3963LOC: Config.Delay
3964DOC_START
3965 This defines the parameters for a delay pool. Each delay pool has
3966 a number of "buckets" associated with it, as explained in the
3967 description of delay_class. For a class 1 delay pool, the syntax is:
3968
3969delay_parameters pool aggregate
3970
3971 For a class 2 delay pool:
3972
3973delay_parameters pool aggregate individual
3974
3975 For a class 3 delay pool:
3976
3977delay_parameters pool aggregate network individual
3978
3979 For a class 4 delay pool:
3980
3981delay_parameters pool aggregate network individual user
3982
3983 For a class 5 delay pool:
3984
3985delay_parameters pool tag
3986
3987 The variables here are:
3988
3989 pool a pool number - ie, a number between 1 and the
3990 number specified in delay_pools as used in
3991 delay_class lines.
3992
3993 aggregate the "delay parameters" for the aggregate bucket
3994 (class 1, 2, 3).
3995
3996 individual the "delay parameters" for the individual
3997 buckets (class 2, 3).
3998
3999 network the "delay parameters" for the network buckets
4000 (class 3).
4001
4002 user the delay parameters for the user buckets
4003 (class 4).
4004
4005 tag the delay parameters for the tag buckets
4006 (class 5).
4007
4008 A pair of delay parameters is written restore/maximum, where restore is
4009 the number of bytes (not bits - modem and network speeds are usually
4010 quoted in bits) per second placed into the bucket, and maximum is the
4011 maximum number of bytes which can be in the bucket at any time.
4012
4013 For example, if delay pool number 1 is a class 2 delay pool as in the
4014 above example, and is being used to strictly limit each host to 64kbps
4015 (plus overheads), with no overall limit, the line is:
4016
4017delay_parameters 1 -1/-1 8000/8000
4018
4019 Note that the figure -1 is used to represent "unlimited".
4020
4021 And, if delay pool number 2 is a class 3 delay pool as in the above
4022 example, and you want to limit it to a total of 256kbps (strict limit)
4023 with each 8-bit network permitted 64kbps (strict limit) and each
4024 individual host permitted 4800bps with a bucket maximum size of 64kb
4025 to permit a decent web page to be downloaded at a decent speed
4026 (if the network is not being limited due to overuse) but slow down
4027 large downloads more significantly:
4028
4029delay_parameters 2 32000/32000 8000/8000 600/8000
4030
4031 There must be one delay_parameters line for each delay pool.
4032
4033 Finally, for a class 4 delay pool as in the example - each user will
4034 be limited to 128Kb no matter how many workstations they are logged into.:
4035
4036delay_parameters 4 32000/32000 8000/8000 600/64000 16000/16000
4037DOC_END
4038
4039NAME: delay_initial_bucket_level
4040COMMENT: (percent, 0-100)
4041TYPE: ushort
4042DEFAULT: 50
4043IFDEF: DELAY_POOLS
4044LOC: Config.Delay.initial
4045DOC_START
4046 The initial bucket percentage is used to determine how much is put
4047 in each bucket when squid starts, is reconfigured, or first notices
4048 a host accessing it (in class 2 and class 3, individual hosts and
4049 networks only have buckets associated with them once they have been
4050 "seen" by squid).
4051DOC_END
4052
cccac0a2 4053COMMENT_START
8d6275c0 4054 WCCPv1 AND WCCPv2 CONFIGURATION OPTIONS
cccac0a2 4055 -----------------------------------------------------------------------------
4056COMMENT_END
4057
8d6275c0 4058NAME: wccp_router
4059TYPE: address
4060LOC: Config.Wccp.router
4061DEFAULT: 0.0.0.0
4062IFDEF: USE_WCCP
e313ab0a
AJ
4063DOC_START
4064 Use this option to define your WCCP ``home'' router for
4065 Squid.
4066
4067 wccp_router supports a single WCCP(v1) router
4068
4069 wccp2_router supports multiple WCCPv2 routers
4070
4071 only one of the two may be used at the same time and defines
4072 which version of WCCP to use.
4073DOC_END
df2eec10 4074
8d6275c0 4075NAME: wccp2_router
9fb4efad 4076TYPE: IpAddress_list
8d6275c0 4077LOC: Config.Wccp2.router
cccac0a2 4078DEFAULT: none
8d6275c0 4079IFDEF: USE_WCCPv2
cccac0a2 4080DOC_START
8d6275c0 4081 Use this option to define your WCCP ``home'' router for
4082 Squid.
cccac0a2 4083
8d6275c0 4084 wccp_router supports a single WCCP(v1) router
cccac0a2 4085
8d6275c0 4086 wccp2_router supports multiple WCCPv2 routers
cccac0a2 4087
8d6275c0 4088 only one of the two may be used at the same time and defines
4089 which version of WCCP to use.
4090DOC_END
4091
4092NAME: wccp_version
cccac0a2 4093TYPE: int
8d6275c0 4094LOC: Config.Wccp.version
4095DEFAULT: 4
4096IFDEF: USE_WCCP
cccac0a2 4097DOC_START
8d6275c0 4098 This directive is only relevant if you need to set up WCCP(v1)
4099 to some very old and end-of-life Cisco routers. In all other
4100 setups it must be left unset or at the default setting.
4101 It defines an internal version in the WCCP(v1) protocol,
4102 with version 4 being the officially documented protocol.
cccac0a2 4103
8d6275c0 4104 According to some users, Cisco IOS 11.2 and earlier only
4105 support WCCP version 3. If you're using that or an earlier
4106 version of IOS, you may need to change this value to 3, otherwise
4107 do not specify this parameter.
cccac0a2 4108DOC_END
4109
8d6275c0 4110NAME: wccp2_rebuild_wait
4111TYPE: onoff
4112LOC: Config.Wccp2.rebuildwait
4113DEFAULT: on
4114IFDEF: USE_WCCPv2
4115DOC_START
4116 If this is enabled Squid will wait for the cache dir rebuild to finish
4117 before sending the first wccp2 HereIAm packet
4118DOC_END
cccac0a2 4119
8d6275c0 4120NAME: wccp2_forwarding_method
e313ab0a 4121TYPE: wccp2_method
8d6275c0 4122LOC: Config.Wccp2.forwarding_method
451c4786 4123DEFAULT: gre
8d6275c0 4124IFDEF: USE_WCCPv2
cccac0a2 4125DOC_START
699acd19 4126 WCCP2 allows the setting of forwarding methods between the
8d6275c0 4127 router/switch and the cache. Valid values are as follows:
cccac0a2 4128
451c4786
AJ
4129 gre - GRE encapsulation (forward the packet in a GRE/WCCP tunnel)
4130 l2 - L2 redirect (forward the packet using Layer 2/MAC rewriting)
cccac0a2 4131
8d6275c0 4132 Currently (as of IOS 12.4) cisco routers only support GRE.
4133 Cisco switches only support the L2 redirect assignment method.
cccac0a2 4134DOC_END
4135
8d6275c0 4136NAME: wccp2_return_method
e313ab0a 4137TYPE: wccp2_method
8d6275c0 4138LOC: Config.Wccp2.return_method
451c4786 4139DEFAULT: gre
8d6275c0 4140IFDEF: USE_WCCPv2
cccac0a2 4141DOC_START
699acd19 4142 WCCP2 allows the setting of return methods between the
8d6275c0 4143 router/switch and the cache for packets that the cache
4144 decides not to handle. Valid values are as follows:
cccac0a2 4145
451c4786
AJ
4146 gre - GRE encapsulation (forward the packet in a GRE/WCCP tunnel)
4147 l2 - L2 redirect (forward the packet using Layer 2/MAC rewriting)
cccac0a2 4148
8d6275c0 4149 Currently (as of IOS 12.4) cisco routers only support GRE.
4150 Cisco switches only support the L2 redirect assignment.
cccac0a2 4151
699acd19 4152 If the "ip wccp redirect exclude in" command has been
8d6275c0 4153 enabled on the cache interface, then it is still safe for
4154 the proxy server to use a l2 redirect method even if this
4155 option is set to GRE.
cccac0a2 4156DOC_END
4157
8d6275c0 4158NAME: wccp2_assignment_method
451c4786 4159TYPE: wccp2_amethod
8d6275c0 4160LOC: Config.Wccp2.assignment_method
451c4786 4161DEFAULT: hash
8d6275c0 4162IFDEF: USE_WCCPv2
cccac0a2 4163DOC_START
8d6275c0 4164 WCCP2 allows the setting of methods to assign the WCCP hash
4165 Valid values are as follows:
cccac0a2 4166
451c4786
AJ
4167 hash - Hash assignment
4168 mask - Mask assignment
cccac0a2 4169
8d6275c0 4170 As a general rule, cisco routers support the hash assignment method
4171 and cisco switches support the mask assignment method.
4172DOC_END
cccac0a2 4173
8d6275c0 4174NAME: wccp2_service
4175TYPE: wccp2_service
4176LOC: Config.Wccp2.info
4177DEFAULT: none
4178DEFAULT_IF_NONE: standard 0
4179IFDEF: USE_WCCPv2
4180DOC_START
4181 WCCP2 allows for multiple traffic services. There are two
4182 types: "standard" and "dynamic". The standard type defines
4183 one service id - http (id 0). The dynamic service ids can be from
4184 51 to 255 inclusive. In order to use a dynamic service id
4185 one must define the type of traffic to be redirected; this is done
4186 using the wccp2_service_info option.
4187
4188 The "standard" type does not require a wccp2_service_info option,
4189 just specifying the service id will suffice.
4190
4191 MD5 service authentication can be enabled by adding
4192 "password=<password>" to the end of this service declaration.
4193
4194 Examples:
4195
4196 wccp2_service standard 0 # for the 'web-cache' standard service
4197 wccp2_service dynamic 80 # a dynamic service type which will be
4198 # fleshed out with subsequent options.
4199 wccp2_service standard 0 password=foo
8d6275c0 4200DOC_END
4201
4202NAME: wccp2_service_info
4203TYPE: wccp2_service_info
4204LOC: Config.Wccp2.info
4205DEFAULT: none
4206IFDEF: USE_WCCPv2
4207DOC_START
4208 Dynamic WCCPv2 services require further information to define the
4209 traffic you wish to have diverted.
4210
4211 The format is:
4212
4213 wccp2_service_info <id> protocol=<protocol> flags=<flag>,<flag>..
4214 priority=<priority> ports=<port>,<port>..
4215
4216 The relevant WCCPv2 flags:
4217 + src_ip_hash, dst_ip_hash
005fe566 4218 + source_port_hash, dst_port_hash
8d6275c0 4219 + src_ip_alt_hash, dst_ip_alt_hash
4220 + src_port_alt_hash, dst_port_alt_hash
4221 + ports_source
4222
4223 The port list can be one to eight entries.
4224
4225 Example:
4226
4227 wccp2_service_info 80 protocol=tcp flags=src_ip_hash,ports_source
4228 priority=240 ports=80
4229
4230 Note: the service id must have been defined by a previous
4231 'wccp2_service dynamic <id>' entry.
4232DOC_END
4233
4234NAME: wccp2_weight
4235TYPE: int
4236LOC: Config.Wccp2.weight
4237DEFAULT: 10000
4238IFDEF: USE_WCCPv2
4239DOC_START
4240 Each cache server gets assigned a set of the destination
4241 hash proportional to their weight.
4242DOC_END
4243
4244NAME: wccp_address
4245TYPE: address
4246LOC: Config.Wccp.address
4247DEFAULT: 0.0.0.0
4248IFDEF: USE_WCCP
4249DOC_NONE
df2eec10 4250
8d6275c0 4251NAME: wccp2_address
4252TYPE: address
4253LOC: Config.Wccp2.address
4254DEFAULT: 0.0.0.0
4255IFDEF: USE_WCCPv2
4256DOC_START
4257 Use this option if you require WCCP to use a specific
4258 interface address.
4259
4260 The default behavior is to not bind to any specific address.
4261DOC_END
4262
4263COMMENT_START
4264 PERSISTENT CONNECTION HANDLING
4265 -----------------------------------------------------------------------------
4266
4267 Also see "pconn_timeout" in the TIMEOUTS section
4268COMMENT_END
4269
4270NAME: client_persistent_connections
4271TYPE: onoff
4272LOC: Config.onoff.client_pconns
4273DEFAULT: on
4274DOC_NONE
4275
4276NAME: server_persistent_connections
4277TYPE: onoff
4278LOC: Config.onoff.server_pconns
4279DEFAULT: on
4280DOC_START
4281 Persistent connection support for clients and servers. By
4282 default, Squid uses persistent connections (when allowed)
4283 with its clients and servers. You can use these options to
4284 disable persistent connections with clients and/or servers.
4285DOC_END
4286
4287NAME: persistent_connection_after_error
4288TYPE: onoff
4289LOC: Config.onoff.error_pconns
4290DEFAULT: off
4291DOC_START
4292 With this directive the use of persistent connections after
4293 HTTP errors can be disabled. Useful if you have clients
4294 who fail to handle errors on persistent connections proper.
4295DOC_END
4296
4297NAME: detect_broken_pconn
4298TYPE: onoff
4299LOC: Config.onoff.detect_broken_server_pconns
4300DEFAULT: off
4301DOC_START
4302 Some servers have been found to incorrectly signal the use
4303 of HTTP/1.0 persistent connections even on replies not
4304 compatible, causing significant delays. This server problem
4305 has mostly been seen on redirects.
4306
4307 By enabling this directive Squid attempts to detect such
4308 broken replies and automatically assume the reply is finished
4309 after 10 seconds timeout.
4310DOC_END
4311
4312COMMENT_START
4313 CACHE DIGEST OPTIONS
4314 -----------------------------------------------------------------------------
4315COMMENT_END
4316
4317NAME: digest_generation
4318IFDEF: USE_CACHE_DIGESTS
4319TYPE: onoff
4320LOC: Config.onoff.digest_generation
4321DEFAULT: on
4322DOC_START
4323 This controls whether the server will generate a Cache Digest
4324 of its contents. By default, Cache Digest generation is
13e917b5 4325 enabled if Squid is compiled with --enable-cache-digests defined.
8d6275c0 4326DOC_END
4327
4328NAME: digest_bits_per_entry
4329IFDEF: USE_CACHE_DIGESTS
4330TYPE: int
4331LOC: Config.digest.bits_per_entry
4332DEFAULT: 5
4333DOC_START
4334 This is the number of bits of the server's Cache Digest which
4335 will be associated with the Digest entry for a given HTTP
4336 Method and URL (public key) combination. The default is 5.
4337DOC_END
4338
4339NAME: digest_rebuild_period
4340IFDEF: USE_CACHE_DIGESTS
4341COMMENT: (seconds)
4342TYPE: time_t
4343LOC: Config.digest.rebuild_period
4344DEFAULT: 1 hour
4345DOC_START
749ceff8 4346 This is the wait time between Cache Digest rebuilds.
8d6275c0 4347DOC_END
4348
4349NAME: digest_rewrite_period
4350COMMENT: (seconds)
4351IFDEF: USE_CACHE_DIGESTS
4352TYPE: time_t
4353LOC: Config.digest.rewrite_period
4354DEFAULT: 1 hour
4355DOC_START
749ceff8 4356 This is the wait time between Cache Digest writes to
8d6275c0 4357 disk.
4358DOC_END
4359
4360NAME: digest_swapout_chunk_size
4361COMMENT: (bytes)
4362TYPE: b_size_t
4363IFDEF: USE_CACHE_DIGESTS
4364LOC: Config.digest.swapout_chunk_size
4365DEFAULT: 4096 bytes
4366DOC_START
4367 This is the number of bytes of the Cache Digest to write to
4368 disk at a time. It defaults to 4096 bytes (4KB), the Squid
4369 default swap page.
4370DOC_END
4371
4372NAME: digest_rebuild_chunk_percentage
4373COMMENT: (percent, 0-100)
4374IFDEF: USE_CACHE_DIGESTS
4375TYPE: int
4376LOC: Config.digest.rebuild_chunk_percentage
4377DEFAULT: 10
4378DOC_START
4379 This is the percentage of the Cache Digest to be scanned at a
4380 time. By default it is set to 10% of the Cache Digest.
4381DOC_END
4382
1db9eacd 4383COMMENT_START
5473c134 4384 SNMP OPTIONS
1db9eacd 4385 -----------------------------------------------------------------------------
4386COMMENT_END
4387
5473c134 4388NAME: snmp_port
4389TYPE: ushort
4390LOC: Config.Port.snmp
87630341 4391DEFAULT: 0
5473c134 4392IFDEF: SQUID_SNMP
8d6275c0 4393DOC_START
87630341 4394 The port number where Squid listens for SNMP requests. To enable
4395 SNMP support set this to a suitable port number. Port number
4396 3401 is often used for the Squid SNMP agent. By default it's
4397 set to "0" (disabled)
4398NOCOMMENT_START
4399#snmp_port 3401
4400NOCOMMENT_END
8d6275c0 4401DOC_END
4402
5473c134 4403NAME: snmp_access
4404TYPE: acl_access
4405LOC: Config.accessList.snmp
8d6275c0 4406DEFAULT: none
5473c134 4407DEFAULT_IF_NONE: deny all
4408IFDEF: SQUID_SNMP
8d6275c0 4409DOC_START
5473c134 4410 Allowing or denying access to the SNMP port.
8d6275c0 4411
5473c134 4412 All access to the agent is denied by default.
4413 usage:
8d6275c0 4414
5473c134 4415 snmp_access allow|deny [!]aclname ...
8d6275c0 4416
5473c134 4417Example:
4418 snmp_access allow snmppublic localhost
4419 snmp_access deny all
cccac0a2 4420DOC_END
4421
5473c134 4422NAME: snmp_incoming_address
4423TYPE: address
4424LOC: Config.Addrs.snmp_incoming
4425DEFAULT: 0.0.0.0
4426IFDEF: SQUID_SNMP
4427DOC_NONE
df2eec10 4428
5473c134 4429NAME: snmp_outgoing_address
4430TYPE: address
4431LOC: Config.Addrs.snmp_outgoing
4432DEFAULT: 255.255.255.255
4433IFDEF: SQUID_SNMP
cccac0a2 4434DOC_START
df2eec10 4435 Just like 'udp_incoming_address', but for the SNMP port.
cccac0a2 4436
5473c134 4437 snmp_incoming_address is used for the SNMP socket receiving
4438 messages from SNMP agents.
4439 snmp_outgoing_address is used for SNMP packets returned to SNMP
4440 agents.
cccac0a2 4441
5473c134 4442 The default snmp_incoming_address (0.0.0.0) is to listen on all
4443 available network interfaces.
cccac0a2 4444
5473c134 4445 If snmp_outgoing_address is set to 255.255.255.255 (the default)
4446 it will use the same socket as snmp_incoming_address. Only
4447 change this if you want to have SNMP replies sent using another
4448 address than where this Squid listens for SNMP queries.
cccac0a2 4449
5473c134 4450 NOTE, snmp_incoming_address and snmp_outgoing_address can not have
4451 the same value since they both use port 3401.
cccac0a2 4452DOC_END
4453
5473c134 4454COMMENT_START
4455 ICP OPTIONS
4456 -----------------------------------------------------------------------------
4457COMMENT_END
4458
4459NAME: icp_port udp_port
4460TYPE: ushort
4461DEFAULT: 0
4462LOC: Config.Port.icp
cccac0a2 4463DOC_START
5473c134 4464 The port number where Squid sends and receives ICP queries to
4465 and from neighbor caches. The standard UDP port for ICP is 3130.
4466 Default is disabled (0).
4467NOCOMMENT_START
df2eec10 4468#icp_port @DEFAULT_ICP_PORT@
5473c134 4469NOCOMMENT_END
cccac0a2 4470DOC_END
4471
5473c134 4472NAME: htcp_port
4473IFDEF: USE_HTCP
4474TYPE: ushort
87630341 4475DEFAULT: 0
5473c134 4476LOC: Config.Port.htcp
cccac0a2 4477DOC_START
5473c134 4478 The port number where Squid sends and receives HTCP queries to
87630341 4479 and from neighbor caches. To turn it on you want to set it to
4480 4827. By default it is set to "0" (disabled).
4481NOCOMMENT_START
4482#htcp_port 4827
4483NOCOMMENT_END
cccac0a2 4484DOC_END
4485
4486NAME: log_icp_queries
4487COMMENT: on|off
4488TYPE: onoff
4489DEFAULT: on
4490LOC: Config.onoff.log_udp
4491DOC_START
4492 If set, ICP queries are logged to access.log. You may wish
4493 do disable this if your ICP load is VERY high to speed things
4494 up or to simplify log analysis.
4495DOC_END
4496
5473c134 4497NAME: udp_incoming_address
4498TYPE: address
4499LOC:Config.Addrs.udp_incoming
4500DEFAULT: 0.0.0.0
8524d4b2 4501DOC_START
4502 udp_incoming_address is used for UDP packets received from other
4503 caches.
4504
4505 The default behavior is to not bind to any specific address.
4506
4507 Only change this if you want to have all UDP queries received on
4508 a specific interface/address.
4509
4510 NOTE: udp_incoming_address is used by the ICP, HTCP, and DNS
4511 modules. Altering it will affect all of them in the same manner.
4512
4513 see also; udp_outgoing_address
4514
4515 NOTE, udp_incoming_address and udp_outgoing_address can not
4516 have the same value since they both use the same port.
4517DOC_END
cccac0a2 4518
5473c134 4519NAME: udp_outgoing_address
4520TYPE: address
4521LOC: Config.Addrs.udp_outgoing
4522DEFAULT: 255.255.255.255
cccac0a2 4523DOC_START
8524d4b2 4524 udp_outgoing_address is used for UDP packets sent out to other
5473c134 4525 caches.
cccac0a2 4526
5473c134 4527 The default behavior is to not bind to any specific address.
cccac0a2 4528
8524d4b2 4529 Instead it will use the same socket as udp_incoming_address.
4530 Only change this if you want to have UDP queries sent using another
4531 address than where this Squid listens for UDP queries from other
5473c134 4532 caches.
4533
8524d4b2 4534 NOTE: udp_outgoing_address is used by the ICP, HTCP, and DNS
4535 modules. Altering it will affect all of them in the same manner.
4536
4537 see also; udp_incoming_address
4538
5473c134 4539 NOTE, udp_incoming_address and udp_outgoing_address can not
8524d4b2 4540 have the same value since they both use the same port.
cccac0a2 4541DOC_END
4542
3d1e3e43 4543NAME: icp_hit_stale
4544COMMENT: on|off
4545TYPE: onoff
4546DEFAULT: off
4547LOC: Config.onoff.icp_hit_stale
4548DOC_START
4549 If you want to return ICP_HIT for stale cache objects, set this
4550 option to 'on'. If you have sibling relationships with caches
4551 in other administrative domains, this should be 'off'. If you only
4552 have sibling relationships with caches under your control,
4553 it is probably okay to set this to 'on'.
4554 If set to 'on', your siblings should use the option "allow-miss"
4555 on their cache_peer lines for connecting to you.
4556DOC_END
4557
5473c134 4558NAME: minimum_direct_hops
cccac0a2 4559TYPE: int
5473c134 4560DEFAULT: 4
4561LOC: Config.minDirectHops
cccac0a2 4562DOC_START
5473c134 4563 If using the ICMP pinging stuff, do direct fetches for sites
4564 which are no more than this many hops away.
cccac0a2 4565DOC_END
4566
5473c134 4567NAME: minimum_direct_rtt
4568TYPE: int
4569DEFAULT: 400
4570LOC: Config.minDirectRtt
cccac0a2 4571DOC_START
5473c134 4572 If using the ICMP pinging stuff, do direct fetches for sites
4573 which are no more than this many rtt milliseconds away.
cccac0a2 4574DOC_END
4575
cccac0a2 4576NAME: netdb_low
4577TYPE: int
4578DEFAULT: 900
4579LOC: Config.Netdb.low
4580DOC_NONE
4581
4582NAME: netdb_high
4583TYPE: int
4584DEFAULT: 1000
4585LOC: Config.Netdb.high
4586DOC_START
4587 The low and high water marks for the ICMP measurement
4588 database. These are counts, not percents. The defaults are
4589 900 and 1000. When the high water mark is reached, database
4590 entries will be deleted until the low mark is reached.
4591DOC_END
4592
cccac0a2 4593NAME: netdb_ping_period
4594TYPE: time_t
4595LOC: Config.Netdb.period
4596DEFAULT: 5 minutes
4597DOC_START
4598 The minimum period for measuring a site. There will be at
4599 least this much delay between successive pings to the same
4600 network. The default is five minutes.
4601DOC_END
4602
cccac0a2 4603NAME: query_icmp
4604COMMENT: on|off
4605TYPE: onoff
4606DEFAULT: off
4607LOC: Config.onoff.query_icmp
4608DOC_START
4609 If you want to ask your peers to include ICMP data in their ICP
4610 replies, enable this option.
4611
4612 If your peer has configured Squid (during compilation) with
7f7db318 4613 '--enable-icmp' that peer will send ICMP pings to origin server
4614 sites of the URLs it receives. If you enable this option the
cccac0a2 4615 ICP replies from that peer will include the ICMP data (if available).
4616 Then, when choosing a parent cache, Squid will choose the parent with
4617 the minimal RTT to the origin server. When this happens, the
4618 hierarchy field of the access.log will be
4619 "CLOSEST_PARENT_MISS". This option is off by default.
4620DOC_END
4621
4622NAME: test_reachability
4623COMMENT: on|off
4624TYPE: onoff
4625DEFAULT: off
4626LOC: Config.onoff.test_reachability
4627DOC_START
4628 When this is 'on', ICP MISS replies will be ICP_MISS_NOFETCH
4629 instead of ICP_MISS if the target host is NOT in the ICMP
4630 database, or has a zero RTT.
4631DOC_END
4632
5473c134 4633NAME: icp_query_timeout
4634COMMENT: (msec)
4635DEFAULT: 0
4636TYPE: int
4637LOC: Config.Timeout.icp_query
4c3ef9b2 4638DOC_START
5473c134 4639 Normally Squid will automatically determine an optimal ICP
4640 query timeout value based on the round-trip-time of recent ICP
4641 queries. If you want to override the value determined by
4642 Squid, set this 'icp_query_timeout' to a non-zero value. This
4643 value is specified in MILLISECONDS, so, to use a 2-second
4644 timeout (the old default), you would write:
4c3ef9b2 4645
5473c134 4646 icp_query_timeout 2000
4c3ef9b2 4647DOC_END
4648
5473c134 4649NAME: maximum_icp_query_timeout
4650COMMENT: (msec)
4651DEFAULT: 2000
4652TYPE: int
4653LOC: Config.Timeout.icp_query_max
cccac0a2 4654DOC_START
5473c134 4655 Normally the ICP query timeout is determined dynamically. But
4656 sometimes it can lead to very large values (say 5 seconds).
4657 Use this option to put an upper limit on the dynamic timeout
4658 value. Do NOT use this option to always use a fixed (instead
4659 of a dynamic) timeout value. To set a fixed timeout see the
4660 'icp_query_timeout' directive.
cccac0a2 4661DOC_END
4662
5473c134 4663NAME: minimum_icp_query_timeout
4664COMMENT: (msec)
4665DEFAULT: 5
4666TYPE: int
4667LOC: Config.Timeout.icp_query_min
cccac0a2 4668DOC_START
5473c134 4669 Normally the ICP query timeout is determined dynamically. But
4670 sometimes it can lead to very small timeouts, even lower than
4671 the normal latency variance on your link due to traffic.
4672 Use this option to put an lower limit on the dynamic timeout
4673 value. Do NOT use this option to always use a fixed (instead
4674 of a dynamic) timeout value. To set a fixed timeout see the
4675 'icp_query_timeout' directive.
cccac0a2 4676DOC_END
4677
5473c134 4678NAME: background_ping_rate
4679COMMENT: time-units
4680TYPE: time_t
4681DEFAULT: 10 seconds
4682LOC: Config.backgroundPingRate
cccac0a2 4683DOC_START
5473c134 4684 Controls how often the ICP pings are sent to siblings that
4685 have background-ping set.
cccac0a2 4686DOC_END
4687
5473c134 4688COMMENT_START
4689 MULTICAST ICP OPTIONS
4690 -----------------------------------------------------------------------------
4691COMMENT_END
4692
4693NAME: mcast_groups
4694TYPE: wordlist
4695LOC: Config.mcast_group_list
8c01ada0 4696DEFAULT: none
4697DOC_START
5473c134 4698 This tag specifies a list of multicast groups which your server
4699 should join to receive multicasted ICP queries.
8c01ada0 4700
5473c134 4701 NOTE! Be very careful what you put here! Be sure you
4702 understand the difference between an ICP _query_ and an ICP
4703 _reply_. This option is to be set only if you want to RECEIVE
4704 multicast queries. Do NOT set this option to SEND multicast
4705 ICP (use cache_peer for that). ICP replies are always sent via
4706 unicast, so this option does not affect whether or not you will
4707 receive replies from multicast group members.
8c01ada0 4708
5473c134 4709 You must be very careful to NOT use a multicast address which
4710 is already in use by another group of caches.
8c01ada0 4711
5473c134 4712 If you are unsure about multicast, please read the Multicast
4713 chapter in the Squid FAQ (http://www.squid-cache.org/FAQ/).
8c01ada0 4714
5473c134 4715 Usage: mcast_groups 239.128.16.128 224.0.1.20
8c01ada0 4716
5473c134 4717 By default, Squid doesn't listen on any multicast groups.
4718DOC_END
8c01ada0 4719
5473c134 4720NAME: mcast_miss_addr
4721IFDEF: MULTICAST_MISS_STREAM
4722TYPE: address
4723LOC: Config.mcast_miss.addr
4724DEFAULT: 255.255.255.255
4725DOC_START
4726 If you enable this option, every "cache miss" URL will
4727 be sent out on the specified multicast address.
cccac0a2 4728
5473c134 4729 Do not enable this option unless you are are absolutely
4730 certain you understand what you are doing.
cccac0a2 4731DOC_END
4732
5473c134 4733NAME: mcast_miss_ttl
4734IFDEF: MULTICAST_MISS_STREAM
4735TYPE: ushort
4736LOC: Config.mcast_miss.ttl
4737DEFAULT: 16
cccac0a2 4738DOC_START
5473c134 4739 This is the time-to-live value for packets multicasted
4740 when multicasting off cache miss URLs is enabled. By
4741 default this is set to 'site scope', i.e. 16.
4742DOC_END
cccac0a2 4743
5473c134 4744NAME: mcast_miss_port
4745IFDEF: MULTICAST_MISS_STREAM
4746TYPE: ushort
4747LOC: Config.mcast_miss.port
4748DEFAULT: 3135
4749DOC_START
4750 This is the port number to be used in conjunction with
4751 'mcast_miss_addr'.
4752DOC_END
cccac0a2 4753
5473c134 4754NAME: mcast_miss_encode_key
4755IFDEF: MULTICAST_MISS_STREAM
4756TYPE: string
4757LOC: Config.mcast_miss.encode_key
4758DEFAULT: XXXXXXXXXXXXXXXX
4759DOC_START
4760 The URLs that are sent in the multicast miss stream are
4761 encrypted. This is the encryption key.
4762DOC_END
8c01ada0 4763
5473c134 4764NAME: mcast_icp_query_timeout
4765COMMENT: (msec)
4766DEFAULT: 2000
4767TYPE: int
4768LOC: Config.Timeout.mcast_icp_query
4769DOC_START
4770 For multicast peers, Squid regularly sends out ICP "probes" to
4771 count how many other peers are listening on the given multicast
4772 address. This value specifies how long Squid should wait to
4773 count all the replies. The default is 2000 msec, or 2
4774 seconds.
cccac0a2 4775DOC_END
4776
5473c134 4777COMMENT_START
4778 INTERNAL ICON OPTIONS
4779 -----------------------------------------------------------------------------
4780COMMENT_END
4781
cccac0a2 4782NAME: icon_directory
4783TYPE: string
4784LOC: Config.icons.directory
4785DEFAULT: @DEFAULT_ICON_DIR@
4786DOC_START
4787 Where the icons are stored. These are normally kept in
4788 @DEFAULT_ICON_DIR@
4789DOC_END
4790
f024c970 4791NAME: global_internal_static
4792TYPE: onoff
4793LOC: Config.onoff.global_internal_static
4794DEFAULT: on
4795DOC_START
4796 This directive controls is Squid should intercept all requests for
4797 /squid-internal-static/ no matter which host the URL is requesting
4798 (default on setting), or if nothing special should be done for
4799 such URLs (off setting). The purpose of this directive is to make
4800 icons etc work better in complex cache hierarchies where it may
4801 not always be possible for all corners in the cache mesh to reach
4802 the server generating a directory listing.
4803DOC_END
4804
5473c134 4805NAME: short_icon_urls
4806TYPE: onoff
4807LOC: Config.icons.use_short_names
4808DEFAULT: on
4809DOC_START
4810 If this is enabled Squid will use short URLs for icons.
4811 If disabled it will revert to the old behavior of including
4812 it's own name and port in the URL.
4813
4814 If you run a complex cache hierarchy with a mix of Squid and
4815 other proxies you may need to disable this directive.
4816DOC_END
4817
4818COMMENT_START
4819 ERROR PAGE OPTIONS
4820 -----------------------------------------------------------------------------
4821COMMENT_END
4822
4823NAME: error_directory
4824TYPE: string
4825LOC: Config.errorDirectory
43000484 4826DEFAULT: none
5473c134 4827DOC_START
4828 If you wish to create your own versions of the default
43000484
AJ
4829 error files to customize them to suit your company copy
4830 the error/template files to another directory and point
4831 this tag at them.
4832
4833 WARNING: This option will disable multi-language support
4834 on error pages if used.
5473c134 4835
4836 The squid developers are interested in making squid available in
4837 a wide variety of languages. If you are making translations for a
43000484 4838 language that Squid does not currently provide please consider
5473c134 4839 contributing your translation back to the project.
43000484
AJ
4840 http://wiki.squid-cache.org/Translations
4841
4842 The squid developers working on translations are happy to supply drop-in
4843 translated error files in exchange for any new language contributions.
4844DOC_END
4845
4846NAME: error_default_language
4847IFDEF: USE_ERR_LOCALES
4848TYPE: string
4849LOC: Config.errorDefaultLanguage
4850DEFAULT: none
4851DOC_START
4852 Set the default language which squid will send error pages in
4853 if no existing translation matches the clients language
4854 preferences.
4855
4856 If unset (default) generic English will be used.
4857
4858 The squid developers are interested in making squid available in
4859 a wide variety of languages. If you are interested in making
4860 translations for any language see the squid wiki for details.
4861 http://wiki.squid-cache.org/Translations
5473c134 4862DOC_END
4863
c411820c
AJ
4864NAME: error_log_languages
4865IFDEF: USE_ERR_LOCALES
4866TYPE: onoff
4867LOC: Config.errorLogMissingLanguages
4868DEFAULT: on
4869DOC_START
4870 Log to cache.log what languages users are attempting to
4871 auto-negotiate for translations.
4872
4873 Successful negotiations are not logged. Only failures
4874 have meaning to indicate that Squid may need an upgrade
0c49f10e 4875 of its error page translations.
c411820c
AJ
4876DOC_END
4877
5b52cb6c
AJ
4878NAME: err_page_stylesheet
4879TYPE: string
4880LOC: Config.errorStylesheet
4881DEFAULT: @DEFAULT_CONFIG_DIR@/errorpage.css
4882DOC_START
4883 CSS Stylesheet to pattern the display of Squid default error pages.
4884
4885 For information on CSS see http://www.w3.org/Style/CSS/
4886DOC_END
4887
5473c134 4888NAME: err_html_text
4889TYPE: eol
4890LOC: Config.errHtmlText
4891DEFAULT: none
4892DOC_START
4893 HTML text to include in error messages. Make this a "mailto"
4894 URL to your admin address, or maybe just a link to your
4895 organizations Web page.
4896
4897 To include this in your error messages, you must rewrite
4898 the error template files (found in the "errors" directory).
4899 Wherever you want the 'err_html_text' line to appear,
4900 insert a %L tag in the error template file.
4901DOC_END
4902
4903NAME: email_err_data
4904COMMENT: on|off
4905TYPE: onoff
4906LOC: Config.onoff.emailErrData
4907DEFAULT: on
4908DOC_START
4909 If enabled, information about the occurred error will be
4910 included in the mailto links of the ERR pages (if %W is set)
4911 so that the email body contains the data.
4912 Syntax is <A HREF="mailto:%w%W">%w</A>
4913DOC_END
4914
4915NAME: deny_info
4916TYPE: denyinfo
4917LOC: Config.denyInfoList
4918DEFAULT: none
4919DOC_START
4920 Usage: deny_info err_page_name acl
4921 or deny_info http://... acl
43000484 4922 or deny_info TCP_RESET acl
5473c134 4923
4924 This can be used to return a ERR_ page for requests which
4925 do not pass the 'http_access' rules. Squid remembers the last
4926 acl it evaluated in http_access, and if a 'deny_info' line exists
4927 for that ACL Squid returns a corresponding error page.
4928
4929 The acl is typically the last acl on the http_access deny line which
4930 denied access. The exceptions to this rule are:
4931 - When Squid needs to request authentication credentials. It's then
4932 the first authentication related acl encountered
4933 - When none of the http_access lines matches. It's then the last
4934 acl processed on the last http_access line.
4935
43000484
AJ
4936 NP: If providing your own custom error pages with error_directory
4937 you may also specify them by your custom file name:
4938 Example: deny_info ERR_CUSTOM_ACCESS_DENIED bad_guys
5473c134 4939
4940 Alternatively you can specify an error URL. The browsers will
4941 get redirected (302) to the specified URL. %s in the redirection
4942 URL will be replaced by the requested URL.
4943
4944 Alternatively you can tell Squid to reset the TCP connection
4945 by specifying TCP_RESET.
4946DOC_END
4947
4948COMMENT_START
4949 OPTIONS INFLUENCING REQUEST FORWARDING
4950 -----------------------------------------------------------------------------
4951COMMENT_END
4952
4953NAME: nonhierarchical_direct
e72a0ec0 4954TYPE: onoff
5473c134 4955LOC: Config.onoff.nonhierarchical_direct
e72a0ec0 4956DEFAULT: on
4957DOC_START
5473c134 4958 By default, Squid will send any non-hierarchical requests
4959 (matching hierarchy_stoplist or not cacheable request type) direct
4960 to origin servers.
e72a0ec0 4961
5473c134 4962 If you set this to off, Squid will prefer to send these
4963 requests to parents.
0b0cfcf2 4964
5473c134 4965 Note that in most configurations, by turning this off you will only
4966 add latency to these request without any improvement in global hit
4967 ratio.
0b0cfcf2 4968
5473c134 4969 If you are inside an firewall see never_direct instead of
4970 this directive.
8d6275c0 4971DOC_END
0b0cfcf2 4972
5473c134 4973NAME: prefer_direct
8d6275c0 4974TYPE: onoff
5473c134 4975LOC: Config.onoff.prefer_direct
8d6275c0 4976DEFAULT: off
4977DOC_START
5473c134 4978 Normally Squid tries to use parents for most requests. If you for some
4979 reason like it to first try going direct and only use a parent if
4980 going direct fails set this to on.
0b0cfcf2 4981
5473c134 4982 By combining nonhierarchical_direct off and prefer_direct on you
4983 can set up Squid to use a parent as a backup path if going direct
4984 fails.
4985
4986 Note: If you want Squid to use parents for all requests see
4987 the never_direct directive. prefer_direct only modifies how Squid
4988 acts on cacheable requests.
cccac0a2 4989DOC_END
4990
5473c134 4991NAME: always_direct
8d6275c0 4992TYPE: acl_access
5473c134 4993LOC: Config.accessList.AlwaysDirect
0b0cfcf2 4994DEFAULT: none
0b0cfcf2 4995DOC_START
5473c134 4996 Usage: always_direct allow|deny [!]aclname ...
0b0cfcf2 4997
5473c134 4998 Here you can use ACL elements to specify requests which should
4999 ALWAYS be forwarded by Squid to the origin servers without using
5000 any peers. For example, to always directly forward requests for
5001 local servers ignoring any parents or siblings you may have use
5002 something like:
0b0cfcf2 5003
5473c134 5004 acl local-servers dstdomain my.domain.net
5005 always_direct allow local-servers
0b0cfcf2 5006
5473c134 5007 To always forward FTP requests directly, use
f16fbc82 5008
5473c134 5009 acl FTP proto FTP
5010 always_direct allow FTP
cccac0a2 5011
5473c134 5012 NOTE: There is a similar, but opposite option named
5013 'never_direct'. You need to be aware that "always_direct deny
5014 foo" is NOT the same thing as "never_direct allow foo". You
5015 may need to use a deny rule to exclude a more-specific case of
5016 some other rule. Example:
8d6275c0 5017
5473c134 5018 acl local-external dstdomain external.foo.net
5019 acl local-servers dstdomain .foo.net
5020 always_direct deny local-external
5021 always_direct allow local-servers
8d6275c0 5022
5473c134 5023 NOTE: If your goal is to make the client forward the request
5024 directly to the origin server bypassing Squid then this needs
5025 to be done in the client configuration. Squid configuration
5026 can only tell Squid how Squid should fetch the object.
8d6275c0 5027
5473c134 5028 NOTE: This directive is not related to caching. The replies
5029 is cached as usual even if you use always_direct. To not cache
5030 the replies see no_cache.
5031
5032 This option replaces some v1.1 options such as local_domain
5033 and local_ip.
cccac0a2 5034DOC_END
0976f8db 5035
5473c134 5036NAME: never_direct
5037TYPE: acl_access
5038LOC: Config.accessList.NeverDirect
5039DEFAULT: none
8d6275c0 5040DOC_START
5473c134 5041 Usage: never_direct allow|deny [!]aclname ...
5042
5043 never_direct is the opposite of always_direct. Please read
5044 the description for always_direct if you have not already.
5045
5046 With 'never_direct' you can use ACL elements to specify
5047 requests which should NEVER be forwarded directly to origin
5048 servers. For example, to force the use of a proxy for all
5049 requests, except those in your local domain use something like:
5050
5051 acl local-servers dstdomain .foo.net
5473c134 5052 never_direct deny local-servers
5053 never_direct allow all
5054
5055 or if Squid is inside a firewall and there are local intranet
5056 servers inside the firewall use something like:
5057
5058 acl local-intranet dstdomain .foo.net
5059 acl local-external dstdomain external.foo.net
5060 always_direct deny local-external
5061 always_direct allow local-intranet
5062 never_direct allow all
5063
5064 This option replaces some v1.1 options such as inside_firewall
5065 and firewall_ip.
8d6275c0 5066DOC_END
0976f8db 5067
5473c134 5068COMMENT_START
5069 ADVANCED NETWORKING OPTIONS
5070 -----------------------------------------------------------------------------
5071COMMENT_END
5072
cccac0a2 5073NAME: incoming_icp_average
5074TYPE: int
5075DEFAULT: 6
5076LOC: Config.comm_incoming.icp_average
5077DOC_NONE
5078
5079NAME: incoming_http_average
5080TYPE: int
5081DEFAULT: 4
5082LOC: Config.comm_incoming.http_average
5083DOC_NONE
5084
5085NAME: incoming_dns_average
5086TYPE: int
5087DEFAULT: 4
5088LOC: Config.comm_incoming.dns_average
5089DOC_NONE
5090
5091NAME: min_icp_poll_cnt
5092TYPE: int
5093DEFAULT: 8
5094LOC: Config.comm_incoming.icp_min_poll
5095DOC_NONE
5096
5097NAME: min_dns_poll_cnt
5098TYPE: int
5099DEFAULT: 8
5100LOC: Config.comm_incoming.dns_min_poll
5101DOC_NONE
5102
5103NAME: min_http_poll_cnt
5104TYPE: int
5105DEFAULT: 8
5106LOC: Config.comm_incoming.http_min_poll
5107DOC_START
5473c134 5108 Heavy voodoo here. I can't even believe you are reading this.
5109 Are you crazy? Don't even think about adjusting these unless
5110 you understand the algorithms in comm_select.c first!
5111DOC_END
5112
5113NAME: accept_filter
5473c134 5114TYPE: string
5115DEFAULT: none
5116LOC: Config.accept_filter
5117DOC_START
0b4d4be5 5118 FreeBSD:
5119
5473c134 5120 The name of an accept(2) filter to install on Squid's
5121 listen socket(s). This feature is perhaps specific to
5122 FreeBSD and requires support in the kernel.
5123
5124 The 'httpready' filter delays delivering new connections
2324cda2 5125 to Squid until a full HTTP request has been received.
0b4d4be5 5126 See the accf_http(9) man page for details.
5127
5128 The 'dataready' filter delays delivering new connections
5129 to Squid until there is some data to process.
5130 See the accf_dataready(9) man page for details.
5131
5132 Linux:
5133
5134 The 'data' filter delays delivering of new connections
5135 to Squid until there is some data to process by TCP_ACCEPT_DEFER.
5136 You may optionally specify a number of seconds to wait by
5137 'data=N' where N is the number of seconds. Defaults to 30
5138 if not specified. See the tcp(7) man page for details.
5473c134 5139EXAMPLE:
0b4d4be5 5140# FreeBSD
5473c134 5141accept_filter httpready
0b4d4be5 5142# Linux
5143accept_filter data
5473c134 5144DOC_END
5145
5146NAME: tcp_recv_bufsize
5147COMMENT: (bytes)
5148TYPE: b_size_t
5149DEFAULT: 0 bytes
5150LOC: Config.tcpRcvBufsz
5151DOC_START
5152 Size of receive buffer to set for TCP sockets. Probably just
5153 as easy to change your kernel's default. Set to zero to use
5154 the default buffer size.
5155DOC_END
5156
5157COMMENT_START
5158 ICAP OPTIONS
5159 -----------------------------------------------------------------------------
5160COMMENT_END
5161
5162NAME: icap_enable
5163TYPE: onoff
5164IFDEF: ICAP_CLIENT
5165COMMENT: on|off
26cc52cb 5166LOC: Adaptation::Icap::TheConfig.onoff
5473c134 5167DEFAULT: off
5168DOC_START
53e738c6 5169 If you want to enable the ICAP module support, set this to on.
5473c134 5170DOC_END
5171
5172NAME: icap_connect_timeout
5173TYPE: time_t
5174DEFAULT: none
26cc52cb 5175LOC: Adaptation::Icap::TheConfig.connect_timeout_raw
5473c134 5176IFDEF: ICAP_CLIENT
5177DOC_START
5178 This parameter specifies how long to wait for the TCP connect to
5179 the requested ICAP server to complete before giving up and either
5180 terminating the HTTP transaction or bypassing the failure.
5181
5182 The default for optional services is peer_connect_timeout.
5183 The default for essential services is connect_timeout.
5184 If this option is explicitly set, its value applies to all services.
5185DOC_END
5186
5187NAME: icap_io_timeout
5188COMMENT: time-units
5189TYPE: time_t
5190DEFAULT: none
26cc52cb 5191LOC: Adaptation::Icap::TheConfig.io_timeout_raw
5473c134 5192IFDEF: ICAP_CLIENT
5193DOC_START
5194 This parameter specifies how long to wait for an I/O activity on
5195 an established, active ICAP connection before giving up and
5196 either terminating the HTTP transaction or bypassing the
5197 failure.
5198
5199 The default is read_timeout.
5200DOC_END
5201
5202NAME: icap_service_failure_limit
5203TYPE: int
5204IFDEF: ICAP_CLIENT
26cc52cb 5205LOC: Adaptation::Icap::TheConfig.service_failure_limit
5473c134 5206DEFAULT: 10
5207DOC_START
5208 The limit specifies the number of failures that Squid tolerates
5209 when establishing a new TCP connection with an ICAP service. If
5210 the number of failures exceeds the limit, the ICAP service is
5211 not used for new ICAP requests until it is time to refresh its
5212 OPTIONS. The per-service failure counter is reset to zero each
5213 time Squid fetches new service OPTIONS.
5214
5215 A negative value disables the limit. Without the limit, an ICAP
5216 service will not be considered down due to connectivity failures
5217 between ICAP OPTIONS requests.
cccac0a2 5218DOC_END
5219
5473c134 5220NAME: icap_service_revival_delay
cccac0a2 5221TYPE: int
5473c134 5222IFDEF: ICAP_CLIENT
26cc52cb 5223LOC: Adaptation::Icap::TheConfig.service_revival_delay
5473c134 5224DEFAULT: 180
cccac0a2 5225DOC_START
5473c134 5226 The delay specifies the number of seconds to wait after an ICAP
5227 OPTIONS request failure before requesting the options again. The
5228 failed ICAP service is considered "down" until fresh OPTIONS are
5229 fetched.
cccac0a2 5230
5473c134 5231 The actual delay cannot be smaller than the hardcoded minimum
5232 delay of 30 seconds.
cccac0a2 5233DOC_END
5234
5473c134 5235NAME: icap_preview_enable
cccac0a2 5236TYPE: onoff
5473c134 5237IFDEF: ICAP_CLIENT
5238COMMENT: on|off
26cc52cb 5239LOC: Adaptation::Icap::TheConfig.preview_enable
ac7a62f9 5240DEFAULT: on
cccac0a2 5241DOC_START
ac7a62f9 5242 The ICAP Preview feature allows the ICAP server to handle the
5243 HTTP message by looking only at the beginning of the message body
5244 or even without receiving the body at all. In some environments,
5245 previews greatly speedup ICAP processing.
5246
5247 During an ICAP OPTIONS transaction, the server may tell Squid what
5248 HTTP messages should be previewed and how big the preview should be.
5249 Squid will not use Preview if the server did not request one.
5250
5251 To disable ICAP Preview for all ICAP services, regardless of
5252 individual ICAP server OPTIONS responses, set this option to "off".
5253Example:
5254icap_preview_enable off
cccac0a2 5255DOC_END
5256
5473c134 5257NAME: icap_preview_size
5258TYPE: int
5259IFDEF: ICAP_CLIENT
26cc52cb 5260LOC: Adaptation::Icap::TheConfig.preview_size
5473c134 5261DEFAULT: -1
cccac0a2 5262DOC_START
53e738c6 5263 The default size of preview data to be sent to the ICAP server.
5264 -1 means no preview. This value might be overwritten on a per server
5265 basis by OPTIONS requests.
cccac0a2 5266DOC_END
5267
5473c134 5268NAME: icap_default_options_ttl
5269TYPE: int
5270IFDEF: ICAP_CLIENT
26cc52cb 5271LOC: Adaptation::Icap::TheConfig.default_options_ttl
5473c134 5272DEFAULT: 60
cccac0a2 5273DOC_START
53e738c6 5274 The default TTL value for ICAP OPTIONS responses that don't have
5473c134 5275 an Options-TTL header.
cccac0a2 5276DOC_END
5277
5473c134 5278NAME: icap_persistent_connections
5279TYPE: onoff
5280IFDEF: ICAP_CLIENT
5281COMMENT: on|off
26cc52cb 5282LOC: Adaptation::Icap::TheConfig.reuse_connections
5473c134 5283DEFAULT: on
cccac0a2 5284DOC_START
5473c134 5285 Whether or not Squid should use persistent connections to
5286 an ICAP server.
cccac0a2 5287DOC_END
5288
5473c134 5289NAME: icap_send_client_ip
5290TYPE: onoff
5291IFDEF: ICAP_CLIENT
5292COMMENT: on|off
26cc52cb 5293LOC: Adaptation::Icap::TheConfig.send_client_ip
5473c134 5294DEFAULT: off
cccac0a2 5295DOC_START
53e738c6 5296 This adds the header "X-Client-IP" to ICAP requests.
cccac0a2 5297DOC_END
5298
5473c134 5299NAME: icap_send_client_username
5300TYPE: onoff
5301IFDEF: ICAP_CLIENT
5302COMMENT: on|off
26cc52cb 5303LOC: Adaptation::Icap::TheConfig.send_client_username
5473c134 5304DEFAULT: off
cccac0a2 5305DOC_START
5473c134 5306 This sends authenticated HTTP client username (if available) to
5307 the ICAP service. The username value is encoded based on the
5308 icap_client_username_encode option and is sent using the header
5309 specified by the icap_client_username_header option.
cccac0a2 5310DOC_END
5311
5473c134 5312NAME: icap_client_username_header
cccac0a2 5313TYPE: string
5473c134 5314IFDEF: ICAP_CLIENT
26cc52cb 5315LOC: Adaptation::Icap::TheConfig.client_username_header
5473c134 5316DEFAULT: X-Client-Username
cccac0a2 5317DOC_START
5473c134 5318 ICAP request header name to use for send_client_username.
cccac0a2 5319DOC_END
5320
5473c134 5321NAME: icap_client_username_encode
cccac0a2 5322TYPE: onoff
5473c134 5323IFDEF: ICAP_CLIENT
5324COMMENT: on|off
26cc52cb 5325LOC: Adaptation::Icap::TheConfig.client_username_encode
5473c134 5326DEFAULT: off
cccac0a2 5327DOC_START
5473c134 5328 Whether to base64 encode the authenticated client username.
cccac0a2 5329DOC_END
5330
5473c134 5331NAME: icap_service
5332TYPE: icap_service_type
5333IFDEF: ICAP_CLIENT
26cc52cb 5334LOC: Adaptation::Icap::TheConfig
5473c134 5335DEFAULT: none
cccac0a2 5336DOC_START
53e738c6 5337 Defines a single ICAP service
cccac0a2 5338
53e738c6 5339 icap_service servicename vectoring_point bypass service_url
7d90757b 5340
53e738c6 5341 vectoring_point = reqmod_precache|reqmod_postcache|respmod_precache|respmod_postcache
f3db09e2 5342 This specifies at which point of transaction processing the
5343 ICAP service should be activated. *_postcache vectoring points
5344 are not yet supported.
53e738c6 5345 bypass = 1|0
f3db09e2 5346 If set to 1, the ICAP service is treated as optional. If the
5347 service cannot be reached or malfunctions, Squid will try to
5348 ignore any errors and process the message as if the service
5349 was not enabled. No all ICAP errors can be bypassed.
5350 If set to 0, the ICAP service is treated as essential and all
5351 ICAP errors will result in an error page returned to the
5352 HTTP client.
53e738c6 5353 service_url = icap://servername:port/service
5473c134 5354
5473c134 5355Example:
5356icap_service service_1 reqmod_precache 0 icap://icap1.mydomain.net:1344/reqmod
5357icap_service service_2 respmod_precache 0 icap://icap2.mydomain.net:1344/respmod
cccac0a2 5358DOC_END
5359
5473c134 5360NAME: icap_class
5361TYPE: icap_class_type
5362IFDEF: ICAP_CLIENT
21a26d31 5363LOC: none
5473c134 5364DEFAULT: none
cccac0a2 5365DOC_START
62c7f90e
AR
5366 This depricated option was documented to define an ICAP service
5367 chain, even though it actually defined a set of similar, redundant
5368 services, and the chains were not supported.
5473c134 5369
62c7f90e
AR
5370 To define a set of redundant services, please use the
5371 adaptation_service_set directive.
5473c134 5372
62c7f90e
AR
5373 If you need adaptation service chains, patches or sponsorship
5374 is welcome.
cccac0a2 5375DOC_END
5376
5473c134 5377NAME: icap_access
5378TYPE: icap_access_type
5379IFDEF: ICAP_CLIENT
21a26d31 5380LOC: none
cccac0a2 5381DEFAULT: none
cccac0a2 5382DOC_START
62c7f90e
AR
5383 This option is depricated. Please use adaptation_access, which
5384 has the same ICAP functionality, but comes with better
5385 documentation, and eCAP support.
cccac0a2 5386DOC_END
5387
57afc994
AR
5388COMMENT_START
5389 eCAP OPTIONS
5390 -----------------------------------------------------------------------------
5391COMMENT_END
5392
21a26d31
AR
5393NAME: ecap_enable
5394TYPE: onoff
5395IFDEF: USE_ECAP
5396COMMENT: on|off
574b508c 5397LOC: Adaptation::Ecap::TheConfig.onoff
21a26d31
AR
5398DEFAULT: off
5399DOC_START
5400 Controls whether eCAP support is enabled.
5401DOC_END
5402
5403NAME: ecap_service
5404TYPE: ecap_service_type
5405IFDEF: USE_ECAP
574b508c 5406LOC: Adaptation::Ecap::TheConfig
21a26d31
AR
5407DEFAULT: none
5408DOC_START
5409 Defines a single eCAP service
5410
5411 ecap_service servicename vectoring_point bypass service_url
5412
5413 vectoring_point = reqmod_precache|reqmod_postcache|respmod_precache|respmod_postcache
5414 This specifies at which point of transaction processing the
5415 eCAP service should be activated. *_postcache vectoring points
5416 are not yet supported.
5417 bypass = 1|0
5418 If set to 1, the eCAP service is treated as optional. If the
5419 service cannot be reached or malfunctions, Squid will try to
5420 ignore any errors and process the message as if the service
5421 was not enabled. No all eCAP errors can be bypassed.
5422 If set to 0, the eCAP service is treated as essential and all
5423 eCAP errors will result in an error page returned to the
5424 HTTP client.
5425 service_url = ecap://vendor/service_name?custom&cgi=style&parameters=optional
5426
5427Example:
5428ecap_service service_1 reqmod_precache 0 ecap://filters-R-us/leakDetector?on_error=block
5429ecap_service service_2 respmod_precache 1 icap://filters-R-us/virusFilter?config=/etc/vf.cfg
5430DOC_END
5431
57afc994
AR
5432NAME: loadable_modules
5433TYPE: wordlist
5434IFDEF: USE_LOADABLE_MODULES
5435LOC: Config.loadable_module_names
5436DEFAULT: none
5437DOC_START
5438 Instructs Squid to load the specified dynamic module(s) or activate
5439 preloaded module(s).
5440Example:
5441loadable_modules @DEFAULT_PREFIX@/lib/MinimalAdapter.so
5442DOC_END
5443
62c7f90e
AR
5444COMMENT_START
5445 MESSAGE ADAPTATION OPTIONS
5446 -----------------------------------------------------------------------------
5447COMMENT_END
5448
5449NAME: adaptation_service_set
5450TYPE: adaptation_service_set_type
5451IFDEF: USE_ADAPTATION
5452LOC: none
5453DEFAULT: none
5454DOC_START
5455
5456 Defines a named adaptation service set. The set is populated in
5457 the order of adaptation_service_set directives in this file.
5458 When adaptation ACLs are processed, the first and only the first
5459 applicable adaptation service from the set will be used. Thus,
5460 the set should group similar, redundant services, rather than a
5461 chain of complementary services.
5462
5463 If you have a single adaptation service, you do not need to
5464 define a set containing it because adaptation_access accepts
5465 service names.
5466
5467 See also: adaptation_access
5468
5469Example:
5470adaptation_service_set svcBlocker urlFilterPrimary urlFilterBackup
5471adaptation service_set svcLogger loggerLocal loggerRemote
5472DOC_END
5473
5474NAME: adaptation_access
5475TYPE: adaptation_access_type
5476IFDEF: USE_ADAPTATION
5477LOC: none
5478DEFAULT: none
5479DOC_START
5480 Sends an HTTP transaction to an ICAP or eCAP adaptation service.
5481
5482 adaptation_access service_name allow|deny [!]aclname...
5483 adaptation_access set_name allow|deny [!]aclname...
5484
5485 At each supported vectoring point, the adaptation_access
5486 statements are processed in the order they appear in this
5487 configuration file. Statements pointing to the following services
5488 are ignored (i.e., skipped without checking their ACL):
5489
5490 - services serving different vectoring points
5491 - "broken-but-bypassable" services
5492 - "up" services configured to ignore such transactions
5493 (e.g., based on the ICAP Transfer-Ignore header).
5494
5495 When a set_name is used, all services in the set are checked
5496 using the same rules, to find the first applicable one. See
5497 adaptation_service_set for details.
5498
5499 If an access list is checked and there is a match, the
5500 processing stops: For an "allow" rule, the corresponding
5501 adaptation service is used for the transaction. For a "deny"
5502 rule, no adaptation service is activated.
5503
5504 It is currently not possible to apply more than one adaptation
5505 service at the same vectoring point to the same HTTP transaction.
5506
5507 See also: icap_service and ecap_service
5508
5509Example:
5510adaptation_access service_1 allow all
5511DOC_END
5512
5473c134 5513COMMENT_START
5514 DNS OPTIONS
5515 -----------------------------------------------------------------------------
5516COMMENT_END
5517
5518NAME: check_hostnames
cccac0a2 5519TYPE: onoff
cccac0a2 5520DEFAULT: off
5473c134 5521LOC: Config.onoff.check_hostnames
cccac0a2 5522DOC_START
5473c134 5523 For security and stability reasons Squid can check
5524 hostnames for Internet standard RFC compliance. If you want
5525 Squid to perform these checks turn this directive on.
cccac0a2 5526DOC_END
5527
5473c134 5528NAME: allow_underscore
cccac0a2 5529TYPE: onoff
cccac0a2 5530DEFAULT: on
5473c134 5531LOC: Config.onoff.allow_underscore
cccac0a2 5532DOC_START
5473c134 5533 Underscore characters is not strictly allowed in Internet hostnames
5534 but nevertheless used by many sites. Set this to off if you want
5535 Squid to be strict about the standard.
5536 This check is performed only when check_hostnames is set to on.
cccac0a2 5537DOC_END
5538
5473c134 5539NAME: cache_dns_program
cccac0a2 5540TYPE: string
5473c134 5541IFDEF: USE_DNSSERVERS
5542DEFAULT: @DEFAULT_DNSSERVER@
5543LOC: Config.Program.dnsserver
cccac0a2 5544DOC_START
5473c134 5545 Specify the location of the executable for dnslookup process.
cccac0a2 5546DOC_END
5547
5473c134 5548NAME: dns_children
5549TYPE: int
5550IFDEF: USE_DNSSERVERS
5551DEFAULT: 5
5552LOC: Config.dnsChildren
58850d15 5553DOC_START
5473c134 5554 The number of processes spawn to service DNS name lookups.
5555 For heavily loaded caches on large servers, you should
5556 probably increase this value to at least 10. The maximum
5557 is 32. The default is 5.
58850d15 5558
5473c134 5559 You must have at least one dnsserver process.
58850d15 5560DOC_END
5561
5473c134 5562NAME: dns_retransmit_interval
5563TYPE: time_t
5564DEFAULT: 5 seconds
5565LOC: Config.Timeout.idns_retransmit
5566IFDEF: !USE_DNSSERVERS
cccac0a2 5567DOC_START
5473c134 5568 Initial retransmit interval for DNS queries. The interval is
5569 doubled each time all configured DNS servers have been tried.
cccac0a2 5570
cccac0a2 5571DOC_END
5572
5473c134 5573NAME: dns_timeout
5574TYPE: time_t
5575DEFAULT: 2 minutes
5576LOC: Config.Timeout.idns_query
5577IFDEF: !USE_DNSSERVERS
cccac0a2 5578DOC_START
5473c134 5579 DNS Query timeout. If no response is received to a DNS query
5580 within this time all DNS servers for the queried domain
5581 are assumed to be unavailable.
cccac0a2 5582DOC_END
5583
5473c134 5584NAME: dns_defnames
5585COMMENT: on|off
cccac0a2 5586TYPE: onoff
cccac0a2 5587DEFAULT: off
5473c134 5588LOC: Config.onoff.res_defnames
cccac0a2 5589DOC_START
5473c134 5590 Normally the RES_DEFNAMES resolver option is disabled
5591 (see res_init(3)). This prevents caches in a hierarchy
5592 from interpreting single-component hostnames locally. To allow
5593 Squid to handle single-component names, enable this option.
cccac0a2 5594DOC_END
5595
5473c134 5596NAME: dns_nameservers
5597TYPE: wordlist
5598DEFAULT: none
5599LOC: Config.dns_nameservers
cccac0a2 5600DOC_START
5473c134 5601 Use this if you want to specify a list of DNS name servers
5602 (IP addresses) to use instead of those given in your
5603 /etc/resolv.conf file.
5604 On Windows platforms, if no value is specified here or in
5605 the /etc/resolv.conf file, the list of DNS name servers are
5606 taken from the Windows registry, both static and dynamic DHCP
5607 configurations are supported.
cccac0a2 5608
5473c134 5609 Example: dns_nameservers 10.0.0.1 192.172.0.4
cccac0a2 5610DOC_END
5611
5473c134 5612NAME: hosts_file
cccac0a2 5613TYPE: string
5473c134 5614DEFAULT: @DEFAULT_HOSTS@
5615LOC: Config.etcHostsPath
cccac0a2 5616DOC_START
5473c134 5617 Location of the host-local IP name-address associations
5618 database. Most Operating Systems have such a file on different
5619 default locations:
5620 - Un*X & Linux: /etc/hosts
5621 - Windows NT/2000: %SystemRoot%\system32\drivers\etc\hosts
5622 (%SystemRoot% value install default is c:\winnt)
5623 - Windows XP/2003: %SystemRoot%\system32\drivers\etc\hosts
5624 (%SystemRoot% value install default is c:\windows)
5625 - Windows 9x/Me: %windir%\hosts
5626 (%windir% value is usually c:\windows)
5627 - Cygwin: /etc/hosts
cccac0a2 5628
5473c134 5629 The file contains newline-separated definitions, in the
5630 form ip_address_in_dotted_form name [name ...] names are
5631 whitespace-separated. Lines beginning with an hash (#)
5632 character are comments.
cccac0a2 5633
5473c134 5634 The file is checked at startup and upon configuration.
5635 If set to 'none', it won't be checked.
5636 If append_domain is used, that domain will be added to
5637 domain-local (i.e. not containing any dot character) host
5638 definitions.
cccac0a2 5639DOC_END
5640
5473c134 5641NAME: append_domain
5642TYPE: string
5643LOC: Config.appendDomain
5644DEFAULT: none
6a2f3fcf 5645DOC_START
5473c134 5646 Appends local domain name to hostnames without any dots in
5647 them. append_domain must begin with a period.
5648
5649 Be warned there are now Internet names with no dots in
5650 them using only top-domain names, so setting this may
5651 cause some Internet sites to become unavailable.
5652
5653Example:
5654 append_domain .yourdomain.com
6a2f3fcf 5655DOC_END
5656
5473c134 5657NAME: ignore_unknown_nameservers
5658TYPE: onoff
5659LOC: Config.onoff.ignore_unknown_nameservers
df6fd596 5660DEFAULT: on
5661DOC_START
5473c134 5662 By default Squid checks that DNS responses are received
5663 from the same IP addresses they are sent to. If they
5664 don't match, Squid ignores the response and writes a warning
5665 message to cache.log. You can allow responses from unknown
5666 nameservers by setting this option to 'off'.
df6fd596 5667DOC_END
5668
cc192b50 5669NAME: dns_v4_fallback
5670TYPE: onoff
5671DEFAULT: on
5672LOC: Config.onoff.dns_require_A
5673DOC_START
5674 Standard practice with DNS is to lookup either A or AAAA records
5675 and use the results if it succeeds. Only looking up the other if
5676 the first attempt fails or otherwise produces no results.
5677
5678 That policy however will cause squid to produce error pages for some
5679 servers that advertise AAAA but are unreachable over IPv6.
5680
5681 If this is ON squid will always lookup both AAAA and A, using both.
5682 If this is OFF squid will lookup AAAA and only try A if none found.
5683
5684 WARNING: There are some possibly unwanted side-effects with this on:
5685 *) Doubles the load placed by squid on the DNS network.
5686 *) May negatively impact connection delay times.
5687DOC_END
5688
6bc15a4f 5689NAME: ipcache_size
5690COMMENT: (number of entries)
5691TYPE: int
5692DEFAULT: 1024
5693LOC: Config.ipcache.size
5694DOC_NONE
5695
5696NAME: ipcache_low
5697COMMENT: (percent)
5698TYPE: int
5699DEFAULT: 90
5700LOC: Config.ipcache.low
5701DOC_NONE
5702
5703NAME: ipcache_high
5704COMMENT: (percent)
5705TYPE: int
5706DEFAULT: 95
5707LOC: Config.ipcache.high
5708DOC_START
5709 The size, low-, and high-water marks for the IP cache.
5710DOC_END
5711
5712NAME: fqdncache_size
5713COMMENT: (number of entries)
5714TYPE: int
5715DEFAULT: 1024
5716LOC: Config.fqdncache.size
5717DOC_START
5718 Maximum number of FQDN cache entries.
5719DOC_END
5720
a58ff010 5721COMMENT_START
5473c134 5722 MISCELLANEOUS
a58ff010 5723 -----------------------------------------------------------------------------
5724COMMENT_END
5725
5473c134 5726NAME: memory_pools
a58ff010 5727COMMENT: on|off
5473c134 5728TYPE: onoff
5729DEFAULT: on
5730LOC: Config.onoff.mem_pools
a58ff010 5731DOC_START
5473c134 5732 If set, Squid will keep pools of allocated (but unused) memory
5733 available for future use. If memory is a premium on your
5734 system and you believe your malloc library outperforms Squid
5735 routines, disable this.
a58ff010 5736DOC_END
5737
5473c134 5738NAME: memory_pools_limit
5739COMMENT: (bytes)
5740TYPE: b_size_t
5741DEFAULT: 5 MB
5742LOC: Config.MemPools.limit
ec1245f8 5743DOC_START
5473c134 5744 Used only with memory_pools on:
5745 memory_pools_limit 50 MB
ec1245f8 5746
5473c134 5747 If set to a non-zero value, Squid will keep at most the specified
5748 limit of allocated (but unused) memory in memory pools. All free()
5749 requests that exceed this limit will be handled by your malloc
5750 library. Squid does not pre-allocate any memory, just safe-keeps
5751 objects that otherwise would be free()d. Thus, it is safe to set
5752 memory_pools_limit to a reasonably high value even if your
5753 configuration will use less memory.
ec1245f8 5754
5473c134 5755 If set to zero, Squid will keep all memory it can. That is, there
5756 will be no limit on the total amount of memory used for safe-keeping.
ec1245f8 5757
5473c134 5758 To disable memory allocation optimization, do not set
5759 memory_pools_limit to 0. Set memory_pools to "off" instead.
5760
5761 An overhead for maintaining memory pools is not taken into account
5762 when the limit is checked. This overhead is close to four bytes per
5763 object kept. However, pools may actually _save_ memory because of
5764 reduced memory thrashing in your malloc library.
ec1245f8 5765DOC_END
5766
5473c134 5767NAME: forwarded_for
67c06f0d
AJ
5768COMMENT: on|off|transparent|truncate|delete
5769TYPE: string
5473c134 5770DEFAULT: on
5771LOC: opt_forwarded_for
5f8252d2 5772DOC_START
67c06f0d
AJ
5773 If set to "on", Squid will append your client's IP address
5774 in the HTTP requests it forwards. By default it looks like:
5f8252d2 5775
5473c134 5776 X-Forwarded-For: 192.1.2.3
5777
67c06f0d 5778 If set to "off", it will appear as
5473c134 5779
5780 X-Forwarded-For: unknown
67c06f0d
AJ
5781
5782 If set to "transparent", Squid will not alter the
5783 X-Forwarded-For header in any way.
5784
5785 If set to "delete", Squid will delete the entire
5786 X-Forwarded-For header.
5787
5788 If set to "truncate", Squid will remove all existing
5789 X-Forwarded-For entries, and place itself as the sole entry.
5f8252d2 5790DOC_END
5791
5473c134 5792NAME: cachemgr_passwd
5793TYPE: cachemgrpasswd
5794DEFAULT: none
5795LOC: Config.passwd_list
5f8252d2 5796DOC_START
5473c134 5797 Specify passwords for cachemgr operations.
5f8252d2 5798
5473c134 5799 Usage: cachemgr_passwd password action action ...
5800
5801 Some valid actions are (see cache manager menu for a full list):
5802 5min
5803 60min
5804 asndb
5805 authenticator
5806 cbdata
5807 client_list
5808 comm_incoming
5809 config *
5810 counters
5811 delay
5812 digest_stats
5813 dns
5814 events
5815 filedescriptors
5816 fqdncache
5817 histograms
5818 http_headers
5819 info
5820 io
5821 ipcache
5822 mem
5823 menu
5824 netdb
5825 non_peers
5826 objects
5827 offline_toggle *
5828 pconn
5829 peer_select
b360c477 5830 reconfigure *
5473c134 5831 redirector
5832 refresh
5833 server_list
5834 shutdown *
5835 store_digest
5836 storedir
5837 utilization
5838 via_headers
5839 vm_objects
5840
5841 * Indicates actions which will not be performed without a
5842 valid password, others can be performed if not listed here.
5843
5844 To disable an action, set the password to "disable".
5845 To allow performing an action without a password, set the
5846 password to "none".
5847
5848 Use the keyword "all" to set the same password for all actions.
5849
5850Example:
5851 cachemgr_passwd secret shutdown
5852 cachemgr_passwd lesssssssecret info stats/objects
5853 cachemgr_passwd disable all
5f8252d2 5854DOC_END
5855
5473c134 5856NAME: client_db
a58ff010 5857COMMENT: on|off
5473c134 5858TYPE: onoff
5859DEFAULT: on
5860LOC: Config.onoff.client_db
a58ff010 5861DOC_START
5473c134 5862 If you want to disable collecting per-client statistics,
5863 turn off client_db here.
a58ff010 5864DOC_END
5865
5473c134 5866NAME: refresh_all_ims
5867COMMENT: on|off
5868TYPE: onoff
5869DEFAULT: off
5870LOC: Config.onoff.refresh_all_ims
a58ff010 5871DOC_START
5473c134 5872 When you enable this option, squid will always check
5873 the origin server for an update when a client sends an
5874 If-Modified-Since request. Many browsers use IMS
5875 requests when the user requests a reload, and this
5876 ensures those clients receive the latest version.
a58ff010 5877
5473c134 5878 By default (off), squid may return a Not Modified response
5879 based on the age of the cached version.
78e8cfc4 5880DOC_END
5881
5473c134 5882NAME: reload_into_ims
5883IFDEF: HTTP_VIOLATIONS
12b91c99 5884COMMENT: on|off
5473c134 5885TYPE: onoff
5886DEFAULT: off
5887LOC: Config.onoff.reload_into_ims
12b91c99 5888DOC_START
5473c134 5889 When you enable this option, client no-cache or ``reload''
5890 requests will be changed to If-Modified-Since requests.
5891 Doing this VIOLATES the HTTP standard. Enabling this
5892 feature could make you liable for problems which it
5893 causes.
5894
5895 see also refresh_pattern for a more selective approach.
12b91c99 5896DOC_END
5897
5473c134 5898NAME: maximum_single_addr_tries
5899TYPE: int
5900LOC: Config.retry.maxtries
5901DEFAULT: 1
a58ff010 5902DOC_START
5473c134 5903 This sets the maximum number of connection attempts for a
5904 host that only has one address (for multiple-address hosts,
5905 each address is tried once).
5906
5907 The default value is one attempt, the (not recommended)
5908 maximum is 255 tries. A warning message will be generated
5909 if it is set to a value greater than ten.
5910
5911 Note: This is in addition to the request re-forwarding which
5912 takes place if Squid fails to get a satisfying response.
a58ff010 5913DOC_END
5914
5473c134 5915NAME: retry_on_error
a58ff010 5916TYPE: onoff
5473c134 5917LOC: Config.retry.onerror
a58ff010 5918DEFAULT: off
5919DOC_START
5473c134 5920 If set to on Squid will automatically retry requests when
5921 receiving an error response. This is mainly useful if you
5922 are in a complex cache hierarchy to work around access
5923 control errors.
5f8252d2 5924DOC_END
5925
5473c134 5926NAME: as_whois_server
5f8252d2 5927TYPE: string
5473c134 5928LOC: Config.as_whois_server
5929DEFAULT: whois.ra.net
5930DEFAULT_IF_NONE: whois.ra.net
5f8252d2 5931DOC_START
5473c134 5932 WHOIS server to query for AS numbers. NOTE: AS numbers are
5933 queried only when Squid starts up, not for every request.
5f8252d2 5934DOC_END
5935
5473c134 5936NAME: offline_mode
5f8252d2 5937TYPE: onoff
5473c134 5938LOC: Config.onoff.offline
5f8252d2 5939DEFAULT: off
5940DOC_START
5473c134 5941 Enable this option and Squid will never try to validate cached
5942 objects.
a58ff010 5943DOC_END
5944
5473c134 5945NAME: uri_whitespace
5946TYPE: uri_whitespace
5947LOC: Config.uri_whitespace
5948DEFAULT: strip
a58ff010 5949DOC_START
5473c134 5950 What to do with requests that have whitespace characters in the
5951 URI. Options:
a58ff010 5952
5473c134 5953 strip: The whitespace characters are stripped out of the URL.
5954 This is the behavior recommended by RFC2396.
5955 deny: The request is denied. The user receives an "Invalid
5956 Request" message.
5957 allow: The request is allowed and the URI is not changed. The
5958 whitespace characters remain in the URI. Note the
5959 whitespace is passed to redirector processes if they
5960 are in use.
5961 encode: The request is allowed and the whitespace characters are
5962 encoded according to RFC1738. This could be considered
5963 a violation of the HTTP/1.1
5964 RFC because proxies are not allowed to rewrite URI's.
5965 chop: The request is allowed and the URI is chopped at the
5966 first whitespace. This might also be considered a
5967 violation.
5968DOC_END
a58ff010 5969
5473c134 5970NAME: chroot
5971TYPE: string
5972LOC: Config.chroot_dir
a58ff010 5973DEFAULT: none
5974DOC_START
5473c134 5975 Use this to have Squid do a chroot() while initializing. This
5976 also causes Squid to fully drop root privileges after
5977 initializing. This means, for example, if you use a HTTP
5978 port less than 1024 and try to reconfigure, you will may get an
5979 error saying that Squid can not open the port.
5980DOC_END
a58ff010 5981
5473c134 5982NAME: balance_on_multiple_ip
5983TYPE: onoff
5984LOC: Config.onoff.balance_on_multiple_ip
cc192b50 5985DEFAULT: off
5473c134 5986DOC_START
cc192b50 5987 Modern IP resolvers in squid sort lookup results by preferred access.
5988 By default squid will use these IP in order and only rotates to
5989 the next listed when the most preffered fails.
5990
5473c134 5991 Some load balancing servers based on round robin DNS have been
5992 found not to preserve user session state across requests
5993 to different IP addresses.
a58ff010 5994
cc192b50 5995 Enabling this directive Squid rotates IP's per request.
a58ff010 5996DOC_END
5997
5473c134 5998NAME: pipeline_prefetch
5999TYPE: onoff
6000LOC: Config.onoff.pipeline_prefetch
6001DEFAULT: off
a58ff010 6002DOC_START
5473c134 6003 To boost the performance of pipelined requests to closer
6004 match that of a non-proxied environment Squid can try to fetch
6005 up to two requests in parallel from a pipeline.
a58ff010 6006
5473c134 6007 Defaults to off for bandwidth management and access logging
6008 reasons.
6009DOC_END
a58ff010 6010
5473c134 6011NAME: high_response_time_warning
6012TYPE: int
6013COMMENT: (msec)
6014LOC: Config.warnings.high_rptm
6015DEFAULT: 0
6016DOC_START
6017 If the one-minute median response time exceeds this value,
6018 Squid prints a WARNING with debug level 0 to get the
6019 administrators attention. The value is in milliseconds.
a58ff010 6020DOC_END
6021
5473c134 6022NAME: high_page_fault_warning
6023TYPE: int
6024LOC: Config.warnings.high_pf
6025DEFAULT: 0
cc9f92d4 6026DOC_START
5473c134 6027 If the one-minute average page fault rate exceeds this
6028 value, Squid prints a WARNING with debug level 0 to get
6029 the administrators attention. The value is in page faults
6030 per second.
6031DOC_END
cc9f92d4 6032
5473c134 6033NAME: high_memory_warning
6034TYPE: b_size_t
6035LOC: Config.warnings.high_memory
904971da 6036DEFAULT: 0 KB
5473c134 6037DOC_START
6038 If the memory usage (as determined by mallinfo) exceeds
904971da 6039 this amount, Squid prints a WARNING with debug level 0 to get
5473c134 6040 the administrators attention.
6041DOC_END
cc9f92d4 6042
5473c134 6043NAME: sleep_after_fork
6044COMMENT: (microseconds)
6045TYPE: int
6046LOC: Config.sleep_after_fork
6047DEFAULT: 0
6048DOC_START
6049 When this is set to a non-zero value, the main Squid process
6050 sleeps the specified number of microseconds after a fork()
6051 system call. This sleep may help the situation where your
6052 system reports fork() failures due to lack of (virtual)
6053 memory. Note, however, if you have a lot of child
6054 processes, these sleep delays will add up and your
6055 Squid will not service requests for some amount of time
6056 until all the child processes have been started.
6057 On Windows value less then 1000 (1 milliseconds) are
6058 rounded to 1000.
cc9f92d4 6059DOC_END
6060
b6696974 6061NAME: windows_ipaddrchangemonitor
6b0516c6 6062IFDEF: _SQUID_MSWIN_
b6696974
GS
6063COMMENT: on|off
6064TYPE: onoff
6065DEFAULT: on
6066LOC: Config.onoff.WIN32_IpAddrChangeMonitor
6067DOC_START
6068 On Windows Squid by default will monitor IP address changes and will
6069 reconfigure itself after any detected event. This is very useful for
6070 proxies connected to internet with dial-up interfaces.
6071 In some cases (a Proxy server acting as VPN gateway is one) it could be
6072 desiderable to disable this behaviour setting this to 'off'.
6073 Note: after changing this, Squid service must be restarted.
6074DOC_END
6075
cccac0a2 6076EOF