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