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