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