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