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