]> git.ipfire.org Git - thirdparty/squid.git/blob - src/cf.data.pre
Merged from trunk (r13515).
[thirdparty/squid.git] / src / cf.data.pre
1 #
2 # SQUID Web Proxy Cache http://www.squid-cache.org/
3 # ----------------------------------------------------------
4 #
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.
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.
18 #
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.
23 #
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
29 COMMENT_START
30 WELCOME TO @SQUID@
31 ----------------------------
32
33 This is the documentation for the Squid configuration file.
34 This documentation can also be found online at:
35 http://www.squid-cache.org/Doc/config/
36
37 You may wish to look at the Squid home page and wiki for the
38 FAQ and other documentation:
39 http://www.squid-cache.org/
40 http://wiki.squid-cache.org/SquidFaq
41 http://wiki.squid-cache.org/ConfigExamples
42
43 This documentation shows what the defaults for various directives
44 happen to be. If you don't need to change the default, you should
45 leave the line out of your squid.conf in most cases.
46
47 In some cases "none" refers to no default setting at all,
48 while in other cases it refers to the value of the option
49 - the comments for that keyword indicate if this is the case.
50
51 COMMENT_END
52
53 COMMENT_START
54 Configuration options can be included using the "include" directive.
55 Include takes a list of files to include. Quoting and wildcards are
56 supported.
57
58 For example,
59
60 include /path/to/included/file/squid.acl.config
61
62 Includes can be nested up to a hard-coded depth of 16 levels.
63 This arbitrary restriction is to prevent recursive include references
64 from causing Squid entering an infinite loop whilst trying to load
65 configuration files.
66
67 Values with byte units
68
69 Squid accepts size units on some size related directives. All
70 such directives are documented with a default value displaying
71 a unit.
72
73 Units accepted by Squid are:
74 bytes - byte
75 KB - Kilobyte (1024 bytes)
76 MB - Megabyte
77 GB - Gigabyte
78
79 Values with spaces, quotes, and other special characters
80
81 Squid supports directive parameters with spaces, quotes, and other
82 special characters. Surround such parameters with "double quotes". Use
83 the configuration_includes_quoted_values directive to enable or
84 disable that support.
85
86 Squid supports reading configuration option parameters from external
87 files using the syntax:
88 parameters("/path/filename")
89 For example:
90 acl whitelist dstdomain parameters("/etc/squid/whitelist.txt")
91
92 Conditional configuration
93
94 If-statements can be used to make configuration directives
95 depend on conditions:
96
97 if <CONDITION>
98 ... regular configuration directives ...
99 [else
100 ... regular configuration directives ...]
101 endif
102
103 The else part is optional. The keywords "if", "else", and "endif"
104 must be typed on their own lines, as if they were regular
105 configuration directives.
106
107 NOTE: An else-if condition is not supported.
108
109 These individual conditions types are supported:
110
111 true
112 Always evaluates to true.
113 false
114 Always evaluates to false.
115 <integer> = <integer>
116 Equality comparison of two integer numbers.
117
118
119 SMP-Related Macros
120
121 The following SMP-related preprocessor macros can be used.
122
123 ${process_name} expands to the current Squid process "name"
124 (e.g., squid1, squid2, or cache1).
125
126 ${process_number} expands to the current Squid process
127 identifier, which is an integer number (e.g., 1, 2, 3) unique
128 across all Squid processes of the current service instance.
129
130 ${service_name} expands into the current Squid service instance
131 name identifier which is provided by -n on the command line.
132
133 COMMENT_END
134
135 # options still not yet ported from 2.7 to 3.x
136 NAME: broken_vary_encoding
137 TYPE: obsolete
138 DOC_START
139 This option is not yet supported by Squid-3.
140 DOC_END
141
142 NAME: cache_vary
143 TYPE: obsolete
144 DOC_START
145 This option is not yet supported by Squid-3.
146 DOC_END
147
148 NAME: error_map
149 TYPE: obsolete
150 DOC_START
151 This option is not yet supported by Squid-3.
152 DOC_END
153
154 NAME: external_refresh_check
155 TYPE: obsolete
156 DOC_START
157 This option is not yet supported by Squid-3.
158 DOC_END
159
160 NAME: location_rewrite_program location_rewrite_access location_rewrite_children location_rewrite_concurrency
161 TYPE: obsolete
162 DOC_START
163 This option is not yet supported by Squid-3.
164 DOC_END
165
166 NAME: refresh_stale_hit
167 TYPE: obsolete
168 DOC_START
169 This option is not yet supported by Squid-3.
170 DOC_END
171
172 # Options Removed in 3.3
173 NAME: ignore_ims_on_miss
174 TYPE: obsolete
175 DOC_START
176 Remove this line. The HTTP/1.1 feature is now configured by 'cache_miss_revalidate'.
177 DOC_END
178
179 # Options Removed in 3.2
180 NAME: ignore_expect_100
181 TYPE: obsolete
182 DOC_START
183 Remove this line. The HTTP/1.1 feature is now fully supported by default.
184 DOC_END
185
186 NAME: dns_v4_fallback
187 TYPE: obsolete
188 DOC_START
189 Remove this line. Squid performs a 'Happy Eyeballs' algorithm, the 'fallback' algorithm is no longer relevant.
190 DOC_END
191
192 NAME: ftp_list_width
193 TYPE: obsolete
194 DOC_START
195 Remove this line. Configure FTP page display using the CSS controls in errorpages.css instead.
196 DOC_END
197
198 NAME: maximum_single_addr_tries
199 TYPE: obsolete
200 DOC_START
201 Replaced by connect_retries. The behaviour has changed, please read the documentation before altering.
202 DOC_END
203
204 NAME: update_headers
205 TYPE: obsolete
206 DOC_START
207 Remove this line. The feature is supported by default in storage types where update is implemented.
208 DOC_END
209
210 NAME: url_rewrite_concurrency
211 TYPE: obsolete
212 DOC_START
213 Remove this line. Set the 'concurrency=' option of url_rewrite_children instead.
214 DOC_END
215
216 # Options Removed in 3.1
217 NAME: dns_testnames
218 TYPE: obsolete
219 DOC_START
220 Remove this line. DNS is no longer tested on startup.
221 DOC_END
222
223 NAME: extension_methods
224 TYPE: obsolete
225 DOC_START
226 Remove this line. All valid methods for HTTP are accepted by default.
227 DOC_END
228
229 # 2.7 Options Removed/Replaced in 3.2
230 NAME: zero_buffers
231 TYPE: obsolete
232 DOC_NONE
233
234 # 2.7 Options Removed/Replaced in 3.1
235 NAME: incoming_rate
236 TYPE: obsolete
237 DOC_NONE
238
239 NAME: server_http11
240 TYPE: obsolete
241 DOC_START
242 Remove this line. HTTP/1.1 is supported by default.
243 DOC_END
244
245 NAME: upgrade_http0.9
246 TYPE: obsolete
247 DOC_START
248 Remove this line. ICY/1.0 streaming protocol is supported by default.
249 DOC_END
250
251 NAME: zph_local zph_mode zph_option zph_parent zph_sibling
252 TYPE: obsolete
253 DOC_START
254 Alter these entries. Use the qos_flows directive instead.
255 DOC_END
256
257 # Options Removed in 3.0
258 NAME: header_access
259 TYPE: obsolete
260 DOC_START
261 Since squid-3.0 replace with request_header_access or reply_header_access
262 depending on whether you wish to match client requests or server replies.
263 DOC_END
264
265 NAME: httpd_accel_no_pmtu_disc
266 TYPE: obsolete
267 DOC_START
268 Since squid-3.0 use the 'disable-pmtu-discovery' flag on http_port instead.
269 DOC_END
270
271 NAME: wais_relay_host
272 TYPE: obsolete
273 DOC_START
274 Replace this line with 'cache_peer' configuration.
275 DOC_END
276
277 NAME: wais_relay_port
278 TYPE: obsolete
279 DOC_START
280 Replace this line with 'cache_peer' configuration.
281 DOC_END
282
283 COMMENT_START
284 OPTIONS FOR AUTHENTICATION
285 -----------------------------------------------------------------------------
286 COMMENT_END
287
288 NAME: auth_param
289 TYPE: authparam
290 IFDEF: USE_AUTH
291 LOC: Auth::TheConfig
292 DEFAULT: none
293 DOC_START
294 This is used to define parameters for the various authentication
295 schemes supported by Squid.
296
297 format: auth_param scheme parameter [setting]
298
299 The order in which authentication schemes are presented to the client is
300 dependent on the order the scheme first appears in config file. IE
301 has a bug (it's not RFC 2617 compliant) in that it will use the basic
302 scheme if basic is the first entry presented, even if more secure
303 schemes are presented. For now use the order in the recommended
304 settings section below. If other browsers have difficulties (don't
305 recognize the schemes offered even if you are using basic) either
306 put basic first, or disable the other schemes (by commenting out their
307 program entry).
308
309 Once an authentication scheme is fully configured, it can only be
310 shutdown by shutting squid down and restarting. Changes can be made on
311 the fly and activated with a reconfigure. I.E. You can change to a
312 different helper, but not unconfigure the helper completely.
313
314 Please note that while this directive defines how Squid processes
315 authentication it does not automatically activate authentication.
316 To use authentication you must in addition make use of ACLs based
317 on login name in http_access (proxy_auth, proxy_auth_regex or
318 external with %LOGIN used in the format tag). The browser will be
319 challenged for authentication on the first such acl encountered
320 in http_access processing and will also be re-challenged for new
321 login credentials if the request is being denied by a proxy_auth
322 type acl.
323
324 WARNING: authentication can't be used in a transparently intercepting
325 proxy as the client then thinks it is talking to an origin server and
326 not the proxy. This is a limitation of bending the TCP/IP protocol to
327 transparently intercepting port 80, not a limitation in Squid.
328 Ports flagged 'transparent', 'intercept', or 'tproxy' have
329 authentication disabled.
330
331 === Parameters common to all schemes. ===
332
333 "program" cmdline
334 Specifies the command for the external authenticator.
335
336 By default, each authentication scheme is not used unless a
337 program is specified.
338
339 See http://wiki.squid-cache.org/Features/AddonHelpers for
340 more details on helper operations and creating your own.
341
342 "key_extras" format
343 Specifies a string to be append to request line format for
344 the authentication helper. "Quoted" format values may contain
345 spaces and logformat %macros. In theory, any logformat %macro
346 can be used. In practice, a %macro expands as a dash (-) if
347 the helper request is sent before the required macro
348 information is available to Squid.
349
350 By default, Squid uses request formats provided in
351 scheme-specific examples below (search for %credentials).
352
353 The expanded key_extras value is added to the Squid credentials
354 cache and, hence, will affect authentication. It can be used to
355 autenticate different users with identical user names (e.g.,
356 when user authentication depends on http_port).
357
358 Avoid adding frequently changing information to key_extras. For
359 example, if you add user source IP, and it changes frequently
360 in your environment, then max_user_ip ACL is going to treat
361 every user+IP combination as a unique "user", breaking the ACL
362 and wasting a lot of memory on those user records. It will also
363 force users to authenticate from scratch whenever their IP
364 changes.
365
366 "realm" string
367 Specifies the protection scope (aka realm name) which is to be
368 reported to the client for the authentication scheme. It is
369 commonly part of the text the user will see when prompted for
370 their username and password.
371
372 For Basic the default is "Squid proxy-caching web server".
373 For Digest there is no default, this parameter is mandatory.
374 For NTLM and Negotiate this parameter is ignored.
375
376 "children" numberofchildren [startup=N] [idle=N] [concurrency=N]
377
378 The maximum number of authenticator processes to spawn. If
379 you start too few Squid will have to wait for them to process
380 a backlog of credential verifications, slowing it down. When
381 password verifications are done via a (slow) network you are
382 likely to need lots of authenticator processes.
383
384 The startup= and idle= options permit some skew in the exact
385 amount run. A minimum of startup=N will begin during startup
386 and reconfigure. Squid will start more in groups of up to
387 idle=N in an attempt to meet traffic needs and to keep idle=N
388 free above those traffic needs up to the maximum.
389
390 The concurrency= option sets the number of concurrent requests
391 the helper can process. The default of 0 is used for helpers
392 who only supports one request at a time. Setting this to a
393 number greater than 0 changes the protocol used to include a
394 channel ID field first on the request/response line, allowing
395 multiple requests to be sent to the same helper in parallel
396 without waiting for the response.
397
398 Concurrency must not be set unless it's known the helper
399 supports the input format with channel-ID fields.
400
401 NOTE: NTLM and Negotiate schemes do not support concurrency
402 in the Squid code module even though some helpers can.
403
404
405 IF HAVE_AUTH_MODULE_BASIC
406 === Basic authentication parameters ===
407
408 "utf8" on|off
409 HTTP uses iso-latin-1 as character set, while some
410 authentication backends such as LDAP expects UTF-8. If this is
411 set to on Squid will translate the HTTP iso-latin-1 charset to
412 UTF-8 before sending the username and password to the helper.
413
414 "credentialsttl" timetolive
415 Specifies how long squid assumes an externally validated
416 username:password pair is valid for - in other words how
417 often the helper program is called for that user. Set this
418 low to force revalidation with short lived passwords.
419
420 NOTE: setting this high does not impact your susceptibility
421 to replay attacks unless you are using an one-time password
422 system (such as SecureID). If you are using such a system,
423 you will be vulnerable to replay attacks unless you also
424 use the max_user_ip ACL in an http_access rule.
425
426 "casesensitive" on|off
427 Specifies if usernames are case sensitive. Most user databases
428 are case insensitive allowing the same username to be spelled
429 using both lower and upper case letters, but some are case
430 sensitive. This makes a big difference for user_max_ip ACL
431 processing and similar.
432
433 ENDIF
434 IF HAVE_AUTH_MODULE_DIGEST
435 === Digest authentication parameters ===
436
437 "utf8" on|off
438 HTTP uses iso-latin-1 as character set, while some
439 authentication backends such as LDAP expects UTF-8. If this is
440 set to on Squid will translate the HTTP iso-latin-1 charset to
441 UTF-8 before sending the username and password to the helper.
442
443 "nonce_garbage_interval" timeinterval
444 Specifies the interval that nonces that have been issued
445 to client_agent's are checked for validity.
446
447 "nonce_max_duration" timeinterval
448 Specifies the maximum length of time a given nonce will be
449 valid for.
450
451 "nonce_max_count" number
452 Specifies the maximum number of times a given nonce can be
453 used.
454
455 "nonce_strictness" on|off
456 Determines if squid requires strict increment-by-1 behavior
457 for nonce counts, or just incrementing (off - for use when
458 user agents generate nonce counts that occasionally miss 1
459 (ie, 1,2,4,6)). Default off.
460
461 "check_nonce_count" on|off
462 This directive if set to off can disable the nonce count check
463 completely to work around buggy digest qop implementations in
464 certain mainstream browser versions. Default on to check the
465 nonce count to protect from authentication replay attacks.
466
467 "post_workaround" on|off
468 This is a workaround to certain buggy browsers who send an
469 incorrect request digest in POST requests when reusing the
470 same nonce as acquired earlier on a GET request.
471
472 ENDIF
473 IF HAVE_AUTH_MODULE_NEGOTIATE
474 === Negotiate authentication parameters ===
475
476 "keep_alive" on|off
477 If you experience problems with PUT/POST requests when using
478 the this authentication scheme then you can try setting this
479 to off. This will cause Squid to forcibly close the connection
480 on the initial request where the browser asks which schemes
481 are supported by the proxy.
482
483 ENDIF
484 IF HAVE_AUTH_MODULE_NTLM
485 === NTLM authentication parameters ===
486
487 "keep_alive" on|off
488 If you experience problems with PUT/POST requests when using
489 the this authentication scheme then you can try setting this
490 to off. This will cause Squid to forcibly close the connection
491 on the initial request where the browser asks which schemes
492 are supported by the proxy.
493 ENDIF
494
495 === Example Configuration ===
496
497 This configuration displays the recommended authentication scheme
498 order from most to least secure with recommended minimum configuration
499 settings for each scheme:
500
501 #auth_param negotiate program <uncomment and complete this line to activate>
502 #auth_param negotiate children 20 startup=0 idle=1
503 #auth_param negotiate keep_alive on
504 #
505 #auth_param digest program <uncomment and complete this line to activate>
506 #auth_param digest children 20 startup=0 idle=1
507 #auth_param digest realm Squid proxy-caching web server
508 #auth_param digest nonce_garbage_interval 5 minutes
509 #auth_param digest nonce_max_duration 30 minutes
510 #auth_param digest nonce_max_count 50
511 #
512 #auth_param ntlm program <uncomment and complete this line to activate>
513 #auth_param ntlm children 20 startup=0 idle=1
514 #auth_param ntlm keep_alive on
515 #
516 #auth_param basic program <uncomment and complete this line>
517 #auth_param basic children 5 startup=5 idle=1
518 #auth_param basic realm Squid proxy-caching web server
519 #auth_param basic credentialsttl 2 hours
520 DOC_END
521
522 NAME: authenticate_cache_garbage_interval
523 TYPE: time_t
524 DEFAULT: 1 hour
525 LOC: Config.authenticateGCInterval
526 DOC_START
527 The time period between garbage collection across the username cache.
528 This is a trade-off between memory utilization (long intervals - say
529 2 days) and CPU (short intervals - say 1 minute). Only change if you
530 have good reason to.
531 DOC_END
532
533 NAME: authenticate_ttl
534 TYPE: time_t
535 DEFAULT: 1 hour
536 LOC: Config.authenticateTTL
537 DOC_START
538 The time a user & their credentials stay in the logged in
539 user cache since their last request. When the garbage
540 interval passes, all user credentials that have passed their
541 TTL are removed from memory.
542 DOC_END
543
544 NAME: authenticate_ip_ttl
545 TYPE: time_t
546 LOC: Config.authenticateIpTTL
547 DEFAULT: 1 second
548 DOC_START
549 If you use proxy authentication and the 'max_user_ip' ACL,
550 this directive controls how long Squid remembers the IP
551 addresses associated with each user. Use a small value
552 (e.g., 60 seconds) if your users might change addresses
553 quickly, as is the case with dialup. You might be safe
554 using a larger value (e.g., 2 hours) in a corporate LAN
555 environment with relatively static address assignments.
556 DOC_END
557
558 COMMENT_START
559 ACCESS CONTROLS
560 -----------------------------------------------------------------------------
561 COMMENT_END
562
563 NAME: external_acl_type
564 TYPE: externalAclHelper
565 LOC: Config.externalAclHelperList
566 DEFAULT: none
567 DOC_START
568 This option defines external acl classes using a helper program
569 to look up the status
570
571 external_acl_type name [options] FORMAT.. /path/to/helper [helper arguments..]
572
573 Options:
574
575 ttl=n TTL in seconds for cached results (defaults to 3600
576 for 1 hour)
577 negative_ttl=n
578 TTL for cached negative lookups (default same
579 as ttl)
580 children-max=n
581 Maximum number of acl helper processes spawned to service
582 external acl lookups of this type. (default 20)
583 children-startup=n
584 Minimum number of acl helper processes to spawn during
585 startup and reconfigure to service external acl lookups
586 of this type. (default 0)
587 children-idle=n
588 Number of acl helper processes to keep ahead of traffic
589 loads. Squid will spawn this many at once whenever load
590 rises above the capabilities of existing processes.
591 Up to the value of children-max. (default 1)
592 concurrency=n concurrency level per process. Only used with helpers
593 capable of processing more than one query at a time.
594 cache=n limit the result cache size, default is 262144.
595 grace=n Percentage remaining of TTL where a refresh of a
596 cached entry should be initiated without needing to
597 wait for a new reply. (default is for no grace period)
598 protocol=2.5 Compatibility mode for Squid-2.5 external acl helpers
599 ipv4 / ipv6 IP protocol used to communicate with this helper.
600 The default is to auto-detect IPv6 and use it when available.
601
602 FORMAT specifications
603
604 %LOGIN Authenticated user login name
605 %EXT_USER Username from previous external acl
606 %EXT_LOG Log details from previous external acl
607 %EXT_TAG Tag from previous external acl
608 %IDENT Ident user name
609 %SRC Client IP
610 %SRCPORT Client source port
611 %URI Requested URI
612 %DST Requested host
613 %PROTO Requested URL scheme
614 %PORT Requested port
615 %PATH Requested URL path
616 %METHOD Request method
617 %MYADDR Squid interface address
618 %MYPORT Squid http_port number
619 %PATH Requested URL-path (including query-string if any)
620 %USER_CERT SSL User certificate in PEM format
621 %USER_CERTCHAIN SSL User certificate chain in PEM format
622 %USER_CERT_xx SSL User certificate subject attribute xx
623 %USER_CA_xx SSL User certificate issuer attribute xx
624
625 %>{Header} HTTP request header "Header"
626 %>{Hdr:member}
627 HTTP request header "Hdr" list member "member"
628 %>{Hdr:;member}
629 HTTP request header list member using ; as
630 list separator. ; can be any non-alphanumeric
631 character.
632
633 %<{Header} HTTP reply header "Header"
634 %<{Hdr:member}
635 HTTP reply header "Hdr" list member "member"
636 %<{Hdr:;member}
637 HTTP reply header list member using ; as
638 list separator. ; can be any non-alphanumeric
639 character.
640
641 %ACL The name of the ACL being tested.
642 %DATA The ACL arguments. If not used then any arguments
643 is automatically added at the end of the line
644 sent to the helper.
645 NOTE: this will encode the arguments as one token,
646 whereas the default will pass each separately.
647
648 %% The percent sign. Useful for helpers which need
649 an unchanging input format.
650
651
652 General request syntax:
653
654 [channel-ID] FORMAT-values [acl-values ...]
655
656
657 FORMAT-values consists of transaction details expanded with
658 whitespace separation per the config file FORMAT specification
659 using the FORMAT macros listed above.
660
661 acl-values consists of any string specified in the referencing
662 config 'acl ... external' line. see the "acl external" directive.
663
664 Request values sent to the helper are URL escaped to protect
665 each value in requests against whitespaces.
666
667 If using protocol=2.5 then the request sent to the helper is not
668 URL escaped to protect against whitespace.
669
670 NOTE: protocol=3.0 is deprecated as no longer necessary.
671
672 When using the concurrency= option the protocol is changed by
673 introducing a query channel tag in front of the request/response.
674 The query channel tag is a number between 0 and concurrency-1.
675 This value must be echoed back unchanged to Squid as the first part
676 of the response relating to its request.
677
678
679 The helper receives lines expanded per the above format specification
680 and for each input line returns 1 line starting with OK/ERR/BH result
681 code and optionally followed by additional keywords with more details.
682
683
684 General result syntax:
685
686 [channel-ID] result keyword=value ...
687
688 Result consists of one of the codes:
689
690 OK
691 the ACL test produced a match.
692
693 ERR
694 the ACL test does not produce a match.
695
696 BH
697 An internal error occurred in the helper, preventing
698 a result being identified.
699
700 The meaning of 'a match' is determined by your squid.conf
701 access control configuration. See the Squid wiki for details.
702
703 Defined keywords:
704
705 user= The users name (login)
706
707 password= The users password (for login= cache_peer option)
708
709 message= Message describing the reason for this response.
710 Available as %o in error pages.
711 Useful on (ERR and BH results).
712
713 tag= Apply a tag to a request. Only sets a tag once,
714 does not alter existing tags.
715
716 log= String to be logged in access.log. Available as
717 %ea in logformat specifications.
718
719 clt_conn_tag= Associates a TAG with the client TCP connection.
720 Please see url_rewrite_program related documentation for
721 this kv-pair.
722
723 Any keywords may be sent on any response whether OK, ERR or BH.
724
725 All response keyword values need to be a single token with URL
726 escaping, or enclosed in double quotes (") and escaped using \ on
727 any double quotes or \ characters within the value. The wrapping
728 double quotes are removed before the value is interpreted by Squid.
729 \r and \n are also replace by CR and LF.
730
731 Some example key values:
732
733 user=John%20Smith
734 user="John Smith"
735 user="J. \"Bob\" Smith"
736 DOC_END
737
738 NAME: acl
739 TYPE: acl
740 LOC: Config.aclList
741 IF USE_OPENSSL
742 DEFAULT: ssl::certHasExpired ssl_error X509_V_ERR_CERT_HAS_EXPIRED
743 DEFAULT: ssl::certNotYetValid ssl_error X509_V_ERR_CERT_NOT_YET_VALID
744 DEFAULT: ssl::certDomainMismatch ssl_error SQUID_X509_V_ERR_DOMAIN_MISMATCH
745 DEFAULT: ssl::certUntrusted ssl_error X509_V_ERR_INVALID_CA X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY X509_V_ERR_CERT_UNTRUSTED
746 DEFAULT: ssl::certSelfSigned ssl_error X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT
747 ENDIF
748 DEFAULT: all src all
749 DEFAULT: manager url_regex -i ^cache_object:// +i ^https?://[^/]+/squid-internal-mgr/
750 DEFAULT: localhost src 127.0.0.1/32 ::1
751 DEFAULT: to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
752 DEFAULT_DOC: ACLs all, manager, localhost, and to_localhost are predefined.
753 DOC_START
754 Defining an Access List
755
756 Every access list definition must begin with an aclname and acltype,
757 followed by either type-specific arguments or a quoted filename that
758 they are read from.
759
760 acl aclname acltype argument ...
761 acl aclname acltype "file" ...
762
763 When using "file", the file should contain one item per line.
764
765 Some acl types supports options which changes their default behaviour.
766 The available options are:
767
768 -i,+i By default, regular expressions are CASE-SENSITIVE. To make them
769 case-insensitive, use the -i option. To return case-sensitive
770 use the +i option between patterns, or make a new ACL line
771 without -i.
772
773 -n Disable lookups and address type conversions. If lookup or
774 conversion is required because the parameter type (IP or
775 domain name) does not match the message address type (domain
776 name or IP), then the ACL would immediately declare a mismatch
777 without any warnings or lookups.
778
779 -- Used to stop processing all options, in the case the first acl
780 value has '-' character as first character (for example the '-'
781 is a valid domain name)
782
783 Some acl types require suspending the current request in order
784 to access some external data source.
785 Those which do are marked with the tag [slow], those which
786 don't are marked as [fast].
787 See http://wiki.squid-cache.org/SquidFaq/SquidAcl
788 for further information
789
790 ***** ACL TYPES AVAILABLE *****
791
792 acl aclname src ip-address/mask ... # clients IP address [fast]
793 acl aclname src addr1-addr2/mask ... # range of addresses [fast]
794 acl aclname dst [-n] ip-address/mask ... # URL host's IP address [slow]
795 acl aclname localip ip-address/mask ... # IP address the client connected to [fast]
796
797 acl aclname arp mac-address ... (xx:xx:xx:xx:xx:xx notation)
798 # The arp ACL requires the special configure option --enable-arp-acl.
799 # Furthermore, the ARP ACL code is not portable to all operating systems.
800 # It works on Linux, Solaris, Windows, FreeBSD, and some
801 # other *BSD variants.
802 # [fast]
803 #
804 # NOTE: Squid can only determine the MAC address for clients that are on
805 # the same subnet. If the client is on a different subnet,
806 # then Squid cannot find out its MAC address.
807
808 acl aclname srcdomain .foo.com ...
809 # reverse lookup, from client IP [slow]
810 acl aclname dstdomain [-n] .foo.com ...
811 # Destination server from URL [fast]
812 acl aclname srcdom_regex [-i] \.foo\.com ...
813 # regex matching client name [slow]
814 acl aclname dstdom_regex [-n] [-i] \.foo\.com ...
815 # regex matching server [fast]
816 #
817 # For dstdomain and dstdom_regex a reverse lookup is tried if a IP
818 # based URL is used and no match is found. The name "none" is used
819 # if the reverse lookup fails.
820
821 acl aclname src_as number ...
822 acl aclname dst_as number ...
823 # [fast]
824 # Except for access control, AS numbers can be used for
825 # routing of requests to specific caches. Here's an
826 # example for routing all requests for AS#1241 and only
827 # those to mycache.mydomain.net:
828 # acl asexample dst_as 1241
829 # cache_peer_access mycache.mydomain.net allow asexample
830 # cache_peer_access mycache_mydomain.net deny all
831
832 acl aclname peername myPeer ...
833 # [fast]
834 # match against a named cache_peer entry
835 # set unique name= on cache_peer lines for reliable use.
836
837 acl aclname time [day-abbrevs] [h1:m1-h2:m2]
838 # [fast]
839 # day-abbrevs:
840 # S - Sunday
841 # M - Monday
842 # T - Tuesday
843 # W - Wednesday
844 # H - Thursday
845 # F - Friday
846 # A - Saturday
847 # h1:m1 must be less than h2:m2
848
849 acl aclname url_regex [-i] ^http:// ...
850 # regex matching on whole URL [fast]
851 acl aclname urllogin [-i] [^a-zA-Z0-9] ...
852 # regex matching on URL login field
853 acl aclname urlpath_regex [-i] \.gif$ ...
854 # regex matching on URL path [fast]
855
856 acl aclname port 80 70 21 0-1024... # destination TCP port [fast]
857 # ranges are alloed
858 acl aclname localport 3128 ... # TCP port the client connected to [fast]
859 # NP: for interception mode this is usually '80'
860
861 acl aclname myportname 3128 ... # http(s)_port name [fast]
862
863 acl aclname proto HTTP FTP ... # request protocol [fast]
864
865 acl aclname method GET POST ... # HTTP request method [fast]
866
867 acl aclname http_status 200 301 500- 400-403 ...
868 # status code in reply [fast]
869
870 acl aclname browser [-i] regexp ...
871 # pattern match on User-Agent header (see also req_header below) [fast]
872
873 acl aclname referer_regex [-i] regexp ...
874 # pattern match on Referer header [fast]
875 # Referer is highly unreliable, so use with care
876
877 acl aclname ident username ...
878 acl aclname ident_regex [-i] pattern ...
879 # string match on ident output [slow]
880 # use REQUIRED to accept any non-null ident.
881
882 acl aclname proxy_auth [-i] username ...
883 acl aclname proxy_auth_regex [-i] pattern ...
884 # perform http authentication challenge to the client and match against
885 # supplied credentials [slow]
886 #
887 # takes a list of allowed usernames.
888 # use REQUIRED to accept any valid username.
889 #
890 # Will use proxy authentication in forward-proxy scenarios, and plain
891 # http authenticaiton in reverse-proxy scenarios
892 #
893 # NOTE: when a Proxy-Authentication header is sent but it is not
894 # needed during ACL checking the username is NOT logged
895 # in access.log.
896 #
897 # NOTE: proxy_auth requires a EXTERNAL authentication program
898 # to check username/password combinations (see
899 # auth_param directive).
900 #
901 # NOTE: proxy_auth can't be used in a transparent/intercepting proxy
902 # as the browser needs to be configured for using a proxy in order
903 # to respond to proxy authentication.
904
905 acl aclname snmp_community string ...
906 # A community string to limit access to your SNMP Agent [fast]
907 # Example:
908 #
909 # acl snmppublic snmp_community public
910
911 acl aclname maxconn number
912 # This will be matched when the client's IP address has
913 # more than <number> TCP connections established. [fast]
914 # NOTE: This only measures direct TCP links so X-Forwarded-For
915 # indirect clients are not counted.
916
917 acl aclname max_user_ip [-s] number
918 # This will be matched when the user attempts to log in from more
919 # than <number> different ip addresses. The authenticate_ip_ttl
920 # parameter controls the timeout on the ip entries. [fast]
921 # If -s is specified the limit is strict, denying browsing
922 # from any further IP addresses until the ttl has expired. Without
923 # -s Squid will just annoy the user by "randomly" denying requests.
924 # (the counter is reset each time the limit is reached and a
925 # request is denied)
926 # NOTE: in acceleration mode or where there is mesh of child proxies,
927 # clients may appear to come from multiple addresses if they are
928 # going through proxy farms, so a limit of 1 may cause user problems.
929
930 acl aclname random probability
931 # Pseudo-randomly match requests. Based on the probability given.
932 # Probability may be written as a decimal (0.333), fraction (1/3)
933 # or ratio of matches:non-matches (3:5).
934
935 acl aclname req_mime_type [-i] mime-type ...
936 # regex match against the mime type of the request generated
937 # by the client. Can be used to detect file upload or some
938 # types HTTP tunneling requests [fast]
939 # NOTE: This does NOT match the reply. You cannot use this
940 # to match the returned file type.
941
942 acl aclname req_header header-name [-i] any\.regex\.here
943 # regex match against any of the known request headers. May be
944 # thought of as a superset of "browser", "referer" and "mime-type"
945 # ACL [fast]
946
947 acl aclname rep_mime_type [-i] mime-type ...
948 # regex match against the mime type of the reply received by
949 # squid. Can be used to detect file download or some
950 # types HTTP tunneling requests. [fast]
951 # NOTE: This has no effect in http_access rules. It only has
952 # effect in rules that affect the reply data stream such as
953 # http_reply_access.
954
955 acl aclname rep_header header-name [-i] any\.regex\.here
956 # regex match against any of the known reply headers. May be
957 # thought of as a superset of "browser", "referer" and "mime-type"
958 # ACLs [fast]
959
960 acl aclname external class_name [arguments...]
961 # external ACL lookup via a helper class defined by the
962 # external_acl_type directive [slow]
963
964 acl aclname user_cert attribute values...
965 # match against attributes in a user SSL certificate
966 # attribute is one of DN/C/O/CN/L/ST [fast]
967
968 acl aclname ca_cert attribute values...
969 # match against attributes a users issuing CA SSL certificate
970 # attribute is one of DN/C/O/CN/L/ST [fast]
971
972 acl aclname ext_user username ...
973 acl aclname ext_user_regex [-i] pattern ...
974 # string match on username returned by external acl helper [slow]
975 # use REQUIRED to accept any non-null user name.
976
977 acl aclname tag tagvalue ...
978 # string match on tag returned by external acl helper [fast]
979 # DEPRECATED. Only the first tag will match with this ACL.
980 # Use the 'note' ACL instead for handling multiple tag values.
981
982 acl aclname hier_code codename ...
983 # string match against squid hierarchy code(s); [fast]
984 # e.g., DIRECT, PARENT_HIT, NONE, etc.
985 #
986 # NOTE: This has no effect in http_access rules. It only has
987 # effect in rules that affect the reply data stream such as
988 # http_reply_access.
989
990 acl aclname note name [value ...]
991 # match transaction annotation [fast]
992 # Without values, matches any annotation with a given name.
993 # With value(s), matches any annotation with a given name that
994 # also has one of the given values.
995 # Names and values are compared using a string equality test.
996 # Annotation sources include note and adaptation_meta directives
997 # as well as helper and eCAP responses.
998
999 acl aclname adaptation_service service ...
1000 # Matches the name of any icap_service, ecap_service,
1001 # adaptation_service_set, or adaptation_service_chain that Squid
1002 # has used (or attempted to use) for the master transaction.
1003 # This ACL must be defined after the corresponding adaptation
1004 # service is named in squid.conf. This ACL is usable with
1005 # adaptation_meta because it starts matching immediately after
1006 # the service has been selected for adaptation.
1007
1008 IF USE_OPENSSL
1009 acl aclname ssl_error errorname
1010 # match against SSL certificate validation error [fast]
1011 #
1012 # For valid error names see in @DEFAULT_ERROR_DIR@/templates/error-details.txt
1013 # template file.
1014 #
1015 # The following can be used as shortcuts for certificate properties:
1016 # [ssl::]certHasExpired: the "not after" field is in the past
1017 # [ssl::]certNotYetValid: the "not before" field is in the future
1018 # [ssl::]certUntrusted: The certificate issuer is not to be trusted.
1019 # [ssl::]certSelfSigned: The certificate is self signed.
1020 # [ssl::]certDomainMismatch: The certificate CN domain does not
1021 # match the name the name of the host we are connecting to.
1022 #
1023 # The ssl::certHasExpired, ssl::certNotYetValid, ssl::certDomainMismatch,
1024 # ssl::certUntrusted, and ssl::certSelfSigned can also be used as
1025 # predefined ACLs, just like the 'all' ACL.
1026 #
1027 # NOTE: The ssl_error ACL is only supported with sslproxy_cert_error,
1028 # sslproxy_cert_sign, and sslproxy_cert_adapt options.
1029
1030 acl aclname server_cert_fingerprint [-sha1] fingerprint
1031 # match against server SSL certificate fingerprint [fast]
1032 #
1033 # The fingerprint is the digest of the DER encoded version
1034 # of the whole certificate. The user should use the form: XX:XX:...
1035 # Optional argument specifies the digest algorithm to use.
1036 # The SHA1 digest algorithm is the default and is currently
1037 # the only algorithm supported (-sha1).
1038 ENDIF
1039 acl aclname any-of acl1 acl2 ...
1040 # match any one of the acls [fast or slow]
1041 # The first matching ACL stops further ACL evaluation.
1042 #
1043 # ACLs from multiple any-of lines with the same name are ORed.
1044 # For example, A = (a1 or a2) or (a3 or a4) can be written as
1045 # acl A any-of a1 a2
1046 # acl A any-of a3 a4
1047 #
1048 # This group ACL is fast if all evaluated ACLs in the group are fast
1049 # and slow otherwise.
1050
1051 acl aclname all-of acl1 acl2 ...
1052 # match all of the acls [fast or slow]
1053 # The first mismatching ACL stops further ACL evaluation.
1054 #
1055 # ACLs from multiple all-of lines with the same name are ORed.
1056 # For example, B = (b1 and b2) or (b3 and b4) can be written as
1057 # acl B all-of b1 b2
1058 # acl B all-of b3 b4
1059 #
1060 # This group ACL is fast if all evaluated ACLs in the group are fast
1061 # and slow otherwise.
1062
1063 Examples:
1064 acl macaddress arp 09:00:2b:23:45:67
1065 acl myexample dst_as 1241
1066 acl password proxy_auth REQUIRED
1067 acl fileupload req_mime_type -i ^multipart/form-data$
1068 acl javascript rep_mime_type -i ^application/x-javascript$
1069
1070 NOCOMMENT_START
1071 #
1072 # Recommended minimum configuration:
1073 #
1074
1075 # Example rule allowing access from your local networks.
1076 # Adapt to list your (internal) IP networks from where browsing
1077 # should be allowed
1078 acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
1079 acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
1080 acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
1081 acl localnet src fc00::/7 # RFC 4193 local private network range
1082 acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
1083
1084 acl SSL_ports port 443
1085 acl Safe_ports port 80 # http
1086 acl Safe_ports port 21 # ftp
1087 acl Safe_ports port 443 # https
1088 acl Safe_ports port 70 # gopher
1089 acl Safe_ports port 210 # wais
1090 acl Safe_ports port 1025-65535 # unregistered ports
1091 acl Safe_ports port 280 # http-mgmt
1092 acl Safe_ports port 488 # gss-http
1093 acl Safe_ports port 591 # filemaker
1094 acl Safe_ports port 777 # multiling http
1095 acl CONNECT method CONNECT
1096 NOCOMMENT_END
1097 DOC_END
1098
1099 NAME: follow_x_forwarded_for
1100 TYPE: acl_access
1101 IFDEF: FOLLOW_X_FORWARDED_FOR
1102 LOC: Config.accessList.followXFF
1103 DEFAULT_IF_NONE: deny all
1104 DEFAULT_DOC: X-Forwarded-For header will be ignored.
1105 DOC_START
1106 Allowing or Denying the X-Forwarded-For header to be followed to
1107 find the original source of a request.
1108
1109 Requests may pass through a chain of several other proxies
1110 before reaching us. The X-Forwarded-For header will contain a
1111 comma-separated list of the IP addresses in the chain, with the
1112 rightmost address being the most recent.
1113
1114 If a request reaches us from a source that is allowed by this
1115 configuration item, then we consult the X-Forwarded-For header
1116 to see where that host received the request from. If the
1117 X-Forwarded-For header contains multiple addresses, we continue
1118 backtracking until we reach an address for which we are not allowed
1119 to follow the X-Forwarded-For header, or until we reach the first
1120 address in the list. For the purpose of ACL used in the
1121 follow_x_forwarded_for directive the src ACL type always matches
1122 the address we are testing and srcdomain matches its rDNS.
1123
1124 The end result of this process is an IP address that we will
1125 refer to as the indirect client address. This address may
1126 be treated as the client address for access control, ICAP, delay
1127 pools and logging, depending on the acl_uses_indirect_client,
1128 icap_uses_indirect_client, delay_pool_uses_indirect_client,
1129 log_uses_indirect_client and tproxy_uses_indirect_client options.
1130
1131 This clause only supports fast acl types.
1132 See http://wiki.squid-cache.org/SquidFaq/SquidAcl for details.
1133
1134 SECURITY CONSIDERATIONS:
1135
1136 Any host for which we follow the X-Forwarded-For header
1137 can place incorrect information in the header, and Squid
1138 will use the incorrect information as if it were the
1139 source address of the request. This may enable remote
1140 hosts to bypass any access control restrictions that are
1141 based on the client's source addresses.
1142
1143 For example:
1144
1145 acl localhost src 127.0.0.1
1146 acl my_other_proxy srcdomain .proxy.example.com
1147 follow_x_forwarded_for allow localhost
1148 follow_x_forwarded_for allow my_other_proxy
1149 DOC_END
1150
1151 NAME: acl_uses_indirect_client
1152 COMMENT: on|off
1153 TYPE: onoff
1154 IFDEF: FOLLOW_X_FORWARDED_FOR
1155 DEFAULT: on
1156 LOC: Config.onoff.acl_uses_indirect_client
1157 DOC_START
1158 Controls whether the indirect client address
1159 (see follow_x_forwarded_for) is used instead of the
1160 direct client address in acl matching.
1161
1162 NOTE: maxconn ACL considers direct TCP links and indirect
1163 clients will always have zero. So no match.
1164 DOC_END
1165
1166 NAME: delay_pool_uses_indirect_client
1167 COMMENT: on|off
1168 TYPE: onoff
1169 IFDEF: FOLLOW_X_FORWARDED_FOR&&USE_DELAY_POOLS
1170 DEFAULT: on
1171 LOC: Config.onoff.delay_pool_uses_indirect_client
1172 DOC_START
1173 Controls whether the indirect client address
1174 (see follow_x_forwarded_for) is used instead of the
1175 direct client address in delay pools.
1176 DOC_END
1177
1178 NAME: log_uses_indirect_client
1179 COMMENT: on|off
1180 TYPE: onoff
1181 IFDEF: FOLLOW_X_FORWARDED_FOR
1182 DEFAULT: on
1183 LOC: Config.onoff.log_uses_indirect_client
1184 DOC_START
1185 Controls whether the indirect client address
1186 (see follow_x_forwarded_for) is used instead of the
1187 direct client address in the access log.
1188 DOC_END
1189
1190 NAME: tproxy_uses_indirect_client
1191 COMMENT: on|off
1192 TYPE: onoff
1193 IFDEF: FOLLOW_X_FORWARDED_FOR&&LINUX_NETFILTER
1194 DEFAULT: off
1195 LOC: Config.onoff.tproxy_uses_indirect_client
1196 DOC_START
1197 Controls whether the indirect client address
1198 (see follow_x_forwarded_for) is used instead of the
1199 direct client address when spoofing the outgoing client.
1200
1201 This has no effect on requests arriving in non-tproxy
1202 mode ports.
1203
1204 SECURITY WARNING: Usage of this option is dangerous
1205 and should not be used trivially. Correct configuration
1206 of follow_x_forewarded_for with a limited set of trusted
1207 sources is required to prevent abuse of your proxy.
1208 DOC_END
1209
1210 NAME: spoof_client_ip
1211 TYPE: acl_access
1212 LOC: Config.accessList.spoof_client_ip
1213 DEFAULT: none
1214 DEFAULT_DOC: Allow spoofing on all TPROXY traffic.
1215 DOC_START
1216 Control client IP address spoofing of TPROXY traffic based on
1217 defined access lists.
1218
1219 spoof_client_ip allow|deny [!]aclname ...
1220
1221 If there are no "spoof_client_ip" lines present, the default
1222 is to "allow" spoofing of any suitable request.
1223
1224 Note that the cache_peer "no-tproxy" option overrides this ACL.
1225
1226 This clause supports fast acl types.
1227 See http://wiki.squid-cache.org/SquidFaq/SquidAcl for details.
1228 DOC_END
1229
1230 NAME: http_access
1231 TYPE: acl_access
1232 LOC: Config.accessList.http
1233 DEFAULT_IF_NONE: deny all
1234 DEFAULT_DOC: Deny, unless rules exist in squid.conf.
1235 DOC_START
1236 Allowing or Denying access based on defined access lists
1237
1238 Access to the HTTP port:
1239 http_access allow|deny [!]aclname ...
1240
1241 NOTE on default values:
1242
1243 If there are no "access" lines present, the default is to deny
1244 the request.
1245
1246 If none of the "access" lines cause a match, the default is the
1247 opposite of the last line in the list. If the last line was
1248 deny, the default is allow. Conversely, if the last line
1249 is allow, the default will be deny. For these reasons, it is a
1250 good idea to have an "deny all" entry at the end of your access
1251 lists to avoid potential confusion.
1252
1253 This clause supports both fast and slow acl types.
1254 See http://wiki.squid-cache.org/SquidFaq/SquidAcl for details.
1255
1256 NOCOMMENT_START
1257
1258 #
1259 # Recommended minimum Access Permission configuration:
1260 #
1261 # Deny requests to certain unsafe ports
1262 http_access deny !Safe_ports
1263
1264 # Deny CONNECT to other than secure SSL ports
1265 http_access deny CONNECT !SSL_ports
1266
1267 # Only allow cachemgr access from localhost
1268 http_access allow localhost manager
1269 http_access deny manager
1270
1271 # We strongly recommend the following be uncommented to protect innocent
1272 # web applications running on the proxy server who think the only
1273 # one who can access services on "localhost" is a local user
1274 #http_access deny to_localhost
1275
1276 #
1277 # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
1278 #
1279
1280 # Example rule allowing access from your local networks.
1281 # Adapt localnet in the ACL section to list your (internal) IP networks
1282 # from where browsing should be allowed
1283 http_access allow localnet
1284 http_access allow localhost
1285
1286 # And finally deny all other access to this proxy
1287 http_access deny all
1288 NOCOMMENT_END
1289 DOC_END
1290
1291 NAME: adapted_http_access http_access2
1292 TYPE: acl_access
1293 LOC: Config.accessList.adapted_http
1294 DEFAULT: none
1295 DEFAULT_DOC: Allow, unless rules exist in squid.conf.
1296 DOC_START
1297 Allowing or Denying access based on defined access lists
1298
1299 Essentially identical to http_access, but runs after redirectors
1300 and ICAP/eCAP adaptation. Allowing access control based on their
1301 output.
1302
1303 If not set then only http_access is used.
1304 DOC_END
1305
1306 NAME: http_reply_access
1307 TYPE: acl_access
1308 LOC: Config.accessList.reply
1309 DEFAULT: none
1310 DEFAULT_DOC: Allow, unless rules exist in squid.conf.
1311 DOC_START
1312 Allow replies to client requests. This is complementary to http_access.
1313
1314 http_reply_access allow|deny [!] aclname ...
1315
1316 NOTE: if there are no access lines present, the default is to allow
1317 all replies.
1318
1319 If none of the access lines cause a match the opposite of the
1320 last line will apply. Thus it is good practice to end the rules
1321 with an "allow all" or "deny all" entry.
1322
1323 This clause supports both fast and slow acl types.
1324 See http://wiki.squid-cache.org/SquidFaq/SquidAcl for details.
1325 DOC_END
1326
1327 NAME: icp_access
1328 TYPE: acl_access
1329 LOC: Config.accessList.icp
1330 DEFAULT: none
1331 DEFAULT_DOC: Deny, unless rules exist in squid.conf.
1332 DOC_START
1333 Allowing or Denying access to the ICP port based on defined
1334 access lists
1335
1336 icp_access allow|deny [!]aclname ...
1337
1338 NOTE: The default if no icp_access lines are present is to
1339 deny all traffic. This default may cause problems with peers
1340 using ICP.
1341
1342 This clause only supports fast acl types.
1343 See http://wiki.squid-cache.org/SquidFaq/SquidAcl for details.
1344
1345 # Allow ICP queries from local networks only
1346 #icp_access allow localnet
1347 #icp_access deny all
1348 DOC_END
1349
1350 NAME: htcp_access
1351 IFDEF: USE_HTCP
1352 TYPE: acl_access
1353 LOC: Config.accessList.htcp
1354 DEFAULT: none
1355 DEFAULT_DOC: Deny, unless rules exist in squid.conf.
1356 DOC_START
1357 Allowing or Denying access to the HTCP port based on defined
1358 access lists
1359
1360 htcp_access allow|deny [!]aclname ...
1361
1362 See also htcp_clr_access for details on access control for
1363 cache purge (CLR) HTCP messages.
1364
1365 NOTE: The default if no htcp_access lines are present is to
1366 deny all traffic. This default may cause problems with peers
1367 using the htcp option.
1368
1369 This clause only supports fast acl types.
1370 See http://wiki.squid-cache.org/SquidFaq/SquidAcl for details.
1371
1372 # Allow HTCP queries from local networks only
1373 #htcp_access allow localnet
1374 #htcp_access deny all
1375 DOC_END
1376
1377 NAME: htcp_clr_access
1378 IFDEF: USE_HTCP
1379 TYPE: acl_access
1380 LOC: Config.accessList.htcp_clr
1381 DEFAULT: none
1382 DEFAULT_DOC: Deny, unless rules exist in squid.conf.
1383 DOC_START
1384 Allowing or Denying access to purge content using HTCP based
1385 on defined access lists.
1386 See htcp_access for details on general HTCP access control.
1387
1388 htcp_clr_access allow|deny [!]aclname ...
1389
1390 This clause only supports fast acl types.
1391 See http://wiki.squid-cache.org/SquidFaq/SquidAcl for details.
1392
1393 # Allow HTCP CLR requests from trusted peers
1394 acl htcp_clr_peer src 192.0.2.2 2001:DB8::2
1395 htcp_clr_access allow htcp_clr_peer
1396 htcp_clr_access deny all
1397 DOC_END
1398
1399 NAME: miss_access
1400 TYPE: acl_access
1401 LOC: Config.accessList.miss
1402 DEFAULT: none
1403 DEFAULT_DOC: Allow, unless rules exist in squid.conf.
1404 DOC_START
1405 Determins whether network access is permitted when satisfying a request.
1406
1407 For example;
1408 to force your neighbors to use you as a sibling instead of
1409 a parent.
1410
1411 acl localclients src 192.0.2.0/24 2001:DB8::a:0/64
1412 miss_access deny !localclients
1413 miss_access allow all
1414
1415 This means only your local clients are allowed to fetch relayed/MISS
1416 replies from the network and all other clients can only fetch cached
1417 objects (HITs).
1418
1419 The default for this setting allows all clients who passed the
1420 http_access rules to relay via this proxy.
1421
1422 This clause only supports fast acl types.
1423 See http://wiki.squid-cache.org/SquidFaq/SquidAcl for details.
1424 DOC_END
1425
1426 NAME: ident_lookup_access
1427 TYPE: acl_access
1428 IFDEF: USE_IDENT
1429 DEFAULT: none
1430 DEFAULT_DOC: Unless rules exist in squid.conf, IDENT is not fetched.
1431 LOC: Ident::TheConfig.identLookup
1432 DOC_START
1433 A list of ACL elements which, if matched, cause an ident
1434 (RFC 931) lookup to be performed for this request. For
1435 example, you might choose to always perform ident lookups
1436 for your main multi-user Unix boxes, but not for your Macs
1437 and PCs. By default, ident lookups are not performed for
1438 any requests.
1439
1440 To enable ident lookups for specific client addresses, you
1441 can follow this example:
1442
1443 acl ident_aware_hosts src 198.168.1.0/24
1444 ident_lookup_access allow ident_aware_hosts
1445 ident_lookup_access deny all
1446
1447 Only src type ACL checks are fully supported. A srcdomain
1448 ACL might work at times, but it will not always provide
1449 the correct result.
1450
1451 This clause only supports fast acl types.
1452 See http://wiki.squid-cache.org/SquidFaq/SquidAcl for details.
1453 DOC_END
1454
1455 NAME: reply_body_max_size
1456 COMMENT: size [acl acl...]
1457 TYPE: acl_b_size_t
1458 DEFAULT: none
1459 DEFAULT_DOC: No limit is applied.
1460 LOC: Config.ReplyBodySize
1461 DOC_START
1462 This option specifies the maximum size of a reply body. It can be
1463 used to prevent users from downloading very large files, such as
1464 MP3's and movies. When the reply headers are received, the
1465 reply_body_max_size lines are processed, and the first line where
1466 all (if any) listed ACLs are true is used as the maximum body size
1467 for this reply.
1468
1469 This size is checked twice. First when we get the reply headers,
1470 we check the content-length value. If the content length value exists
1471 and is larger than the allowed size, the request is denied and the
1472 user receives an error message that says "the request or reply
1473 is too large." If there is no content-length, and the reply
1474 size exceeds this limit, the client's connection is just closed
1475 and they will receive a partial reply.
1476
1477 WARNING: downstream caches probably can not detect a partial reply
1478 if there is no content-length header, so they will cache
1479 partial responses and give them out as hits. You should NOT
1480 use this option if you have downstream caches.
1481
1482 WARNING: A maximum size smaller than the size of squid's error messages
1483 will cause an infinite loop and crash squid. Ensure that the smallest
1484 non-zero value you use is greater that the maximum header size plus
1485 the size of your largest error page.
1486
1487 If you set this parameter none (the default), there will be
1488 no limit imposed.
1489
1490 Configuration Format is:
1491 reply_body_max_size SIZE UNITS [acl ...]
1492 ie.
1493 reply_body_max_size 10 MB
1494
1495 DOC_END
1496
1497 COMMENT_START
1498 NETWORK OPTIONS
1499 -----------------------------------------------------------------------------
1500 COMMENT_END
1501
1502 NAME: http_port ascii_port
1503 TYPE: PortCfg
1504 DEFAULT: none
1505 LOC: HttpPortList
1506 DOC_START
1507 Usage: port [mode] [options]
1508 hostname:port [mode] [options]
1509 1.2.3.4:port [mode] [options]
1510
1511 The socket addresses where Squid will listen for HTTP client
1512 requests. You may specify multiple socket addresses.
1513 There are three forms: port alone, hostname with port, and
1514 IP address with port. If you specify a hostname or IP
1515 address, Squid binds the socket to that specific
1516 address. Most likely, you do not need to bind to a specific
1517 address, so you can use the port number alone.
1518
1519 If you are running Squid in accelerator mode, you
1520 probably want to listen on port 80 also, or instead.
1521
1522 The -a command line option may be used to specify additional
1523 port(s) where Squid listens for proxy request. Such ports will
1524 be plain proxy ports with no options.
1525
1526 You may specify multiple socket addresses on multiple lines.
1527
1528 Modes:
1529
1530 intercept Support for IP-Layer interception of
1531 outgoing requests without browser settings.
1532 NP: disables authentication and IPv6 on the port.
1533
1534 tproxy Support Linux TPROXY for spoofing outgoing
1535 connections using the client IP address.
1536 NP: disables authentication and maybe IPv6 on the port.
1537
1538 accel Accelerator / reverse proxy mode
1539
1540 ssl-bump For each CONNECT request allowed by ssl_bump ACLs,
1541 establish secure connection with the client and with
1542 the server, decrypt HTTPS messages as they pass through
1543 Squid, and treat them as unencrypted HTTP messages,
1544 becoming the man-in-the-middle.
1545
1546 The ssl_bump option is required to fully enable
1547 bumping of CONNECT requests.
1548
1549 Omitting the mode flag causes default forward proxy mode to be used.
1550
1551
1552 Accelerator Mode Options:
1553
1554 defaultsite=domainname
1555 What to use for the Host: header if it is not present
1556 in a request. Determines what site (not origin server)
1557 accelerators should consider the default.
1558
1559 no-vhost Disable using HTTP/1.1 Host header for virtual domain support.
1560
1561 protocol= Protocol to reconstruct accelerated and intercepted
1562 requests with. Defaults to HTTP/1.1 for http_port and
1563 HTTPS/1.1 for https_port.
1564 When an unsupported value is configured Squid will
1565 produce a FATAL error.
1566 Values: HTTP or HTTP/1.1, HTTPS or HTTPS/1.1
1567
1568 vport Virtual host port support. Using the http_port number
1569 instead of the port passed on Host: headers.
1570
1571 vport=NN Virtual host port support. Using the specified port
1572 number instead of the port passed on Host: headers.
1573
1574 act-as-origin
1575 Act as if this Squid is the origin server.
1576 This currently means generate new Date: and Expires:
1577 headers on HIT instead of adding Age:.
1578
1579 ignore-cc Ignore request Cache-Control headers.
1580
1581 WARNING: This option violates HTTP specifications if
1582 used in non-accelerator setups.
1583
1584 allow-direct Allow direct forwarding in accelerator mode. Normally
1585 accelerated requests are denied direct forwarding as if
1586 never_direct was used.
1587
1588 WARNING: this option opens accelerator mode to security
1589 vulnerabilities usually only affecting in interception
1590 mode. Make sure to protect forwarding with suitable
1591 http_access rules when using this.
1592
1593
1594 SSL Bump Mode Options:
1595 In addition to these options ssl-bump requires TLS/SSL options.
1596
1597 generate-host-certificates[=<on|off>]
1598 Dynamically create SSL server certificates for the
1599 destination hosts of bumped CONNECT requests.When
1600 enabled, the cert and key options are used to sign
1601 generated certificates. Otherwise generated
1602 certificate will be selfsigned.
1603 If there is a CA certificate lifetime of the generated
1604 certificate equals lifetime of the CA certificate. If
1605 generated certificate is selfsigned lifetime is three
1606 years.
1607 This option is enabled by default when ssl-bump is used.
1608 See the ssl-bump option above for more information.
1609
1610 dynamic_cert_mem_cache_size=SIZE
1611 Approximate total RAM size spent on cached generated
1612 certificates. If set to zero, caching is disabled. The
1613 default value is 4MB.
1614
1615 TLS / SSL Options:
1616
1617 cert= Path to SSL certificate (PEM format).
1618
1619 key= Path to SSL private key file (PEM format)
1620 if not specified, the certificate file is
1621 assumed to be a combined certificate and
1622 key file.
1623
1624 version= The version of SSL/TLS supported
1625 1 automatic (default)
1626 2 SSLv2 only
1627 3 SSLv3 only
1628 4 TLSv1.0 only
1629 5 TLSv1.1 only
1630 6 TLSv1.2 only
1631
1632 cipher= Colon separated list of supported ciphers.
1633 NOTE: some ciphers such as EDH ciphers depend on
1634 additional settings. If those settings are
1635 omitted the ciphers may be silently ignored
1636 by the OpenSSL library.
1637
1638 options= Various SSL implementation options. The most important
1639 being:
1640 NO_SSLv2 Disallow the use of SSLv2
1641 NO_SSLv3 Disallow the use of SSLv3
1642 NO_TLSv1 Disallow the use of TLSv1.0
1643 NO_TLSv1_1 Disallow the use of TLSv1.1
1644 NO_TLSv1_2 Disallow the use of TLSv1.2
1645 SINGLE_DH_USE Always create a new key when using
1646 temporary/ephemeral DH key exchanges
1647 ALL Enable various bug workarounds
1648 suggested as "harmless" by OpenSSL
1649 Be warned that this reduces SSL/TLS
1650 strength to some attacks.
1651 See OpenSSL SSL_CTX_set_options documentation for a
1652 complete list of options.
1653
1654 clientca= File containing the list of CAs to use when
1655 requesting a client certificate.
1656
1657 cafile= File containing additional CA certificates to
1658 use when verifying client certificates. If unset
1659 clientca will be used.
1660
1661 capath= Directory containing additional CA certificates
1662 and CRL lists to use when verifying client certificates.
1663
1664 crlfile= File of additional CRL lists to use when verifying
1665 the client certificate, in addition to CRLs stored in
1666 the capath. Implies VERIFY_CRL flag below.
1667
1668 dhparams= File containing DH parameters for temporary/ephemeral
1669 DH key exchanges. See OpenSSL documentation for details
1670 on how to create this file.
1671 WARNING: EDH ciphers will be silently disabled if this
1672 option is not set.
1673
1674 sslflags= Various flags modifying the use of SSL:
1675 DELAYED_AUTH
1676 Don't request client certificates
1677 immediately, but wait until acl processing
1678 requires a certificate (not yet implemented).
1679 NO_DEFAULT_CA
1680 Don't use the default CA lists built in
1681 to OpenSSL.
1682 NO_SESSION_REUSE
1683 Don't allow for session reuse. Each connection
1684 will result in a new SSL session.
1685 VERIFY_CRL
1686 Verify CRL lists when accepting client
1687 certificates.
1688 VERIFY_CRL_ALL
1689 Verify CRL lists for all certificates in the
1690 client certificate chain.
1691
1692 sslcontext= SSL session ID context identifier.
1693
1694 Other Options:
1695
1696 connection-auth[=on|off]
1697 use connection-auth=off to tell Squid to prevent
1698 forwarding Microsoft connection oriented authentication
1699 (NTLM, Negotiate and Kerberos)
1700
1701 disable-pmtu-discovery=
1702 Control Path-MTU discovery usage:
1703 off lets OS decide on what to do (default).
1704 transparent disable PMTU discovery when transparent
1705 support is enabled.
1706 always disable always PMTU discovery.
1707
1708 In many setups of transparently intercepting proxies
1709 Path-MTU discovery can not work on traffic towards the
1710 clients. This is the case when the intercepting device
1711 does not fully track connections and fails to forward
1712 ICMP must fragment messages to the cache server. If you
1713 have such setup and experience that certain clients
1714 sporadically hang or never complete requests set
1715 disable-pmtu-discovery option to 'transparent'.
1716
1717 name= Specifies a internal name for the port. Defaults to
1718 the port specification (port or addr:port)
1719
1720 tcpkeepalive[=idle,interval,timeout]
1721 Enable TCP keepalive probes of idle connections.
1722 In seconds; idle is the initial time before TCP starts
1723 probing the connection, interval how often to probe, and
1724 timeout the time before giving up.
1725
1726 If you run Squid on a dual-homed machine with an internal
1727 and an external interface we recommend you to specify the
1728 internal address:port in http_port. This way Squid will only be
1729 visible on the internal address.
1730
1731 NOCOMMENT_START
1732
1733 # Squid normally listens to port 3128
1734 http_port @DEFAULT_HTTP_PORT@
1735 NOCOMMENT_END
1736 DOC_END
1737
1738 NAME: https_port
1739 IFDEF: USE_OPENSSL
1740 TYPE: PortCfg
1741 DEFAULT: none
1742 LOC: HttpsPortList
1743 DOC_START
1744 Usage: [ip:]port cert=certificate.pem [key=key.pem] [mode] [options...]
1745
1746 The socket address where Squid will listen for client requests made
1747 over TLS or SSL connections. Commonly referred to as HTTPS.
1748
1749 This is most useful for situations where you are running squid in
1750 accelerator mode and you want to do the SSL work at the accelerator level.
1751
1752 You may specify multiple socket addresses on multiple lines,
1753 each with their own SSL certificate and/or options.
1754
1755 Modes:
1756
1757 accel Accelerator / reverse proxy mode
1758
1759 intercept Support for IP-Layer interception of
1760 outgoing requests without browser settings.
1761 NP: disables authentication and IPv6 on the port.
1762
1763 tproxy Support Linux TPROXY for spoofing outgoing
1764 connections using the client IP address.
1765 NP: disables authentication and maybe IPv6 on the port.
1766
1767 ssl-bump For each intercepted connection allowed by ssl_bump
1768 ACLs, establish a secure connection with the client and with
1769 the server, decrypt HTTPS messages as they pass through
1770 Squid, and treat them as unencrypted HTTP messages,
1771 becoming the man-in-the-middle.
1772
1773 An "ssl_bump server-first" match is required to
1774 fully enable bumping of intercepted SSL connections.
1775
1776 Requires tproxy or intercept.
1777
1778 Omitting the mode flag causes default forward proxy mode to be used.
1779
1780
1781 See http_port for a list of generic options
1782
1783
1784 SSL Options:
1785
1786 cert= Path to SSL certificate (PEM format).
1787
1788 key= Path to SSL private key file (PEM format)
1789 if not specified, the certificate file is
1790 assumed to be a combined certificate and
1791 key file.
1792
1793 version= The version of SSL/TLS supported
1794 1 automatic (default)
1795 2 SSLv2 only
1796 3 SSLv3 only
1797 4 TLSv1 only
1798
1799 cipher= Colon separated list of supported ciphers.
1800
1801 options= Various SSL engine options. The most important
1802 being:
1803 NO_SSLv2 Disallow the use of SSLv2
1804 NO_SSLv3 Disallow the use of SSLv3
1805 NO_TLSv1 Disallow the use of TLSv1
1806 SINGLE_DH_USE Always create a new key when using
1807 temporary/ephemeral DH key exchanges
1808 See src/ssl_support.c or OpenSSL SSL_CTX_set_options
1809 documentation for a complete list of options.
1810
1811 clientca= File containing the list of CAs to use when
1812 requesting a client certificate.
1813
1814 cafile= File containing additional CA certificates to
1815 use when verifying client certificates. If unset
1816 clientca will be used.
1817
1818 capath= Directory containing additional CA certificates
1819 and CRL lists to use when verifying client certificates.
1820
1821 crlfile= File of additional CRL lists to use when verifying
1822 the client certificate, in addition to CRLs stored in
1823 the capath. Implies VERIFY_CRL flag below.
1824
1825 dhparams= File containing DH parameters for temporary/ephemeral
1826 DH key exchanges.
1827
1828 sslflags= Various flags modifying the use of SSL:
1829 DELAYED_AUTH
1830 Don't request client certificates
1831 immediately, but wait until acl processing
1832 requires a certificate (not yet implemented).
1833 NO_DEFAULT_CA
1834 Don't use the default CA lists built in
1835 to OpenSSL.
1836 NO_SESSION_REUSE
1837 Don't allow for session reuse. Each connection
1838 will result in a new SSL session.
1839 VERIFY_CRL
1840 Verify CRL lists when accepting client
1841 certificates.
1842 VERIFY_CRL_ALL
1843 Verify CRL lists for all certificates in the
1844 client certificate chain.
1845
1846 sslcontext= SSL session ID context identifier.
1847
1848 generate-host-certificates[=<on|off>]
1849 Dynamically create SSL server certificates for the
1850 destination hosts of bumped SSL requests.When
1851 enabled, the cert and key options are used to sign
1852 generated certificates. Otherwise generated
1853 certificate will be selfsigned.
1854 If there is CA certificate life time of generated
1855 certificate equals lifetime of CA certificate. If
1856 generated certificate is selfsigned lifetime is three
1857 years.
1858 This option is enabled by default when SslBump is used.
1859 See the sslBump option above for more information.
1860
1861 dynamic_cert_mem_cache_size=SIZE
1862 Approximate total RAM size spent on cached generated
1863 certificates. If set to zero, caching is disabled. The
1864 default value is 4MB.
1865
1866 See http_port for a list of available options.
1867 DOC_END
1868
1869 NAME: ftp_port
1870 TYPE: PortCfg
1871 DEFAULT: none
1872 LOC: FtpPortList
1873 DOC_START
1874 Usage: [ip:]port [options]
1875
1876 Ftp options:
1877 ftp-track-dirs=on|off
1878 Enables tracking of FTP directories by injecting extra
1879 PWD commands and adjusting Request-URI (in wrapping HTTP
1880 requests) to reflect the current FTP server directory.
1881 Disabled by default.
1882
1883 NAME: tcp_outgoing_tos tcp_outgoing_ds tcp_outgoing_dscp
1884 TYPE: acl_tos
1885 DEFAULT: none
1886 LOC: Ip::Qos::TheConfig.tosToServer
1887 DOC_START
1888 Allows you to select a TOS/Diffserv value for packets outgoing
1889 on the server side, based on an ACL.
1890
1891 tcp_outgoing_tos ds-field [!]aclname ...
1892
1893 Example where normal_service_net uses the TOS value 0x00
1894 and good_service_net uses 0x20
1895
1896 acl normal_service_net src 10.0.0.0/24
1897 acl good_service_net src 10.0.1.0/24
1898 tcp_outgoing_tos 0x00 normal_service_net
1899 tcp_outgoing_tos 0x20 good_service_net
1900
1901 TOS/DSCP values really only have local significance - so you should
1902 know what you're specifying. For more information, see RFC2474,
1903 RFC2475, and RFC3260.
1904
1905 The TOS/DSCP byte must be exactly that - a octet value 0 - 255, or
1906 "default" to use whatever default your host has. Note that in
1907 practice often only multiples of 4 is usable as the two rightmost bits
1908 have been redefined for use by ECN (RFC 3168 section 23.1).
1909
1910 Processing proceeds in the order specified, and stops at first fully
1911 matching line.
1912
1913 Only fast ACLs are supported.
1914 DOC_END
1915
1916 NAME: clientside_tos
1917 TYPE: acl_tos
1918 DEFAULT: none
1919 LOC: Ip::Qos::TheConfig.tosToClient
1920 DOC_START
1921 Allows you to select a TOS/Diffserv value for packets being transmitted
1922 on the client-side, based on an ACL.
1923
1924 clientside_tos ds-field [!]aclname ...
1925
1926 Example where normal_service_net uses the TOS value 0x00
1927 and good_service_net uses 0x20
1928
1929 acl normal_service_net src 10.0.0.0/24
1930 acl good_service_net src 10.0.1.0/24
1931 clientside_tos 0x00 normal_service_net
1932 clientside_tos 0x20 good_service_net
1933
1934 Note: This feature is incompatible with qos_flows. Any TOS values set here
1935 will be overwritten by TOS values in qos_flows.
1936 DOC_END
1937
1938 NAME: tcp_outgoing_mark
1939 TYPE: acl_nfmark
1940 IFDEF: SO_MARK&&USE_LIBCAP
1941 DEFAULT: none
1942 LOC: Ip::Qos::TheConfig.nfmarkToServer
1943 DOC_START
1944 Allows you to apply a Netfilter mark value to outgoing packets
1945 on the server side, based on an ACL.
1946
1947 tcp_outgoing_mark mark-value [!]aclname ...
1948
1949 Example where normal_service_net uses the mark value 0x00
1950 and good_service_net uses 0x20
1951
1952 acl normal_service_net src 10.0.0.0/24
1953 acl good_service_net src 10.0.1.0/24
1954 tcp_outgoing_mark 0x00 normal_service_net
1955 tcp_outgoing_mark 0x20 good_service_net
1956
1957 Only fast ACLs are supported.
1958 DOC_END
1959
1960 NAME: clientside_mark
1961 TYPE: acl_nfmark
1962 IFDEF: SO_MARK&&USE_LIBCAP
1963 DEFAULT: none
1964 LOC: Ip::Qos::TheConfig.nfmarkToClient
1965 DOC_START
1966 Allows you to apply a Netfilter mark value to packets being transmitted
1967 on the client-side, based on an ACL.
1968
1969 clientside_mark mark-value [!]aclname ...
1970
1971 Example where normal_service_net uses the mark value 0x00
1972 and good_service_net uses 0x20
1973
1974 acl normal_service_net src 10.0.0.0/24
1975 acl good_service_net src 10.0.1.0/24
1976 clientside_mark 0x00 normal_service_net
1977 clientside_mark 0x20 good_service_net
1978
1979 Note: This feature is incompatible with qos_flows. Any mark values set here
1980 will be overwritten by mark values in qos_flows.
1981 DOC_END
1982
1983 NAME: qos_flows
1984 TYPE: QosConfig
1985 IFDEF: USE_QOS_TOS
1986 DEFAULT: none
1987 LOC: Ip::Qos::TheConfig
1988 DOC_START
1989 Allows you to select a TOS/DSCP value to mark outgoing
1990 connections to the client, based on where the reply was sourced.
1991 For platforms using netfilter, allows you to set a netfilter mark
1992 value instead of, or in addition to, a TOS value.
1993
1994 By default this functionality is disabled. To enable it with the default
1995 settings simply use "qos_flows mark" or "qos_flows tos". Default
1996 settings will result in the netfilter mark or TOS value being copied
1997 from the upstream connection to the client. Note that it is the connection
1998 CONNMARK value not the packet MARK value that is copied.
1999
2000 It is not currently possible to copy the mark or TOS value from the
2001 client to the upstream connection request.
2002
2003 TOS values really only have local significance - so you should
2004 know what you're specifying. For more information, see RFC2474,
2005 RFC2475, and RFC3260.
2006
2007 The TOS/DSCP byte must be exactly that - a octet value 0 - 255. Note that
2008 in practice often only multiples of 4 is usable as the two rightmost bits
2009 have been redefined for use by ECN (RFC 3168 section 23.1).
2010
2011 Mark values can be any unsigned 32-bit integer value.
2012
2013 This setting is configured by setting the following values:
2014
2015 tos|mark Whether to set TOS or netfilter mark values
2016
2017 local-hit=0xFF Value to mark local cache hits.
2018
2019 sibling-hit=0xFF Value to mark hits from sibling peers.
2020
2021 parent-hit=0xFF Value to mark hits from parent peers.
2022
2023 miss=0xFF[/mask] Value to mark cache misses. Takes precedence
2024 over the preserve-miss feature (see below), unless
2025 mask is specified, in which case only the bits
2026 specified in the mask are written.
2027
2028 The TOS variant of the following features are only possible on Linux
2029 and require your kernel to be patched with the TOS preserving ZPH
2030 patch, available from http://zph.bratcheda.org
2031 No patch is needed to preserve the netfilter mark, which will work
2032 with all variants of netfilter.
2033
2034 disable-preserve-miss
2035 This option disables the preservation of the TOS or netfilter
2036 mark. By default, the existing TOS or netfilter mark value of
2037 the response coming from the remote server will be retained
2038 and masked with miss-mark.
2039 NOTE: in the case of a netfilter mark, the mark must be set on
2040 the connection (using the CONNMARK target) not on the packet
2041 (MARK target).
2042
2043 miss-mask=0xFF
2044 Allows you to mask certain bits in the TOS or mark value
2045 received from the remote server, before copying the value to
2046 the TOS sent towards clients.
2047 Default for tos: 0xFF (TOS from server is not changed).
2048 Default for mark: 0xFFFFFFFF (mark from server is not changed).
2049
2050 All of these features require the --enable-zph-qos compilation flag
2051 (enabled by default). Netfilter marking also requires the
2052 libnetfilter_conntrack libraries (--with-netfilter-conntrack) and
2053 libcap 2.09+ (--with-libcap).
2054
2055 DOC_END
2056
2057 NAME: tcp_outgoing_address
2058 TYPE: acl_address
2059 DEFAULT: none
2060 DEFAULT_DOC: Address selection is performed by the operating system.
2061 LOC: Config.accessList.outgoing_address
2062 DOC_START
2063 Allows you to map requests to different outgoing IP addresses
2064 based on the username or source address of the user making
2065 the request.
2066
2067 tcp_outgoing_address ipaddr [[!]aclname] ...
2068
2069 For example;
2070 Forwarding clients with dedicated IPs for certain subnets.
2071
2072 acl normal_service_net src 10.0.0.0/24
2073 acl good_service_net src 10.0.2.0/24
2074
2075 tcp_outgoing_address 2001:db8::c001 good_service_net
2076 tcp_outgoing_address 10.1.0.2 good_service_net
2077
2078 tcp_outgoing_address 2001:db8::beef normal_service_net
2079 tcp_outgoing_address 10.1.0.1 normal_service_net
2080
2081 tcp_outgoing_address 2001:db8::1
2082 tcp_outgoing_address 10.1.0.3
2083
2084 Processing proceeds in the order specified, and stops at first fully
2085 matching line.
2086
2087 Squid will add an implicit IP version test to each line.
2088 Requests going to IPv4 websites will use the outgoing 10.1.0.* addresses.
2089 Requests going to IPv6 websites will use the outgoing 2001:db8:* addresses.
2090
2091
2092 NOTE: The use of this directive using client dependent ACLs is
2093 incompatible with the use of server side persistent connections. To
2094 ensure correct results it is best to set server_persistent_connections
2095 to off when using this directive in such configurations.
2096
2097 NOTE: The use of this directive to set a local IP on outgoing TCP links
2098 is incompatible with using TPROXY to set client IP out outbound TCP links.
2099 When needing to contact peers use the no-tproxy cache_peer option and the
2100 client_dst_passthru directive re-enable normal forwarding such as this.
2101
2102 DOC_END
2103
2104 NAME: host_verify_strict
2105 TYPE: onoff
2106 DEFAULT: off
2107 LOC: Config.onoff.hostStrictVerify
2108 DOC_START
2109 Regardless of this option setting, when dealing with intercepted
2110 traffic, Squid always verifies that the destination IP address matches
2111 the Host header domain or IP (called 'authority form URL').
2112
2113 This enforcement is performed to satisfy a MUST-level requirement in
2114 RFC 2616 section 14.23: "The Host field value MUST represent the naming
2115 authority of the origin server or gateway given by the original URL".
2116
2117 When set to ON:
2118 Squid always responds with an HTTP 409 (Conflict) error
2119 page and logs a security warning if there is no match.
2120
2121 Squid verifies that the destination IP address matches
2122 the Host header for forward-proxy and reverse-proxy traffic
2123 as well. For those traffic types, Squid also enables the
2124 following checks, comparing the corresponding Host header
2125 and Request-URI components:
2126
2127 * The host names (domain or IP) must be identical,
2128 but valueless or missing Host header disables all checks.
2129 For the two host names to match, both must be either IP
2130 or FQDN.
2131
2132 * Port numbers must be identical, but if a port is missing
2133 the scheme-default port is assumed.
2134
2135
2136 When set to OFF (the default):
2137 Squid allows suspicious requests to continue but logs a
2138 security warning and blocks caching of the response.
2139
2140 * Forward-proxy traffic is not checked at all.
2141
2142 * Reverse-proxy traffic is not checked at all.
2143
2144 * Intercepted traffic which passes verification is handled
2145 according to client_dst_passthru.
2146
2147 * Intercepted requests which fail verification are sent
2148 to the client original destination instead of DIRECT.
2149 This overrides 'client_dst_passthru off'.
2150
2151 For now suspicious intercepted CONNECT requests are always
2152 responded to with an HTTP 409 (Conflict) error page.
2153
2154
2155 SECURITY NOTE:
2156
2157 As described in CVE-2009-0801 when the Host: header alone is used
2158 to determine the destination of a request it becomes trivial for
2159 malicious scripts on remote websites to bypass browser same-origin
2160 security policy and sandboxing protections.
2161
2162 The cause of this is that such applets are allowed to perform their
2163 own HTTP stack, in which case the same-origin policy of the browser
2164 sandbox only verifies that the applet tries to contact the same IP
2165 as from where it was loaded at the IP level. The Host: header may
2166 be different from the connected IP and approved origin.
2167
2168 DOC_END
2169
2170 NAME: client_dst_passthru
2171 TYPE: onoff
2172 DEFAULT: on
2173 LOC: Config.onoff.client_dst_passthru
2174 DOC_START
2175 With NAT or TPROXY intercepted traffic Squid may pass the request
2176 directly to the original client destination IP or seek a faster
2177 source using the HTTP Host header.
2178
2179 Using Host to locate alternative servers can provide faster
2180 connectivity with a range of failure recovery options.
2181 But can also lead to connectivity trouble when the client and
2182 server are attempting stateful interactions unaware of the proxy.
2183
2184 This option (on by default) prevents alternative DNS entries being
2185 located to send intercepted traffic DIRECT to an origin server.
2186 The clients original destination IP and port will be used instead.
2187
2188 Regardless of this option setting, when dealing with intercepted
2189 traffic Squid will verify the Host: header and any traffic which
2190 fails Host verification will be treated as if this option were ON.
2191
2192 see host_verify_strict for details on the verification process.
2193 DOC_END
2194
2195 COMMENT_START
2196 SSL OPTIONS
2197 -----------------------------------------------------------------------------
2198 COMMENT_END
2199
2200 NAME: ssl_unclean_shutdown
2201 IFDEF: USE_OPENSSL
2202 TYPE: onoff
2203 DEFAULT: off
2204 LOC: Config.SSL.unclean_shutdown
2205 DOC_START
2206 Some browsers (especially MSIE) bugs out on SSL shutdown
2207 messages.
2208 DOC_END
2209
2210 NAME: ssl_engine
2211 IFDEF: USE_OPENSSL
2212 TYPE: string
2213 LOC: Config.SSL.ssl_engine
2214 DEFAULT: none
2215 DOC_START
2216 The OpenSSL engine to use. You will need to set this if you
2217 would like to use hardware SSL acceleration for example.
2218 DOC_END
2219
2220 NAME: sslproxy_client_certificate
2221 IFDEF: USE_OPENSSL
2222 DEFAULT: none
2223 LOC: Config.ssl_client.cert
2224 TYPE: string
2225 DOC_START
2226 Client SSL Certificate to use when proxying https:// URLs
2227 DOC_END
2228
2229 NAME: sslproxy_client_key
2230 IFDEF: USE_OPENSSL
2231 DEFAULT: none
2232 LOC: Config.ssl_client.key
2233 TYPE: string
2234 DOC_START
2235 Client SSL Key to use when proxying https:// URLs
2236 DOC_END
2237
2238 NAME: sslproxy_version
2239 IFDEF: USE_OPENSSL
2240 DEFAULT: 1
2241 DEFAULT_DOC: automatic SSL/TLS version negotiation
2242 LOC: Config.ssl_client.version
2243 TYPE: int
2244 DOC_START
2245 SSL version level to use when proxying https:// URLs
2246
2247 The versions of SSL/TLS supported:
2248
2249 1 automatic (default)
2250 2 SSLv2 only
2251 3 SSLv3 only
2252 4 TLSv1.0 only
2253 5 TLSv1.1 only
2254 6 TLSv1.2 only
2255 DOC_END
2256
2257 NAME: sslproxy_options
2258 IFDEF: USE_OPENSSL
2259 DEFAULT: none
2260 LOC: Config.ssl_client.options
2261 TYPE: string
2262 DOC_START
2263 SSL implementation options to use when proxying https:// URLs
2264
2265 The most important being:
2266
2267 NO_SSLv2 Disallow the use of SSLv2
2268 NO_SSLv3 Disallow the use of SSLv3
2269 NO_TLSv1 Disallow the use of TLSv1.0
2270 NO_TLSv1_1 Disallow the use of TLSv1.1
2271 NO_TLSv1_2 Disallow the use of TLSv1.2
2272 SINGLE_DH_USE
2273 Always create a new key when using temporary/ephemeral
2274 DH key exchanges
2275 SSL_OP_NO_TICKET
2276 Disable use of RFC5077 session tickets. Some servers
2277 may have problems understanding the TLS extension due
2278 to ambiguous specification in RFC4507.
2279 ALL Enable various bug workarounds suggested as "harmless"
2280 by OpenSSL. Be warned that this may reduce SSL/TLS
2281 strength to some attacks.
2282
2283 See the OpenSSL SSL_CTX_set_options documentation for a
2284 complete list of possible options.
2285 DOC_END
2286
2287 NAME: sslproxy_cipher
2288 IFDEF: USE_OPENSSL
2289 DEFAULT: none
2290 LOC: Config.ssl_client.cipher
2291 TYPE: string
2292 DOC_START
2293 SSL cipher list to use when proxying https:// URLs
2294
2295 Colon separated list of supported ciphers.
2296 DOC_END
2297
2298 NAME: sslproxy_cafile
2299 IFDEF: USE_OPENSSL
2300 DEFAULT: none
2301 LOC: Config.ssl_client.cafile
2302 TYPE: string
2303 DOC_START
2304 file containing CA certificates to use when verifying server
2305 certificates while proxying https:// URLs
2306 DOC_END
2307
2308 NAME: sslproxy_capath
2309 IFDEF: USE_OPENSSL
2310 DEFAULT: none
2311 LOC: Config.ssl_client.capath
2312 TYPE: string
2313 DOC_START
2314 directory containing CA certificates to use when verifying
2315 server certificates while proxying https:// URLs
2316 DOC_END
2317
2318 NAME: sslproxy_session_ttl
2319 IFDEF: USE_OPENSSL
2320 DEFAULT: 300
2321 LOC: Config.SSL.session_ttl
2322 TYPE: int
2323 DOC_START
2324 Sets the timeout value for SSL sessions
2325 DOC_END
2326
2327 NAME: sslproxy_session_cache_size
2328 IFDEF: USE_OPENSSL
2329 DEFAULT: 2 MB
2330 LOC: Config.SSL.sessionCacheSize
2331 TYPE: b_size_t
2332 DOC_START
2333 Sets the cache size to use for ssl session
2334 DOC_END
2335
2336 NAME: ssl_bump
2337 IFDEF: USE_OPENSSL
2338 TYPE: sslproxy_ssl_bump
2339 LOC: Config.accessList.ssl_bump
2340 DEFAULT_DOC: Does not bump unless rules are present in squid.conf
2341 DEFAULT: none
2342 DOC_START
2343 This option is consulted when a CONNECT request is received on
2344 an http_port (or a new connection is intercepted at an
2345 https_port), provided that port was configured with an ssl-bump
2346 flag. The subsequent data on the connection is either treated as
2347 HTTPS and decrypted OR tunneled at TCP level without decryption,
2348 depending on the first bumping "mode" which ACLs match.
2349
2350 ssl_bump <mode> [!]acl ...
2351
2352 The following bumping modes are supported:
2353
2354 client-first
2355 Allow bumping of the connection. Establish a secure connection
2356 with the client first, then connect to the server. This old mode
2357 does not allow Squid to mimic server SSL certificate and does
2358 not work with intercepted SSL connections.
2359
2360 server-first
2361 Allow bumping of the connection. Establish a secure connection
2362 with the server first, then establish a secure connection with
2363 the client, using a mimicked server certificate. Works with both
2364 CONNECT requests and intercepted SSL connections.
2365
2366 none
2367 Become a TCP tunnel without decoding the connection.
2368 Works with both CONNECT requests and intercepted SSL
2369 connections. This is the default behavior when no
2370 ssl_bump option is given or no ssl_bump ACLs match.
2371
2372 By default, no connections are bumped.
2373
2374 The first matching ssl_bump option wins. If no ACLs match, the
2375 connection is not bumped. Unlike most allow/deny ACL lists, ssl_bump
2376 does not have an implicit "negate the last given option" rule. You
2377 must make that rule explicit if you convert old ssl_bump allow/deny
2378 rules that rely on such an implicit rule.
2379
2380 This clause supports both fast and slow acl types.
2381 See http://wiki.squid-cache.org/SquidFaq/SquidAcl for details.
2382
2383 See also: http_port ssl-bump, https_port ssl-bump
2384
2385
2386 # Example: Bump all requests except those originating from
2387 # localhost or those going to example.com.
2388
2389 acl broken_sites dstdomain .example.com
2390 ssl_bump none localhost
2391 ssl_bump none broken_sites
2392 ssl_bump server-first all
2393 DOC_END
2394
2395 NAME: sslproxy_flags
2396 IFDEF: USE_OPENSSL
2397 DEFAULT: none
2398 LOC: Config.ssl_client.flags
2399 TYPE: string
2400 DOC_START
2401 Various flags modifying the use of SSL while proxying https:// URLs:
2402 DONT_VERIFY_PEER Accept certificates that fail verification.
2403 For refined control, see sslproxy_cert_error.
2404 NO_DEFAULT_CA Don't use the default CA list built in
2405 to OpenSSL.
2406 DOC_END
2407
2408 NAME: sslproxy_cert_error
2409 IFDEF: USE_OPENSSL
2410 DEFAULT: none
2411 DEFAULT_DOC: Server certificate errors terminate the transaction.
2412 LOC: Config.ssl_client.cert_error
2413 TYPE: acl_access
2414 DOC_START
2415 Use this ACL to bypass server certificate validation errors.
2416
2417 For example, the following lines will bypass all validation errors
2418 when talking to servers for example.com. All other
2419 validation errors will result in ERR_SECURE_CONNECT_FAIL error.
2420
2421 acl BrokenButTrustedServers dstdomain example.com
2422 sslproxy_cert_error allow BrokenButTrustedServers
2423 sslproxy_cert_error deny all
2424
2425 This clause only supports fast acl types.
2426 See http://wiki.squid-cache.org/SquidFaq/SquidAcl for details.
2427 Using slow acl types may result in server crashes
2428
2429 Without this option, all server certificate validation errors
2430 terminate the transaction to protect Squid and the client.
2431
2432 SQUID_X509_V_ERR_INFINITE_VALIDATION error cannot be bypassed
2433 but should not happen unless your OpenSSL library is buggy.
2434
2435 SECURITY WARNING:
2436 Bypassing validation errors is dangerous because an
2437 error usually implies that the server cannot be trusted
2438 and the connection may be insecure.
2439
2440 See also: sslproxy_flags and DONT_VERIFY_PEER.
2441 DOC_END
2442
2443 NAME: sslproxy_cert_sign
2444 IFDEF: USE_OPENSSL
2445 DEFAULT: none
2446 POSTSCRIPTUM: signUntrusted ssl::certUntrusted
2447 POSTSCRIPTUM: signSelf ssl::certSelfSigned
2448 POSTSCRIPTUM: signTrusted all
2449 TYPE: sslproxy_cert_sign
2450 LOC: Config.ssl_client.cert_sign
2451 DOC_START
2452
2453 sslproxy_cert_sign <signing algorithm> acl ...
2454
2455 The following certificate signing algorithms are supported:
2456
2457 signTrusted
2458 Sign using the configured CA certificate which is usually
2459 placed in and trusted by end-user browsers. This is the
2460 default for trusted origin server certificates.
2461
2462 signUntrusted
2463 Sign to guarantee an X509_V_ERR_CERT_UNTRUSTED browser error.
2464 This is the default for untrusted origin server certificates
2465 that are not self-signed (see ssl::certUntrusted).
2466
2467 signSelf
2468 Sign using a self-signed certificate with the right CN to
2469 generate a X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT error in the
2470 browser. This is the default for self-signed origin server
2471 certificates (see ssl::certSelfSigned).
2472
2473 This clause only supports fast acl types.
2474
2475 When sslproxy_cert_sign acl(s) match, Squid uses the corresponding
2476 signing algorithm to generate the certificate and ignores all
2477 subsequent sslproxy_cert_sign options (the first match wins). If no
2478 acl(s) match, the default signing algorithm is determined by errors
2479 detected when obtaining and validating the origin server certificate.
2480
2481 WARNING: SQUID_X509_V_ERR_DOMAIN_MISMATCH and ssl:certDomainMismatch can
2482 be used with sslproxy_cert_adapt, but if and only if Squid is bumping a
2483 CONNECT request that carries a domain name. In all other cases (CONNECT
2484 to an IP address or an intercepted SSL connection), Squid cannot detect
2485 the domain mismatch at certificate generation time when
2486 bump-server-first is used.
2487 DOC_END
2488
2489 NAME: sslproxy_cert_adapt
2490 IFDEF: USE_OPENSSL
2491 DEFAULT: none
2492 TYPE: sslproxy_cert_adapt
2493 LOC: Config.ssl_client.cert_adapt
2494 DOC_START
2495
2496 sslproxy_cert_adapt <adaptation algorithm> acl ...
2497
2498 The following certificate adaptation algorithms are supported:
2499
2500 setValidAfter
2501 Sets the "Not After" property to the "Not After" property of
2502 the CA certificate used to sign generated certificates.
2503
2504 setValidBefore
2505 Sets the "Not Before" property to the "Not Before" property of
2506 the CA certificate used to sign generated certificates.
2507
2508 setCommonName or setCommonName{CN}
2509 Sets Subject.CN property to the host name specified as a
2510 CN parameter or, if no explicit CN parameter was specified,
2511 extracted from the CONNECT request. It is a misconfiguration
2512 to use setCommonName without an explicit parameter for
2513 intercepted or tproxied SSL connections.
2514
2515 This clause only supports fast acl types.
2516
2517 Squid first groups sslproxy_cert_adapt options by adaptation algorithm.
2518 Within a group, when sslproxy_cert_adapt acl(s) match, Squid uses the
2519 corresponding adaptation algorithm to generate the certificate and
2520 ignores all subsequent sslproxy_cert_adapt options in that algorithm's
2521 group (i.e., the first match wins within each algorithm group). If no
2522 acl(s) match, the default mimicking action takes place.
2523
2524 WARNING: SQUID_X509_V_ERR_DOMAIN_MISMATCH and ssl:certDomainMismatch can
2525 be used with sslproxy_cert_adapt, but if and only if Squid is bumping a
2526 CONNECT request that carries a domain name. In all other cases (CONNECT
2527 to an IP address or an intercepted SSL connection), Squid cannot detect
2528 the domain mismatch at certificate generation time when
2529 bump-server-first is used.
2530 DOC_END
2531
2532 NAME: sslpassword_program
2533 IFDEF: USE_OPENSSL
2534 DEFAULT: none
2535 LOC: Config.Program.ssl_password
2536 TYPE: string
2537 DOC_START
2538 Specify a program used for entering SSL key passphrases
2539 when using encrypted SSL certificate keys. If not specified
2540 keys must either be unencrypted, or Squid started with the -N
2541 option to allow it to query interactively for the passphrase.
2542
2543 The key file name is given as argument to the program allowing
2544 selection of the right password if you have multiple encrypted
2545 keys.
2546 DOC_END
2547
2548 COMMENT_START
2549 OPTIONS RELATING TO EXTERNAL SSL_CRTD
2550 -----------------------------------------------------------------------------
2551 COMMENT_END
2552
2553 NAME: sslcrtd_program
2554 TYPE: eol
2555 IFDEF: USE_SSL_CRTD
2556 DEFAULT: @DEFAULT_SSL_CRTD@ -s @DEFAULT_SSL_DB_DIR@ -M 4MB
2557 LOC: Ssl::TheConfig.ssl_crtd
2558 DOC_START
2559 Specify the location and options of the executable for ssl_crtd process.
2560 @DEFAULT_SSL_CRTD@ program requires -s and -M parameters
2561 For more information use:
2562 @DEFAULT_SSL_CRTD@ -h
2563 DOC_END
2564
2565 NAME: sslcrtd_children
2566 TYPE: HelperChildConfig
2567 IFDEF: USE_SSL_CRTD
2568 DEFAULT: 32 startup=5 idle=1
2569 LOC: Ssl::TheConfig.ssl_crtdChildren
2570 DOC_START
2571 The maximum number of processes spawn to service ssl server.
2572 The maximum this may be safely set to is 32.
2573
2574 The startup= and idle= options allow some measure of skew in your
2575 tuning.
2576
2577 startup=N
2578
2579 Sets the minimum number of processes to spawn when Squid
2580 starts or reconfigures. When set to zero the first request will
2581 cause spawning of the first child process to handle it.
2582
2583 Starting too few children temporary slows Squid under load while it
2584 tries to spawn enough additional processes to cope with traffic.
2585
2586 idle=N
2587
2588 Sets a minimum of how many processes Squid is to try and keep available
2589 at all times. When traffic begins to rise above what the existing
2590 processes can handle this many more will be spawned up to the maximum
2591 configured. A minimum setting of 1 is required.
2592
2593 You must have at least one ssl_crtd process.
2594 DOC_END
2595
2596 NAME: sslcrtvalidator_program
2597 TYPE: eol
2598 IFDEF: USE_OPENSSL
2599 DEFAULT: none
2600 LOC: Ssl::TheConfig.ssl_crt_validator
2601 DOC_START
2602 Specify the location and options of the executable for ssl_crt_validator
2603 process.
2604
2605 Usage: sslcrtvalidator_program [ttl=n] [cache=n] path ...
2606
2607 Options:
2608 ttl=n TTL in seconds for cached results. The default is 60 secs
2609 cache=n limit the result cache size. The default value is 2048
2610 DOC_END
2611
2612 NAME: sslcrtvalidator_children
2613 TYPE: HelperChildConfig
2614 IFDEF: USE_OPENSSL
2615 DEFAULT: 32 startup=5 idle=1 concurrency=1
2616 LOC: Ssl::TheConfig.ssl_crt_validator_Children
2617 DOC_START
2618 The maximum number of processes spawn to service SSL server.
2619 The maximum this may be safely set to is 32.
2620
2621 The startup= and idle= options allow some measure of skew in your
2622 tuning.
2623
2624 startup=N
2625
2626 Sets the minimum number of processes to spawn when Squid
2627 starts or reconfigures. When set to zero the first request will
2628 cause spawning of the first child process to handle it.
2629
2630 Starting too few children temporary slows Squid under load while it
2631 tries to spawn enough additional processes to cope with traffic.
2632
2633 idle=N
2634
2635 Sets a minimum of how many processes Squid is to try and keep available
2636 at all times. When traffic begins to rise above what the existing
2637 processes can handle this many more will be spawned up to the maximum
2638 configured. A minimum setting of 1 is required.
2639
2640 concurrency=
2641
2642 The number of requests each certificate validator helper can handle in
2643 parallel. A value of 0 indicates the certficate validator does not
2644 support concurrency. Defaults to 1.
2645
2646 When this directive is set to a value >= 1 then the protocol
2647 used to communicate with the helper is modified to include
2648 a request ID in front of the request/response. The request
2649 ID from the request must be echoed back with the response
2650 to that request.
2651
2652 You must have at least one ssl_crt_validator process.
2653 DOC_END
2654
2655 COMMENT_START
2656 OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM
2657 -----------------------------------------------------------------------------
2658 COMMENT_END
2659
2660 NAME: cache_peer
2661 TYPE: peer
2662 DEFAULT: none
2663 LOC: Config.peers
2664 DOC_START
2665 To specify other caches in a hierarchy, use the format:
2666
2667 cache_peer hostname type http-port icp-port [options]
2668
2669 For example,
2670
2671 # proxy icp
2672 # hostname type port port options
2673 # -------------------- -------- ----- ----- -----------
2674 cache_peer parent.foo.net parent 3128 3130 default
2675 cache_peer sib1.foo.net sibling 3128 3130 proxy-only
2676 cache_peer sib2.foo.net sibling 3128 3130 proxy-only
2677 cache_peer example.com parent 80 0 default
2678 cache_peer cdn.example.com sibling 3128 0
2679
2680 type: either 'parent', 'sibling', or 'multicast'.
2681
2682 proxy-port: The port number where the peer accept HTTP requests.
2683 For other Squid proxies this is usually 3128
2684 For web servers this is usually 80
2685
2686 icp-port: Used for querying neighbor caches about objects.
2687 Set to 0 if the peer does not support ICP or HTCP.
2688 See ICP and HTCP options below for additional details.
2689
2690
2691 ==== ICP OPTIONS ====
2692
2693 You MUST also set icp_port and icp_access explicitly when using these options.
2694 The defaults will prevent peer traffic using ICP.
2695
2696
2697 no-query Disable ICP queries to this neighbor.
2698
2699 multicast-responder
2700 Indicates the named peer is a member of a multicast group.
2701 ICP queries will not be sent directly to the peer, but ICP
2702 replies will be accepted from it.
2703
2704 closest-only Indicates that, for ICP_OP_MISS replies, we'll only forward
2705 CLOSEST_PARENT_MISSes and never FIRST_PARENT_MISSes.
2706
2707 background-ping
2708 To only send ICP queries to this neighbor infrequently.
2709 This is used to keep the neighbor round trip time updated
2710 and is usually used in conjunction with weighted-round-robin.
2711
2712
2713 ==== HTCP OPTIONS ====
2714
2715 You MUST also set htcp_port and htcp_access explicitly when using these options.
2716 The defaults will prevent peer traffic using HTCP.
2717
2718
2719 htcp Send HTCP, instead of ICP, queries to the neighbor.
2720 You probably also want to set the "icp-port" to 4827
2721 instead of 3130. This directive accepts a comma separated
2722 list of options described below.
2723
2724 htcp=oldsquid Send HTCP to old Squid versions (2.5 or earlier).
2725
2726 htcp=no-clr Send HTCP to the neighbor but without
2727 sending any CLR requests. This cannot be used with
2728 only-clr.
2729
2730 htcp=only-clr Send HTCP to the neighbor but ONLY CLR requests.
2731 This cannot be used with no-clr.
2732
2733 htcp=no-purge-clr
2734 Send HTCP to the neighbor including CLRs but only when
2735 they do not result from PURGE requests.
2736
2737 htcp=forward-clr
2738 Forward any HTCP CLR requests this proxy receives to the peer.
2739
2740
2741 ==== PEER SELECTION METHODS ====
2742
2743 The default peer selection method is ICP, with the first responding peer
2744 being used as source. These options can be used for better load balancing.
2745
2746
2747 default This is a parent cache which can be used as a "last-resort"
2748 if a peer cannot be located by any of the peer-selection methods.
2749 If specified more than once, only the first is used.
2750
2751 round-robin Load-Balance parents which should be used in a round-robin
2752 fashion in the absence of any ICP queries.
2753 weight=N can be used to add bias.
2754
2755 weighted-round-robin
2756 Load-Balance parents which should be used in a round-robin
2757 fashion with the frequency of each parent being based on the
2758 round trip time. Closer parents are used more often.
2759 Usually used for background-ping parents.
2760 weight=N can be used to add bias.
2761
2762 carp Load-Balance parents which should be used as a CARP array.
2763 The requests will be distributed among the parents based on the
2764 CARP load balancing hash function based on their weight.
2765
2766 userhash Load-balance parents based on the client proxy_auth or ident username.
2767
2768 sourcehash Load-balance parents based on the client source IP.
2769
2770 multicast-siblings
2771 To be used only for cache peers of type "multicast".
2772 ALL members of this multicast group have "sibling"
2773 relationship with it, not "parent". This is to a multicast
2774 group when the requested object would be fetched only from
2775 a "parent" cache, anyway. It's useful, e.g., when
2776 configuring a pool of redundant Squid proxies, being
2777 members of the same multicast group.
2778
2779
2780 ==== PEER SELECTION OPTIONS ====
2781
2782 weight=N use to affect the selection of a peer during any weighted
2783 peer-selection mechanisms.
2784 The weight must be an integer; default is 1,
2785 larger weights are favored more.
2786 This option does not affect parent selection if a peering
2787 protocol is not in use.
2788
2789 basetime=N Specify a base amount to be subtracted from round trip
2790 times of parents.
2791 It is subtracted before division by weight in calculating
2792 which parent to fectch from. If the rtt is less than the
2793 base time the rtt is set to a minimal value.
2794
2795 ttl=N Specify a TTL to use when sending multicast ICP queries
2796 to this address.
2797 Only useful when sending to a multicast group.
2798 Because we don't accept ICP replies from random
2799 hosts, you must configure other group members as
2800 peers with the 'multicast-responder' option.
2801
2802 no-delay To prevent access to this neighbor from influencing the
2803 delay pools.
2804
2805 digest-url=URL Tell Squid to fetch the cache digest (if digests are
2806 enabled) for this host from the specified URL rather
2807 than the Squid default location.
2808
2809
2810 ==== CARP OPTIONS ====
2811
2812 carp-key=key-specification
2813 use a different key than the full URL to hash against the peer.
2814 the key-specification is a comma-separated list of the keywords
2815 scheme, host, port, path, params
2816 Order is not important.
2817
2818 ==== ACCELERATOR / REVERSE-PROXY OPTIONS ====
2819
2820 originserver Causes this parent to be contacted as an origin server.
2821 Meant to be used in accelerator setups when the peer
2822 is a web server.
2823
2824 forceddomain=name
2825 Set the Host header of requests forwarded to this peer.
2826 Useful in accelerator setups where the server (peer)
2827 expects a certain domain name but clients may request
2828 others. ie example.com or www.example.com
2829
2830 no-digest Disable request of cache digests.
2831
2832 no-netdb-exchange
2833 Disables requesting ICMP RTT database (NetDB).
2834
2835
2836 ==== AUTHENTICATION OPTIONS ====
2837
2838 login=user:password
2839 If this is a personal/workgroup proxy and your parent
2840 requires proxy authentication.
2841
2842 Note: The string can include URL escapes (i.e. %20 for
2843 spaces). This also means % must be written as %%.
2844
2845 login=PASSTHRU
2846 Send login details received from client to this peer.
2847 Both Proxy- and WWW-Authorization headers are passed
2848 without alteration to the peer.
2849 Authentication is not required by Squid for this to work.
2850
2851 Note: This will pass any form of authentication but
2852 only Basic auth will work through a proxy unless the
2853 connection-auth options are also used.
2854
2855 login=PASS Send login details received from client to this peer.
2856 Authentication is not required by this option.
2857
2858 If there are no client-provided authentication headers
2859 to pass on, but username and password are available
2860 from an external ACL user= and password= result tags
2861 they may be sent instead.
2862
2863 Note: To combine this with proxy_auth both proxies must
2864 share the same user database as HTTP only allows for
2865 a single login (one for proxy, one for origin server).
2866 Also be warned this will expose your users proxy
2867 password to the peer. USE WITH CAUTION
2868
2869 login=*:password
2870 Send the username to the upstream cache, but with a
2871 fixed password. This is meant to be used when the peer
2872 is in another administrative domain, but it is still
2873 needed to identify each user.
2874 The star can optionally be followed by some extra
2875 information which is added to the username. This can
2876 be used to identify this proxy to the peer, similar to
2877 the login=username:password option above.
2878
2879 login=NEGOTIATE
2880 If this is a personal/workgroup proxy and your parent
2881 requires a secure proxy authentication.
2882 The first principal from the default keytab or defined by
2883 the environment variable KRB5_KTNAME will be used.
2884
2885 WARNING: The connection may transmit requests from multiple
2886 clients. Negotiate often assumes end-to-end authentication
2887 and a single-client. Which is not strictly true here.
2888
2889 login=NEGOTIATE:principal_name
2890 If this is a personal/workgroup proxy and your parent
2891 requires a secure proxy authentication.
2892 The principal principal_name from the default keytab or
2893 defined by the environment variable KRB5_KTNAME will be
2894 used.
2895
2896 WARNING: The connection may transmit requests from multiple
2897 clients. Negotiate often assumes end-to-end authentication
2898 and a single-client. Which is not strictly true here.
2899
2900 connection-auth=on|off
2901 Tell Squid that this peer does or not support Microsoft
2902 connection oriented authentication, and any such
2903 challenges received from there should be ignored.
2904 Default is auto to automatically determine the status
2905 of the peer.
2906
2907
2908 ==== SSL / HTTPS / TLS OPTIONS ====
2909
2910 ssl Encrypt connections to this peer with SSL/TLS.
2911
2912 sslcert=/path/to/ssl/certificate
2913 A client SSL certificate to use when connecting to
2914 this peer.
2915
2916 sslkey=/path/to/ssl/key
2917 The private SSL key corresponding to sslcert above.
2918 If 'sslkey' is not specified 'sslcert' is assumed to
2919 reference a combined file containing both the
2920 certificate and the key.
2921
2922 sslversion=1|2|3|4|5|6
2923 The SSL version to use when connecting to this peer
2924 1 = automatic (default)
2925 2 = SSL v2 only
2926 3 = SSL v3 only
2927 4 = TLS v1.0 only
2928 5 = TLS v1.1 only
2929 6 = TLS v1.2 only
2930
2931 sslcipher=... The list of valid SSL ciphers to use when connecting
2932 to this peer.
2933
2934 ssloptions=... Specify various SSL implementation options:
2935
2936 NO_SSLv2 Disallow the use of SSLv2
2937 NO_SSLv3 Disallow the use of SSLv3
2938 NO_TLSv1 Disallow the use of TLSv1.0
2939 NO_TLSv1_1 Disallow the use of TLSv1.1
2940 NO_TLSv1_2 Disallow the use of TLSv1.2
2941 SINGLE_DH_USE
2942 Always create a new key when using
2943 temporary/ephemeral DH key exchanges
2944 ALL Enable various bug workarounds
2945 suggested as "harmless" by OpenSSL
2946 Be warned that this reduces SSL/TLS
2947 strength to some attacks.
2948
2949 See the OpenSSL SSL_CTX_set_options documentation for a
2950 more complete list.
2951
2952 sslcafile=... A file containing additional CA certificates to use
2953 when verifying the peer certificate.
2954
2955 sslcapath=... A directory containing additional CA certificates to
2956 use when verifying the peer certificate.
2957
2958 sslcrlfile=... A certificate revocation list file to use when
2959 verifying the peer certificate.
2960
2961 sslflags=... Specify various flags modifying the SSL implementation:
2962
2963 DONT_VERIFY_PEER
2964 Accept certificates even if they fail to
2965 verify.
2966 NO_DEFAULT_CA
2967 Don't use the default CA list built in
2968 to OpenSSL.
2969 DONT_VERIFY_DOMAIN
2970 Don't verify the peer certificate
2971 matches the server name
2972
2973 ssldomain= The peer name as advertised in it's certificate.
2974 Used for verifying the correctness of the received peer
2975 certificate. If not specified the peer hostname will be
2976 used.
2977
2978 front-end-https
2979 Enable the "Front-End-Https: On" header needed when
2980 using Squid as a SSL frontend in front of Microsoft OWA.
2981 See MS KB document Q307347 for details on this header.
2982 If set to auto the header will only be added if the
2983 request is forwarded as a https:// URL.
2984
2985
2986 ==== GENERAL OPTIONS ====
2987
2988 connect-timeout=N
2989 A peer-specific connect timeout.
2990 Also see the peer_connect_timeout directive.
2991
2992 connect-fail-limit=N
2993 How many times connecting to a peer must fail before
2994 it is marked as down. Standby connection failures
2995 count towards this limit. Default is 10.
2996
2997 allow-miss Disable Squid's use of only-if-cached when forwarding
2998 requests to siblings. This is primarily useful when
2999 icp_hit_stale is used by the sibling. To extensive use
3000 of this option may result in forwarding loops, and you
3001 should avoid having two-way peerings with this option.
3002 For example to deny peer usage on requests from peer
3003 by denying cache_peer_access if the source is a peer.
3004
3005 max-conn=N Limit the number of concurrent connections the Squid
3006 may open to this peer, including already opened idle
3007 and standby connections. There is no peer-specific
3008 connection limit by default.
3009
3010 A peer exceeding the limit is not used for new
3011 requests unless a standby connection is available.
3012
3013 max-conn currently works poorly with idle persistent
3014 connections: When a peer reaches its max-conn limit,
3015 and there are idle persistent connections to the peer,
3016 the peer may not be selected because the limiting code
3017 does not know whether Squid can reuse those idle
3018 connections.
3019
3020 standby=N Maintain a pool of N "hot standby" connections to an
3021 UP peer, available for requests when no idle
3022 persistent connection is available (or safe) to use.
3023 By default and with zero N, no such pool is maintained.
3024 N must not exceed the max-conn limit (if any).
3025
3026 At start or after reconfiguration, Squid opens new TCP
3027 standby connections until there are N connections
3028 available and then replenishes the standby pool as
3029 opened connections are used up for requests. A used
3030 connection never goes back to the standby pool, but
3031 may go to the regular idle persistent connection pool
3032 shared by all peers and origin servers.
3033
3034 Squid never opens multiple new standby connections
3035 concurrently. This one-at-a-time approach minimizes
3036 flooding-like effect on peers. Furthermore, just a few
3037 standby connections should be sufficient in most cases
3038 to supply most new requests with a ready-to-use
3039 connection.
3040
3041 Standby connections obey server_idle_pconn_timeout.
3042 For the feature to work as intended, the peer must be
3043 configured to accept and keep them open longer than
3044 the idle timeout at the connecting Squid, to minimize
3045 race conditions typical to idle used persistent
3046 connections. Default request_timeout and
3047 server_idle_pconn_timeout values ensure such a
3048 configuration.
3049
3050 name=xxx Unique name for the peer.
3051 Required if you have multiple peers on the same host
3052 but different ports.
3053 This name can be used in cache_peer_access and similar
3054 directives to dentify the peer.
3055 Can be used by outgoing access controls through the
3056 peername ACL type.
3057
3058 no-tproxy Do not use the client-spoof TPROXY support when forwarding
3059 requests to this peer. Use normal address selection instead.
3060 This overrides the spoof_client_ip ACL.
3061
3062 proxy-only objects fetched from the peer will not be stored locally.
3063
3064 DOC_END
3065
3066 NAME: cache_peer_domain cache_host_domain
3067 TYPE: hostdomain
3068 DEFAULT: none
3069 LOC: none
3070 DOC_START
3071 Use to limit the domains for which a neighbor cache will be
3072 queried.
3073
3074 Usage:
3075 cache_peer_domain cache-host domain [domain ...]
3076 cache_peer_domain cache-host !domain
3077
3078 For example, specifying
3079
3080 cache_peer_domain parent.foo.net .edu
3081
3082 has the effect such that UDP query packets are sent to
3083 'bigserver' only when the requested object exists on a
3084 server in the .edu domain. Prefixing the domainname
3085 with '!' means the cache will be queried for objects
3086 NOT in that domain.
3087
3088 NOTE: * Any number of domains may be given for a cache-host,
3089 either on the same or separate lines.
3090 * When multiple domains are given for a particular
3091 cache-host, the first matched domain is applied.
3092 * Cache hosts with no domain restrictions are queried
3093 for all requests.
3094 * There are no defaults.
3095 * There is also a 'cache_peer_access' tag in the ACL
3096 section.
3097 DOC_END
3098
3099 NAME: cache_peer_access
3100 TYPE: peer_access
3101 DEFAULT: none
3102 LOC: none
3103 DOC_START
3104 Similar to 'cache_peer_domain' but provides more flexibility by
3105 using ACL elements.
3106
3107 Usage:
3108 cache_peer_access cache-host allow|deny [!]aclname ...
3109
3110 The syntax is identical to 'http_access' and the other lists of
3111 ACL elements. See the comments for 'http_access' below, or
3112 the Squid FAQ (http://wiki.squid-cache.org/SquidFaq/SquidAcl).
3113 DOC_END
3114
3115 NAME: neighbor_type_domain
3116 TYPE: hostdomaintype
3117 DEFAULT: none
3118 DEFAULT_DOC: The peer type from cache_peer directive is used for all requests to that peer.
3119 LOC: none
3120 DOC_START
3121 Modify the cache_peer neighbor type when passing requests
3122 about specific domains to the peer.
3123
3124 Usage:
3125 neighbor_type_domain neighbor parent|sibling domain domain ...
3126
3127 For example:
3128 cache_peer foo.example.com parent 3128 3130
3129 neighbor_type_domain foo.example.com sibling .au .de
3130
3131 The above configuration treats all requests to foo.example.com as a
3132 parent proxy unless the request is for a .au or .de ccTLD domain name.
3133 DOC_END
3134
3135 NAME: dead_peer_timeout
3136 COMMENT: (seconds)
3137 DEFAULT: 10 seconds
3138 TYPE: time_t
3139 LOC: Config.Timeout.deadPeer
3140 DOC_START
3141 This controls how long Squid waits to declare a peer cache
3142 as "dead." If there are no ICP replies received in this
3143 amount of time, Squid will declare the peer dead and not
3144 expect to receive any further ICP replies. However, it
3145 continues to send ICP queries, and will mark the peer as
3146 alive upon receipt of the first subsequent ICP reply.
3147
3148 This timeout also affects when Squid expects to receive ICP
3149 replies from peers. If more than 'dead_peer' seconds have
3150 passed since the last ICP reply was received, Squid will not
3151 expect to receive an ICP reply on the next query. Thus, if
3152 your time between requests is greater than this timeout, you
3153 will see a lot of requests sent DIRECT to origin servers
3154 instead of to your parents.
3155 DOC_END
3156
3157 NAME: forward_max_tries
3158 DEFAULT: 25
3159 TYPE: int
3160 LOC: Config.forward_max_tries
3161 DOC_START
3162 Controls how many different forward paths Squid will try
3163 before giving up. See also forward_timeout.
3164
3165 NOTE: connect_retries (default: none) can make each of these
3166 possible forwarding paths be tried multiple times.
3167 DOC_END
3168
3169 NAME: hierarchy_stoplist
3170 TYPE: wordlist
3171 DEFAULT: none
3172 LOC: Config.hierarchy_stoplist
3173 DOC_START
3174 A list of words which, if found in a URL, cause the object to
3175 be handled directly by this cache. In other words, use this
3176 to not query neighbor caches for certain objects. You may
3177 list this option multiple times.
3178
3179 Example:
3180 hierarchy_stoplist cgi-bin ?
3181
3182 Note: never_direct overrides this option.
3183 DOC_END
3184
3185 COMMENT_START
3186 MEMORY CACHE OPTIONS
3187 -----------------------------------------------------------------------------
3188 COMMENT_END
3189
3190 NAME: cache_mem
3191 COMMENT: (bytes)
3192 TYPE: b_size_t
3193 DEFAULT: 256 MB
3194 LOC: Config.memMaxSize
3195 DOC_START
3196 NOTE: THIS PARAMETER DOES NOT SPECIFY THE MAXIMUM PROCESS SIZE.
3197 IT ONLY PLACES A LIMIT ON HOW MUCH ADDITIONAL MEMORY SQUID WILL
3198 USE AS A MEMORY CACHE OF OBJECTS. SQUID USES MEMORY FOR OTHER
3199 THINGS AS WELL. SEE THE SQUID FAQ SECTION 8 FOR DETAILS.
3200
3201 'cache_mem' specifies the ideal amount of memory to be used
3202 for:
3203 * In-Transit objects
3204 * Hot Objects
3205 * Negative-Cached objects
3206
3207 Data for these objects are stored in 4 KB blocks. This
3208 parameter specifies the ideal upper limit on the total size of
3209 4 KB blocks allocated. In-Transit objects take the highest
3210 priority.
3211
3212 In-transit objects have priority over the others. When
3213 additional space is needed for incoming data, negative-cached
3214 and hot objects will be released. In other words, the
3215 negative-cached and hot objects will fill up any unused space
3216 not needed for in-transit objects.
3217
3218 If circumstances require, this limit will be exceeded.
3219 Specifically, if your incoming request rate requires more than
3220 'cache_mem' of memory to hold in-transit objects, Squid will
3221 exceed this limit to satisfy the new requests. When the load
3222 decreases, blocks will be freed until the high-water mark is
3223 reached. Thereafter, blocks will be used to store hot
3224 objects.
3225
3226 If shared memory caching is enabled, Squid does not use the shared
3227 cache space for in-transit objects, but they still consume as much
3228 local memory as they need. For more details about the shared memory
3229 cache, see memory_cache_shared.
3230 DOC_END
3231
3232 NAME: maximum_object_size_in_memory
3233 COMMENT: (bytes)
3234 TYPE: b_size_t
3235 DEFAULT: 512 KB
3236 LOC: Config.Store.maxInMemObjSize
3237 DOC_START
3238 Objects greater than this size will not be attempted to kept in
3239 the memory cache. This should be set high enough to keep objects
3240 accessed frequently in memory to improve performance whilst low
3241 enough to keep larger objects from hoarding cache_mem.
3242 DOC_END
3243
3244 NAME: memory_cache_shared
3245 COMMENT: on|off
3246 TYPE: YesNoNone
3247 LOC: Config.memShared
3248 DEFAULT: none
3249 DEFAULT_DOC: "on" where supported if doing memory caching with multiple SMP workers.
3250 DOC_START
3251 Controls whether the memory cache is shared among SMP workers.
3252
3253 The shared memory cache is meant to occupy cache_mem bytes and replace
3254 the non-shared memory cache, although some entities may still be
3255 cached locally by workers for now (e.g., internal and in-transit
3256 objects may be served from a local memory cache even if shared memory
3257 caching is enabled).
3258
3259 By default, the memory cache is shared if and only if all of the
3260 following conditions are satisfied: Squid runs in SMP mode with
3261 multiple workers, cache_mem is positive, and Squid environment
3262 supports required IPC primitives (e.g., POSIX shared memory segments
3263 and GCC-style atomic operations).
3264
3265 To avoid blocking locks, shared memory uses opportunistic algorithms
3266 that do not guarantee that every cachable entity that could have been
3267 shared among SMP workers will actually be shared.
3268
3269 Currently, entities exceeding 32KB in size cannot be shared.
3270 DOC_END
3271
3272 NAME: memory_cache_mode
3273 TYPE: memcachemode
3274 LOC: Config
3275 DEFAULT: always
3276 DEFAULT_DOC: Keep the most recently fetched objects in memory
3277 DOC_START
3278 Controls which objects to keep in the memory cache (cache_mem)
3279
3280 always Keep most recently fetched objects in memory (default)
3281
3282 disk Only disk cache hits are kept in memory, which means
3283 an object must first be cached on disk and then hit
3284 a second time before cached in memory.
3285
3286 network Only objects fetched from network is kept in memory
3287 DOC_END
3288
3289 NAME: memory_replacement_policy
3290 TYPE: removalpolicy
3291 LOC: Config.memPolicy
3292 DEFAULT: lru
3293 DOC_START
3294 The memory replacement policy parameter determines which
3295 objects are purged from memory when memory space is needed.
3296
3297 See cache_replacement_policy for details on algorithms.
3298 DOC_END
3299
3300 COMMENT_START
3301 DISK CACHE OPTIONS
3302 -----------------------------------------------------------------------------
3303 COMMENT_END
3304
3305 NAME: cache_replacement_policy
3306 TYPE: removalpolicy
3307 LOC: Config.replPolicy
3308 DEFAULT: lru
3309 DOC_START
3310 The cache replacement policy parameter determines which
3311 objects are evicted (replaced) when disk space is needed.
3312
3313 lru : Squid's original list based LRU policy
3314 heap GDSF : Greedy-Dual Size Frequency
3315 heap LFUDA: Least Frequently Used with Dynamic Aging
3316 heap LRU : LRU policy implemented using a heap
3317
3318 Applies to any cache_dir lines listed below this directive.
3319
3320 The LRU policies keeps recently referenced objects.
3321
3322 The heap GDSF policy optimizes object hit rate by keeping smaller
3323 popular objects in cache so it has a better chance of getting a
3324 hit. It achieves a lower byte hit rate than LFUDA though since
3325 it evicts larger (possibly popular) objects.
3326
3327 The heap LFUDA policy keeps popular objects in cache regardless of
3328 their size and thus optimizes byte hit rate at the expense of
3329 hit rate since one large, popular object will prevent many
3330 smaller, slightly less popular objects from being cached.
3331
3332 Both policies utilize a dynamic aging mechanism that prevents
3333 cache pollution that can otherwise occur with frequency-based
3334 replacement policies.
3335
3336 NOTE: if using the LFUDA replacement policy you should increase
3337 the value of maximum_object_size above its default of 4 MB to
3338 to maximize the potential byte hit rate improvement of LFUDA.
3339
3340 For more information about the GDSF and LFUDA cache replacement
3341 policies see http://www.hpl.hp.com/techreports/1999/HPL-1999-69.html
3342 and http://fog.hpl.external.hp.com/techreports/98/HPL-98-173.html.
3343 DOC_END
3344
3345 NAME: minimum_object_size
3346 COMMENT: (bytes)
3347 TYPE: b_int64_t
3348 DEFAULT: 0 KB
3349 DEFAULT_DOC: no limit
3350 LOC: Config.Store.minObjectSize
3351 DOC_START
3352 Objects smaller than this size will NOT be saved on disk. The
3353 value is specified in bytes, and the default is 0 KB, which
3354 means all responses can be stored.
3355 DOC_END
3356
3357 NAME: maximum_object_size
3358 COMMENT: (bytes)
3359 TYPE: b_int64_t
3360 DEFAULT: 4 MB
3361 LOC: Config.Store.maxObjectSize
3362 DOC_START
3363 Set the default value for max-size parameter on any cache_dir.
3364 The value is specified in bytes, and the default is 4 MB.
3365
3366 If you wish to get a high BYTES hit ratio, you should probably
3367 increase this (one 32 MB object hit counts for 3200 10KB
3368 hits).
3369
3370 If you wish to increase hit ratio more than you want to
3371 save bandwidth you should leave this low.
3372
3373 NOTE: if using the LFUDA replacement policy you should increase
3374 this value to maximize the byte hit rate improvement of LFUDA!
3375 See cache_replacement_policy for a discussion of this policy.
3376 DOC_END
3377
3378 NAME: cache_dir
3379 TYPE: cachedir
3380 DEFAULT: none
3381 DEFAULT_DOC: No disk cache. Store cache ojects only in memory.
3382 LOC: Config.cacheSwap
3383 DOC_START
3384 Format:
3385 cache_dir Type Directory-Name Fs-specific-data [options]
3386
3387 You can specify multiple cache_dir lines to spread the
3388 cache among different disk partitions.
3389
3390 Type specifies the kind of storage system to use. Only "ufs"
3391 is built by default. To enable any of the other storage systems
3392 see the --enable-storeio configure option.
3393
3394 'Directory' is a top-level directory where cache swap
3395 files will be stored. If you want to use an entire disk
3396 for caching, this can be the mount-point directory.
3397 The directory must exist and be writable by the Squid
3398 process. Squid will NOT create this directory for you.
3399
3400 In SMP configurations, cache_dir must not precede the workers option
3401 and should use configuration macros or conditionals to give each
3402 worker interested in disk caching a dedicated cache directory.
3403
3404
3405 ==== The ufs store type ====
3406
3407 "ufs" is the old well-known Squid storage format that has always
3408 been there.
3409
3410 Usage:
3411 cache_dir ufs Directory-Name Mbytes L1 L2 [options]
3412
3413 'Mbytes' is the amount of disk space (MB) to use under this
3414 directory. The default is 100 MB. Change this to suit your
3415 configuration. Do NOT put the size of your disk drive here.
3416 Instead, if you want Squid to use the entire disk drive,
3417 subtract 20% and use that value.
3418
3419 'L1' is the number of first-level subdirectories which
3420 will be created under the 'Directory'. The default is 16.
3421
3422 'L2' is the number of second-level subdirectories which
3423 will be created under each first-level directory. The default
3424 is 256.
3425
3426
3427 ==== The aufs store type ====
3428
3429 "aufs" uses the same storage format as "ufs", utilizing
3430 POSIX-threads to avoid blocking the main Squid process on
3431 disk-I/O. This was formerly known in Squid as async-io.
3432
3433 Usage:
3434 cache_dir aufs Directory-Name Mbytes L1 L2 [options]
3435
3436 see argument descriptions under ufs above
3437
3438
3439 ==== The diskd store type ====
3440
3441 "diskd" uses the same storage format as "ufs", utilizing a
3442 separate process to avoid blocking the main Squid process on
3443 disk-I/O.
3444
3445 Usage:
3446 cache_dir diskd Directory-Name Mbytes L1 L2 [options] [Q1=n] [Q2=n]
3447
3448 see argument descriptions under ufs above
3449
3450 Q1 specifies the number of unacknowledged I/O requests when Squid
3451 stops opening new files. If this many messages are in the queues,
3452 Squid won't open new files. Default is 64
3453
3454 Q2 specifies the number of unacknowledged messages when Squid
3455 starts blocking. If this many messages are in the queues,
3456 Squid blocks until it receives some replies. Default is 72
3457
3458 When Q1 < Q2 (the default), the cache directory is optimized
3459 for lower response time at the expense of a decrease in hit
3460 ratio. If Q1 > Q2, the cache directory is optimized for
3461 higher hit ratio at the expense of an increase in response
3462 time.
3463
3464
3465 ==== The rock store type ====
3466
3467 Usage:
3468 cache_dir rock Directory-Name Mbytes [options]
3469
3470 The Rock Store type is a database-style storage. All cached
3471 entries are stored in a "database" file, using fixed-size slots.
3472 A single entry occupies one or more slots.
3473
3474 If possible, Squid using Rock Store creates a dedicated kid
3475 process called "disker" to avoid blocking Squid worker(s) on disk
3476 I/O. One disker kid is created for each rock cache_dir. Diskers
3477 are created only when Squid, running in daemon mode, has support
3478 for the IpcIo disk I/O module.
3479
3480 swap-timeout=msec: Squid will not start writing a miss to or
3481 reading a hit from disk if it estimates that the swap operation
3482 will take more than the specified number of milliseconds. By
3483 default and when set to zero, disables the disk I/O time limit
3484 enforcement. Ignored when using blocking I/O module because
3485 blocking synchronous I/O does not allow Squid to estimate the
3486 expected swap wait time.
3487
3488 max-swap-rate=swaps/sec: Artificially limits disk access using
3489 the specified I/O rate limit. Swap out requests that
3490 would cause the average I/O rate to exceed the limit are
3491 delayed. Individual swap in requests (i.e., hits or reads) are
3492 not delayed, but they do contribute to measured swap rate and
3493 since they are placed in the same FIFO queue as swap out
3494 requests, they may wait longer if max-swap-rate is smaller.
3495 This is necessary on file systems that buffer "too
3496 many" writes and then start blocking Squid and other processes
3497 while committing those writes to disk. Usually used together
3498 with swap-timeout to avoid excessive delays and queue overflows
3499 when disk demand exceeds available disk "bandwidth". By default
3500 and when set to zero, disables the disk I/O rate limit
3501 enforcement. Currently supported by IpcIo module only.
3502
3503 slot-size=bytes: The size of a database "record" used for
3504 storing cached responses. A cached response occupies at least
3505 one slot and all database I/O is done using individual slots so
3506 increasing this parameter leads to more disk space waste while
3507 decreasing it leads to more disk I/O overheads. Should be a
3508 multiple of your operating system I/O page size. Defaults to
3509 16KBytes. A housekeeping header is stored with each slot and
3510 smaller slot-sizes will be rejected. The header is smaller than
3511 100 bytes.
3512
3513
3514 ==== COMMON OPTIONS ====
3515
3516 no-store no new objects should be stored to this cache_dir.
3517
3518 min-size=n the minimum object size in bytes this cache_dir
3519 will accept. It's used to restrict a cache_dir
3520 to only store large objects (e.g. AUFS) while
3521 other stores are optimized for smaller objects
3522 (e.g. Rock).
3523 Defaults to 0.
3524
3525 max-size=n the maximum object size in bytes this cache_dir
3526 supports.
3527 The value in maximum_object_size directive sets
3528 the default unless more specific details are
3529 available (ie a small store capacity).
3530
3531 Note: To make optimal use of the max-size limits you should order
3532 the cache_dir lines with the smallest max-size value first.
3533
3534 NOCOMMENT_START
3535
3536 # Uncomment and adjust the following to add a disk cache directory.
3537 #cache_dir ufs @DEFAULT_SWAP_DIR@ 100 16 256
3538 NOCOMMENT_END
3539 DOC_END
3540
3541 NAME: store_dir_select_algorithm
3542 TYPE: string
3543 LOC: Config.store_dir_select_algorithm
3544 DEFAULT: least-load
3545 DOC_START
3546 How Squid selects which cache_dir to use when the response
3547 object will fit into more than one.
3548
3549 Regardless of which algorithm is used the cache_dir min-size
3550 and max-size parameters are obeyed. As such they can affect
3551 the selection algorithm by limiting the set of considered
3552 cache_dir.
3553
3554 Algorithms:
3555
3556 least-load
3557
3558 This algorithm is suited to caches with similar cache_dir
3559 sizes and disk speeds.
3560
3561 The disk with the least I/O pending is selected.
3562 When there are multiple disks with the same I/O load ranking
3563 the cache_dir with most available capacity is selected.
3564
3565 When a mix of cache_dir sizes are configured the faster disks
3566 have a naturally lower I/O loading and larger disks have more
3567 capacity. So space used to store objects and data throughput
3568 may be very unbalanced towards larger disks.
3569
3570
3571 round-robin
3572
3573 This algorithm is suited to caches with unequal cache_dir
3574 disk sizes.
3575
3576 Each cache_dir is selected in a rotation. The next suitable
3577 cache_dir is used.
3578
3579 Available cache_dir capacity is only considered in relation
3580 to whether the object will fit and meets the min-size and
3581 max-size parameters.
3582
3583 Disk I/O loading is only considered to prevent overload on slow
3584 disks. This algorithm does not spread objects by size, so any
3585 I/O loading per-disk may appear very unbalanced and volatile.
3586
3587 If several cache_dirs use similar min-size, max-size, or other
3588 limits to to reject certain responses, then do not group such
3589 cache_dir lines together, to avoid round-robin selection bias
3590 towards the first cache_dir after the group. Instead, interleave
3591 cache_dir lines from different groups. For example:
3592
3593 store_dir_select_algorithm round-robin
3594 cache_dir rock /hdd1 ... min-size=100000
3595 cache_dir rock /ssd1 ... max-size=99999
3596 cache_dir rock /hdd2 ... min-size=100000
3597 cache_dir rock /ssd2 ... max-size=99999
3598 cache_dir rock /hdd3 ... min-size=100000
3599 cache_dir rock /ssd3 ... max-size=99999
3600 DOC_END
3601
3602 NAME: max_open_disk_fds
3603 TYPE: int
3604 LOC: Config.max_open_disk_fds
3605 DEFAULT: 0
3606 DEFAULT_DOC: no limit
3607 DOC_START
3608 To avoid having disk as the I/O bottleneck Squid can optionally
3609 bypass the on-disk cache if more than this amount of disk file
3610 descriptors are open.
3611
3612 A value of 0 indicates no limit.
3613 DOC_END
3614
3615 NAME: cache_swap_low
3616 COMMENT: (percent, 0-100)
3617 TYPE: int
3618 DEFAULT: 90
3619 LOC: Config.Swap.lowWaterMark
3620 DOC_START
3621 The low-water mark for cache object replacement.
3622 Replacement begins when the swap (disk) usage is above the
3623 low-water mark and attempts to maintain utilization near the
3624 low-water mark. As swap utilization gets close to high-water
3625 mark object eviction becomes more aggressive. If utilization is
3626 close to the low-water mark less replacement is done each time.
3627
3628 Defaults are 90% and 95%. If you have a large cache, 5% could be
3629 hundreds of MB. If this is the case you may wish to set these
3630 numbers closer together.
3631
3632 See also cache_swap_high
3633 DOC_END
3634
3635 NAME: cache_swap_high
3636 COMMENT: (percent, 0-100)
3637 TYPE: int
3638 DEFAULT: 95
3639 LOC: Config.Swap.highWaterMark
3640 DOC_START
3641 The high-water mark for cache object replacement.
3642 Replacement begins when the swap (disk) usage is above the
3643 low-water mark and attempts to maintain utilization near the
3644 low-water mark. As swap utilization gets close to high-water
3645 mark object eviction becomes more aggressive. If utilization is
3646 close to the low-water mark less replacement is done each time.
3647
3648 Defaults are 90% and 95%. If you have a large cache, 5% could be
3649 hundreds of MB. If this is the case you may wish to set these
3650 numbers closer together.
3651
3652 See also cache_swap_low
3653 DOC_END
3654
3655 COMMENT_START
3656 LOGFILE OPTIONS
3657 -----------------------------------------------------------------------------
3658 COMMENT_END
3659
3660 NAME: logformat
3661 TYPE: logformat
3662 LOC: Log::TheConfig
3663 DEFAULT: none
3664 DEFAULT_DOC: The format definitions squid, common, combined, referrer, useragent are built in.
3665 DOC_START
3666 Usage:
3667
3668 logformat <name> <format specification>
3669
3670 Defines an access log format.
3671
3672 The <format specification> is a string with embedded % format codes
3673
3674 % format codes all follow the same basic structure where all but
3675 the formatcode is optional. Output strings are automatically escaped
3676 as required according to their context and the output format
3677 modifiers are usually not needed, but can be specified if an explicit
3678 output format is desired.
3679
3680 % ["|[|'|#] [-] [[0]width] [{argument}] formatcode
3681
3682 " output in quoted string format
3683 [ output in squid text log format as used by log_mime_hdrs
3684 # output in URL quoted format
3685 ' output as-is
3686
3687 - left aligned
3688
3689 width minimum and/or maximum field width:
3690 [width_min][.width_max]
3691 When minimum starts with 0, the field is zero-padded.
3692 String values exceeding maximum width are truncated.
3693
3694 {arg} argument such as header name etc
3695
3696 Format codes:
3697
3698 % a literal % character
3699 sn Unique sequence number per log line entry
3700 err_code The ID of an error response served by Squid or
3701 a similar internal error identifier.
3702 err_detail Additional err_code-dependent error information.
3703 note The annotation specified by the argument. Also
3704 logs the adaptation meta headers set by the
3705 adaptation_meta configuration parameter.
3706 If no argument given all annotations logged.
3707 The argument may include a separator to use with
3708 annotation values:
3709 name[:separator]
3710 By default, multiple note values are separated with ","
3711 and multiple notes are separated with "\r\n".
3712 When logging named notes with %{name}note, the
3713 explicitly configured separator is used between note
3714 values. When logging all notes with %note, the
3715 explicitly configured separator is used between
3716 individual notes. There is currently no way to
3717 specify both value and notes separators when logging
3718 all notes with %note.
3719
3720 Connection related format codes:
3721
3722 >a Client source IP address
3723 >A Client FQDN
3724 >p Client source port
3725 >eui Client source EUI (MAC address, EUI-48 or EUI-64 identifier)
3726 >la Local IP address the client connected to
3727 >lp Local port number the client connected to
3728 >qos Client connection TOS/DSCP value set by Squid
3729 >nfmark Client connection netfilter mark set by Squid
3730
3731 la Local listening IP address the client connection was connected to.
3732 lp Local listening port number the client connection was connected to.
3733
3734 <a Server IP address of the last server or peer connection
3735 <A Server FQDN or peer name
3736 <p Server port number of the last server or peer connection
3737 <la Local IP address of the last server or peer connection
3738 <lp Local port number of the last server or peer connection
3739 <qos Server connection TOS/DSCP value set by Squid
3740 <nfmark Server connection netfilter mark set by Squid
3741
3742 Time related format codes:
3743
3744 ts Seconds since epoch
3745 tu subsecond time (milliseconds)
3746 tl Local time. Optional strftime format argument
3747 default %d/%b/%Y:%H:%M:%S %z
3748 tg GMT time. Optional strftime format argument
3749 default %d/%b/%Y:%H:%M:%S %z
3750 tr Response time (milliseconds)
3751 dt Total time spent making DNS lookups (milliseconds)
3752 tS Approximate master transaction start time in
3753 <full seconds since epoch>.<fractional seconds> format.
3754 Currently, Squid considers the master transaction
3755 started when a complete HTTP request header initiating
3756 the transaction is received from the client. This is
3757 the same value that Squid uses to calculate transaction
3758 response time when logging %tr to access.log. Currently,
3759 Squid uses millisecond resolution for %tS values,
3760 similar to the default access.log "current time" field
3761 (%ts.%03tu).
3762
3763 Access Control related format codes:
3764
3765 et Tag returned by external acl
3766 ea Log string returned by external acl
3767 un User name (any available)
3768 ul User name from authentication
3769 ue User name from external acl helper
3770 ui User name from ident
3771 us User name from SSL
3772 credentials Client credentials. The exact meaning depends on
3773 the authentication scheme: For Basic authentication,
3774 it is the password; for Digest, the realm sent by the
3775 client; for NTLM and Negotiate, the client challenge
3776 or client credentials prefixed with "YR " or "KK ".
3777
3778 HTTP related format codes:
3779
3780 REQUEST
3781
3782 [http::]rm Request method (GET/POST etc)
3783 [http::]>rm Request method from client
3784 [http::]<rm Request method sent to server or peer
3785 [http::]ru Request URL from client (historic, filtered for logging)
3786 [http::]>ru Request URL from client
3787 [http::]<ru Request URL sent to server or peer
3788 [http::]>rs Request URL scheme from client
3789 [http::]<rs Request URL scheme sent to server or peer
3790 [http::]>rd Request URL domain from client
3791 [http::]>rd Request URL domain sent to server or peer
3792 [http::]>rP Request URL port from client
3793 [http::]<rP Request URL port sent to server or peer
3794 [http::]rp Request URL path excluding hostname
3795 [http::]>rp Request URL path excluding hostname from client
3796 [http::]<rp Request URL path excluding hostname sent to server or peer
3797 [http::]rv Request protocol version
3798 [http::]>rv Request protocol version from client
3799 [http::]<rv Request protocol version sent to server or peer
3800
3801 [http::]>h Original received request header.
3802 Usually differs from the request header sent by
3803 Squid, although most fields are often preserved.
3804 Accepts optional header field name/value filter
3805 argument using name[:[separator]element] format.
3806 [http::]>ha Received request header after adaptation and
3807 redirection (pre-cache REQMOD vectoring point).
3808 Usually differs from the request header sent by
3809 Squid, although most fields are often preserved.
3810 Optional header name argument as for >h
3811
3812
3813 RESPONSE
3814
3815 [http::]<Hs HTTP status code received from the next hop
3816 [http::]>Hs HTTP status code sent to the client
3817
3818 [http::]<h Reply header. Optional header name argument
3819 as for >h
3820
3821 [http::]mt MIME content type
3822
3823
3824 SIZE COUNTERS
3825
3826 [http::]st Total size of request + reply traffic with client
3827 [http::]>st Total size of request received from client.
3828 Excluding chunked encoding bytes.
3829 [http::]<st Total size of reply sent to client (after adaptation)
3830
3831 [http::]>sh Size of request headers received from client
3832 [http::]<sh Size of reply headers sent to client (after adaptation)
3833
3834 [http::]<sH Reply high offset sent
3835 [http::]<sS Upstream object size
3836
3837 [http::]<bs Number of HTTP-equivalent message body bytes
3838 received from the next hop, excluding chunked
3839 transfer encoding and control messages.
3840 Generated FTP/Gopher listings are treated as
3841 received bodies.
3842
3843
3844 TIMING
3845
3846 [http::]<pt Peer response time in milliseconds. The timer starts
3847 when the last request byte is sent to the next hop
3848 and stops when the last response byte is received.
3849 [http::]<tt Total server-side time in milliseconds. The timer
3850 starts with the first connect request (or write I/O)
3851 sent to the first selected peer. The timer stops
3852 with the last I/O with the last peer.
3853
3854 Squid handling related format codes:
3855
3856 Ss Squid request status (TCP_MISS etc)
3857 Sh Squid hierarchy status (DEFAULT_PARENT etc)
3858
3859 SSL-related format codes:
3860
3861 ssl::bump_mode SslBump decision for the transaction:
3862
3863 For CONNECT requests that initiated bumping of
3864 a connection and for any request received on
3865 an already bumped connection, Squid logs the
3866 corresponding SslBump mode ("server-first" or
3867 "client-first"). See the ssl_bump option for
3868 more information about these modes.
3869
3870 A "none" token is logged for requests that
3871 triggered "ssl_bump" ACL evaluation matching
3872 either a "none" rule or no rules at all.
3873
3874 In all other cases, a single dash ("-") is
3875 logged.
3876
3877 If ICAP is enabled, the following code becomes available (as
3878 well as ICAP log codes documented with the icap_log option):
3879
3880 icap::tt Total ICAP processing time for the HTTP
3881 transaction. The timer ticks when ICAP
3882 ACLs are checked and when ICAP
3883 transaction is in progress.
3884
3885 If adaptation is enabled the following three codes become available:
3886
3887 adapt::<last_h The header of the last ICAP response or
3888 meta-information from the last eCAP
3889 transaction related to the HTTP transaction.
3890 Like <h, accepts an optional header name
3891 argument.
3892
3893 adapt::sum_trs Summed adaptation transaction response
3894 times recorded as a comma-separated list in
3895 the order of transaction start time. Each time
3896 value is recorded as an integer number,
3897 representing response time of one or more
3898 adaptation (ICAP or eCAP) transaction in
3899 milliseconds. When a failed transaction is
3900 being retried or repeated, its time is not
3901 logged individually but added to the
3902 replacement (next) transaction. See also:
3903 adapt::all_trs.
3904
3905 adapt::all_trs All adaptation transaction response times.
3906 Same as adaptation_strs but response times of
3907 individual transactions are never added
3908 together. Instead, all transaction response
3909 times are recorded individually.
3910
3911 You can prefix adapt::*_trs format codes with adaptation
3912 service name in curly braces to record response time(s) specific
3913 to that service. For example: %{my_service}adapt::sum_trs
3914
3915 If SSL is enabled, the following formating codes become available:
3916
3917 %ssl::>cert_subject The Subject field of the received client
3918 SSL certificate or a dash ('-') if Squid has
3919 received an invalid/malformed certificate or
3920 no certificate at all. Consider encoding the
3921 logged value because Subject often has spaces.
3922
3923 %ssl::>cert_issuer The Issuer field of the received client
3924 SSL certificate or a dash ('-') if Squid has
3925 received an invalid/malformed certificate or
3926 no certificate at all. Consider encoding the
3927 logged value because Issuer often has spaces.
3928
3929 The default formats available (which do not need re-defining) are:
3930
3931 logformat squid %ts.%03tu %6tr %>a %Ss/%03>Hs %<st %rm %ru %[un %Sh/%<a %mt
3932 logformat common %>a %[ui %[un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st %Ss:%Sh
3933 logformat combined %>a %[ui %[un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh
3934 logformat referrer %ts.%03tu %>a %{Referer}>h %ru
3935 logformat useragent %>a [%tl] "%{User-Agent}>h"
3936
3937 NOTE: When the log_mime_hdrs directive is set to ON.
3938 The squid, common and combined formats have a safely encoded copy
3939 of the mime headers appended to each line within a pair of brackets.
3940
3941 NOTE: The common and combined formats are not quite true to the Apache definition.
3942 The logs from Squid contain an extra status and hierarchy code appended.
3943
3944 DOC_END
3945
3946 NAME: access_log cache_access_log
3947 TYPE: access_log
3948 LOC: Config.Log.accesslogs
3949 DEFAULT_IF_NONE: daemon:@DEFAULT_ACCESS_LOG@ squid
3950 DOC_START
3951 Configures whether and how Squid logs HTTP and ICP transactions.
3952 If access logging is enabled, a single line is logged for every
3953 matching HTTP or ICP request. The recommended directive formats are:
3954
3955 access_log <module>:<place> [option ...] [acl acl ...]
3956 access_log none [acl acl ...]
3957
3958 The following directive format is accepted but may be deprecated:
3959 access_log <module>:<place> [<logformat name> [acl acl ...]]
3960
3961 In most cases, the first ACL name must not contain the '=' character
3962 and should not be equal to an existing logformat name. You can always
3963 start with an 'all' ACL to work around those restrictions.
3964
3965 Will log to the specified module:place using the specified format (which
3966 must be defined in a logformat directive) those entries which match
3967 ALL the acl's specified (which must be defined in acl clauses).
3968 If no acl is specified, all requests will be logged to this destination.
3969
3970 ===== Available options for the recommended directive format =====
3971
3972 logformat=name Names log line format (either built-in or
3973 defined by a logformat directive). Defaults
3974 to 'squid'.
3975
3976 buffer-size=64KB Defines approximate buffering limit for log
3977 records (see buffered_logs). Squid should not
3978 keep more than the specified size and, hence,
3979 should flush records before the buffer becomes
3980 full to avoid overflows under normal
3981 conditions (the exact flushing algorithm is
3982 module-dependent though). The on-error option
3983 controls overflow handling.
3984
3985 on-error=die|drop Defines action on unrecoverable errors. The
3986 'drop' action ignores (i.e., does not log)
3987 affected log records. The default 'die' action
3988 kills the affected worker. The drop action
3989 support has not been tested for modules other
3990 than tcp.
3991
3992 ===== Modules Currently available =====
3993
3994 none Do not log any requests matching these ACL.
3995 Do not specify Place or logformat name.
3996
3997 stdio Write each log line to disk immediately at the completion of
3998 each request.
3999 Place: the filename and path to be written.
4000
4001 daemon Very similar to stdio. But instead of writing to disk the log
4002 line is passed to a daemon helper for asychronous handling instead.
4003 Place: varies depending on the daemon.
4004
4005 log_file_daemon Place: the file name and path to be written.
4006
4007 syslog To log each request via syslog facility.
4008 Place: The syslog facility and priority level for these entries.
4009 Place Format: facility.priority
4010
4011 where facility could be any of:
4012 authpriv, daemon, local0 ... local7 or user.
4013
4014 And priority could be any of:
4015 err, warning, notice, info, debug.
4016
4017 udp To send each log line as text data to a UDP receiver.
4018 Place: The destination host name or IP and port.
4019 Place Format: //host:port
4020
4021 tcp To send each log line as text data to a TCP receiver.
4022 Lines may be accumulated before sending (see buffered_logs).
4023 Place: The destination host name or IP and port.
4024 Place Format: //host:port
4025
4026 Default:
4027 access_log daemon:@DEFAULT_ACCESS_LOG@ squid
4028 DOC_END
4029
4030 NAME: icap_log
4031 TYPE: access_log
4032 IFDEF: ICAP_CLIENT
4033 LOC: Config.Log.icaplogs
4034 DEFAULT: none
4035 DOC_START
4036 ICAP log files record ICAP transaction summaries, one line per
4037 transaction.
4038
4039 The icap_log option format is:
4040 icap_log <filepath> [<logformat name> [acl acl ...]]
4041 icap_log none [acl acl ...]]
4042
4043 Please see access_log option documentation for details. The two
4044 kinds of logs share the overall configuration approach and many
4045 features.
4046
4047 ICAP processing of a single HTTP message or transaction may
4048 require multiple ICAP transactions. In such cases, multiple
4049 ICAP transaction log lines will correspond to a single access
4050 log line.
4051
4052 ICAP log uses logformat codes that make sense for an ICAP
4053 transaction. Header-related codes are applied to the HTTP header
4054 embedded in an ICAP server response, with the following caveats:
4055 For REQMOD, there is no HTTP response header unless the ICAP
4056 server performed request satisfaction. For RESPMOD, the HTTP
4057 request header is the header sent to the ICAP server. For
4058 OPTIONS, there are no HTTP headers.
4059
4060 The following format codes are also available for ICAP logs:
4061
4062 icap::<A ICAP server IP address. Similar to <A.
4063
4064 icap::<service_name ICAP service name from the icap_service
4065 option in Squid configuration file.
4066
4067 icap::ru ICAP Request-URI. Similar to ru.
4068
4069 icap::rm ICAP request method (REQMOD, RESPMOD, or
4070 OPTIONS). Similar to existing rm.
4071
4072 icap::>st Bytes sent to the ICAP server (TCP payload
4073 only; i.e., what Squid writes to the socket).
4074
4075 icap::<st Bytes received from the ICAP server (TCP
4076 payload only; i.e., what Squid reads from
4077 the socket).
4078
4079 icap::<bs Number of message body bytes received from the
4080 ICAP server. ICAP message body, if any, usually
4081 includes encapsulated HTTP message headers and
4082 possibly encapsulated HTTP message body. The
4083 HTTP body part is dechunked before its size is
4084 computed.
4085
4086 icap::tr Transaction response time (in
4087 milliseconds). The timer starts when
4088 the ICAP transaction is created and
4089 stops when the transaction is completed.
4090 Similar to tr.
4091
4092 icap::tio Transaction I/O time (in milliseconds). The
4093 timer starts when the first ICAP request
4094 byte is scheduled for sending. The timers
4095 stops when the last byte of the ICAP response
4096 is received.
4097
4098 icap::to Transaction outcome: ICAP_ERR* for all
4099 transaction errors, ICAP_OPT for OPTION
4100 transactions, ICAP_ECHO for 204
4101 responses, ICAP_MOD for message
4102 modification, and ICAP_SAT for request
4103 satisfaction. Similar to Ss.
4104
4105 icap::Hs ICAP response status code. Similar to Hs.
4106
4107 icap::>h ICAP request header(s). Similar to >h.
4108
4109 icap::<h ICAP response header(s). Similar to <h.
4110
4111 The default ICAP log format, which can be used without an explicit
4112 definition, is called icap_squid:
4113
4114 logformat icap_squid %ts.%03tu %6icap::tr %>a %icap::to/%03icap::Hs %icap::<size %icap::rm %icap::ru% %un -/%icap::<A -
4115
4116 See also: logformat, log_icap, and %adapt::<last_h
4117 DOC_END
4118
4119 NAME: logfile_daemon
4120 TYPE: string
4121 DEFAULT: @DEFAULT_LOGFILED@
4122 LOC: Log::TheConfig.logfile_daemon
4123 DOC_START
4124 Specify the path to the logfile-writing daemon. This daemon is
4125 used to write the access and store logs, if configured.
4126
4127 Squid sends a number of commands to the log daemon:
4128 L<data>\n - logfile data
4129 R\n - rotate file
4130 T\n - truncate file
4131 O\n - reopen file
4132 F\n - flush file
4133 r<n>\n - set rotate count to <n>
4134 b<n>\n - 1 = buffer output, 0 = don't buffer output
4135
4136 No responses is expected.
4137 DOC_END
4138
4139 NAME: log_access
4140 TYPE: obsolete
4141 DOC_START
4142 Remove this line. Use acls with access_log directives to control access logging
4143 DOC_END
4144
4145 NAME: log_icap
4146 TYPE: obsolete
4147 DOC_START
4148 Remove this line. Use acls with icap_log directives to control icap logging
4149 DOC_END
4150
4151 NAME: stats_collection
4152 TYPE: acl_access
4153 LOC: Config.accessList.stats_collection
4154 DEFAULT: none
4155 DEFAULT_DOC: Allow logging for all transactions.
4156 COMMENT: allow|deny acl acl...
4157 DOC_START
4158 This options allows you to control which requests gets accounted
4159 in performance counters.
4160
4161 This clause only supports fast acl types.
4162 See http://wiki.squid-cache.org/SquidFaq/SquidAcl for details.
4163 DOC_END
4164
4165 NAME: cache_store_log
4166 TYPE: string
4167 DEFAULT: none
4168 LOC: Config.Log.store
4169 DOC_START
4170 Logs the activities of the storage manager. Shows which
4171 objects are ejected from the cache, and which objects are
4172 saved and for how long.
4173 There are not really utilities to analyze this data, so you can safely
4174 disable it (the default).
4175
4176 Store log uses modular logging outputs. See access_log for the list
4177 of modules supported.
4178
4179 Example:
4180 cache_store_log stdio:@DEFAULT_STORE_LOG@
4181 cache_store_log daemon:@DEFAULT_STORE_LOG@
4182 DOC_END
4183
4184 NAME: cache_swap_state cache_swap_log
4185 TYPE: string
4186 LOC: Config.Log.swap
4187 DEFAULT: none
4188 DEFAULT_DOC: Store the journal inside its cache_dir
4189 DOC_START
4190 Location for the cache "swap.state" file. This index file holds
4191 the metadata of objects saved on disk. It is used to rebuild
4192 the cache during startup. Normally this file resides in each
4193 'cache_dir' directory, but you may specify an alternate
4194 pathname here. Note you must give a full filename, not just
4195 a directory. Since this is the index for the whole object
4196 list you CANNOT periodically rotate it!
4197
4198 If %s can be used in the file name it will be replaced with a
4199 a representation of the cache_dir name where each / is replaced
4200 with '.'. This is needed to allow adding/removing cache_dir
4201 lines when cache_swap_log is being used.
4202
4203 If have more than one 'cache_dir', and %s is not used in the name
4204 these swap logs will have names such as:
4205
4206 cache_swap_log.00
4207 cache_swap_log.01
4208 cache_swap_log.02
4209
4210 The numbered extension (which is added automatically)
4211 corresponds to the order of the 'cache_dir' lines in this
4212 configuration file. If you change the order of the 'cache_dir'
4213 lines in this file, these index files will NOT correspond to
4214 the correct 'cache_dir' entry (unless you manually rename
4215 them). We recommend you do NOT use this option. It is
4216 better to keep these index files in each 'cache_dir' directory.
4217 DOC_END
4218
4219 NAME: logfile_rotate
4220 TYPE: int
4221 DEFAULT: 10
4222 LOC: Config.Log.rotateNumber
4223 DOC_START
4224 Specifies the number of logfile rotations to make when you
4225 type 'squid -k rotate'. The default is 10, which will rotate
4226 with extensions 0 through 9. Setting logfile_rotate to 0 will
4227 disable the file name rotation, but the logfiles are still closed
4228 and re-opened. This will enable you to rename the logfiles
4229 yourself just before sending the rotate signal.
4230
4231 Note, the 'squid -k rotate' command normally sends a USR1
4232 signal to the running squid process. In certain situations
4233 (e.g. on Linux with Async I/O), USR1 is used for other
4234 purposes, so -k rotate uses another signal. It is best to get
4235 in the habit of using 'squid -k rotate' instead of 'kill -USR1
4236 <pid>'.
4237
4238 Note, from Squid-3.1 this option is only a default for cache.log,
4239 that log can be rotated separately by using debug_options.
4240 DOC_END
4241
4242 NAME: emulate_httpd_log
4243 TYPE: obsolete
4244 DOC_START
4245 Replace this with an access_log directive using the format 'common' or 'combined'.
4246 DOC_END
4247
4248 NAME: log_ip_on_direct
4249 TYPE: obsolete
4250 DOC_START
4251 Remove this option from your config. To log server or peer names use %<A in the log format.
4252 DOC_END
4253
4254 NAME: mime_table
4255 TYPE: string
4256 DEFAULT: @DEFAULT_MIME_TABLE@
4257 LOC: Config.mimeTablePathname
4258 DOC_START
4259 Path to Squid's icon configuration file.
4260
4261 You shouldn't need to change this, but the default file contains
4262 examples and formatting information if you do.
4263 DOC_END
4264
4265 NAME: log_mime_hdrs
4266 COMMENT: on|off
4267 TYPE: onoff
4268 LOC: Config.onoff.log_mime_hdrs
4269 DEFAULT: off
4270 DOC_START
4271 The Cache can record both the request and the response MIME
4272 headers for each HTTP transaction. The headers are encoded
4273 safely and will appear as two bracketed fields at the end of
4274 the access log (for either the native or httpd-emulated log
4275 formats). To enable this logging set log_mime_hdrs to 'on'.
4276 DOC_END
4277
4278 NAME: useragent_log
4279 TYPE: obsolete
4280 DOC_START
4281 Replace this with an access_log directive using the format 'useragent'.
4282 DOC_END
4283
4284 NAME: referer_log referrer_log
4285 TYPE: obsolete
4286 DOC_START
4287 Replace this with an access_log directive using the format 'referrer'.
4288 DOC_END
4289
4290 NAME: pid_filename
4291 TYPE: string
4292 DEFAULT: @DEFAULT_PID_FILE@
4293 LOC: Config.pidFilename
4294 DOC_START
4295 A filename to write the process-id to. To disable, enter "none".
4296 DOC_END
4297
4298 NAME: log_fqdn
4299 TYPE: obsolete
4300 DOC_START
4301 Remove this option from your config. To log FQDN use %>A in the log format.
4302 DOC_END
4303
4304 NAME: client_netmask
4305 TYPE: address
4306 LOC: Config.Addrs.client_netmask
4307 DEFAULT: no_addr
4308 DEFAULT_DOC: Log full client IP address
4309 DOC_START
4310 A netmask for client addresses in logfiles and cachemgr output.
4311 Change this to protect the privacy of your cache clients.
4312 A netmask of 255.255.255.0 will log all IP's in that range with
4313 the last digit set to '0'.
4314 DOC_END
4315
4316 NAME: forward_log
4317 TYPE: obsolete
4318 DOC_START
4319 Use a regular access.log with ACL limiting it to MISS events.
4320 DOC_END
4321
4322 NAME: strip_query_terms
4323 TYPE: onoff
4324 LOC: Config.onoff.strip_query_terms
4325 DEFAULT: on
4326 DOC_START
4327 By default, Squid strips query terms from requested URLs before
4328 logging. This protects your user's privacy and reduces log size.
4329
4330 When investigating HIT/MISS or other caching behaviour you
4331 will need to disable this to see the full URL used by Squid.
4332 DOC_END
4333
4334 NAME: buffered_logs
4335 COMMENT: on|off
4336 TYPE: onoff
4337 DEFAULT: off
4338 LOC: Config.onoff.buffered_logs
4339 DOC_START
4340 Whether to write/send access_log records ASAP or accumulate them and
4341 then write/send them in larger chunks. Buffering may improve
4342 performance because it decreases the number of I/Os. However,
4343 buffering increases the delay before log records become available to
4344 the final recipient (e.g., a disk file or logging daemon) and,
4345 hence, increases the risk of log records loss.
4346
4347 Note that even when buffered_logs are off, Squid may have to buffer
4348 records if it cannot write/send them immediately due to pending I/Os
4349 (e.g., the I/O writing the previous log record) or connectivity loss.
4350
4351 Currently honored by 'daemon' and 'tcp' access_log modules only.
4352 DOC_END
4353
4354 NAME: netdb_filename
4355 TYPE: string
4356 DEFAULT: stdio:@DEFAULT_NETDB_FILE@
4357 LOC: Config.netdbFilename
4358 IFDEF: USE_ICMP
4359 DOC_START
4360 Where Squid stores it's netdb journal.
4361 When enabled this journal preserves netdb state between restarts.
4362
4363 To disable, enter "none".
4364 DOC_END
4365
4366 COMMENT_START
4367 OPTIONS FOR TROUBLESHOOTING
4368 -----------------------------------------------------------------------------
4369 COMMENT_END
4370
4371 NAME: cache_log
4372 TYPE: string
4373 DEFAULT_IF_NONE: @DEFAULT_CACHE_LOG@
4374 LOC: Debug::cache_log
4375 DOC_START
4376 Squid administrative logging file.
4377
4378 This is where general information about Squid behavior goes. You can
4379 increase the amount of data logged to this file and how often it is
4380 rotated with "debug_options"
4381 DOC_END
4382
4383 NAME: debug_options
4384 TYPE: eol
4385 DEFAULT: ALL,1
4386 DEFAULT_DOC: Log all critical and important messages.
4387 LOC: Debug::debugOptions
4388 DOC_START
4389 Logging options are set as section,level where each source file
4390 is assigned a unique section. Lower levels result in less
4391 output, Full debugging (level 9) can result in a very large
4392 log file, so be careful.
4393
4394 The magic word "ALL" sets debugging levels for all sections.
4395 The default is to run with "ALL,1" to record important warnings.
4396
4397 The rotate=N option can be used to keep more or less of these logs
4398 than would otherwise be kept by logfile_rotate.
4399 For most uses a single log should be enough to monitor current
4400 events affecting Squid.
4401 DOC_END
4402
4403 NAME: coredump_dir
4404 TYPE: string
4405 LOC: Config.coredump_dir
4406 DEFAULT_IF_NONE: none
4407 DEFAULT_DOC: Use the directory from where Squid was started.
4408 DOC_START
4409 By default Squid leaves core files in the directory from where
4410 it was started. If you set 'coredump_dir' to a directory
4411 that exists, Squid will chdir() to that directory at startup
4412 and coredump files will be left there.
4413
4414 NOCOMMENT_START
4415
4416 # Leave coredumps in the first cache dir
4417 coredump_dir @DEFAULT_SWAP_DIR@
4418 NOCOMMENT_END
4419 DOC_END
4420
4421
4422 COMMENT_START
4423 OPTIONS FOR FTP GATEWAYING
4424 -----------------------------------------------------------------------------
4425 COMMENT_END
4426
4427 NAME: ftp_user
4428 TYPE: string
4429 DEFAULT: Squid@
4430 LOC: Config.Ftp.anon_user
4431 DOC_START
4432 If you want the anonymous login password to be more informative
4433 (and enable the use of picky FTP servers), set this to something
4434 reasonable for your domain, like wwwuser@somewhere.net
4435
4436 The reason why this is domainless by default is the
4437 request can be made on the behalf of a user in any domain,
4438 depending on how the cache is used.
4439 Some FTP server also validate the email address is valid
4440 (for example perl.com).
4441 DOC_END
4442
4443 NAME: ftp_passive
4444 TYPE: onoff
4445 DEFAULT: on
4446 LOC: Config.Ftp.passive
4447 DOC_START
4448 If your firewall does not allow Squid to use passive
4449 connections, turn off this option.
4450
4451 Use of ftp_epsv_all option requires this to be ON.
4452 DOC_END
4453
4454 NAME: ftp_epsv_all
4455 TYPE: onoff
4456 DEFAULT: off
4457 LOC: Config.Ftp.epsv_all
4458 DOC_START
4459 FTP Protocol extensions permit the use of a special "EPSV ALL" command.
4460
4461 NATs may be able to put the connection on a "fast path" through the
4462 translator, as the EPRT command will never be used and therefore,
4463 translation of the data portion of the segments will never be needed.
4464
4465 When a client only expects to do two-way FTP transfers this may be
4466 useful.
4467 If squid finds that it must do a three-way FTP transfer after issuing
4468 an EPSV ALL command, the FTP session will fail.
4469
4470 If you have any doubts about this option do not use it.
4471 Squid will nicely attempt all other connection methods.
4472
4473 Requires ftp_passive to be ON (default) for any effect.
4474 DOC_END
4475
4476 NAME: ftp_epsv
4477 TYPE: ftp_epsv
4478 DEFAULT: none
4479 LOC: Config.accessList.ftp_epsv
4480 DOC_START
4481 FTP Protocol extensions permit the use of a special "EPSV" command.
4482
4483 NATs may be able to put the connection on a "fast path" through the
4484 translator using EPSV, as the EPRT command will never be used
4485 and therefore, translation of the data portion of the segments
4486 will never be needed.
4487
4488 EPSV is often required to interoperate with FTP servers on IPv6
4489 networks. On the other hand, it may break some IPv4 servers.
4490
4491 By default, EPSV may try EPSV with any FTP server. To fine tune
4492 that decision, you may restrict EPSV to certain clients or servers
4493 using ACLs:
4494
4495 ftp_epsv allow|deny al1 acl2 ...
4496
4497 WARNING: Disabling EPSV may cause problems with external NAT and IPv6.
4498
4499 Only fast ACLs are supported.
4500 Requires ftp_passive to be ON (default) for any effect.
4501 DOC_END
4502
4503 NAME: ftp_eprt
4504 TYPE: onoff
4505 DEFAULT: on
4506 LOC: Config.Ftp.eprt
4507 DOC_START
4508 FTP Protocol extensions permit the use of a special "EPRT" command.
4509
4510 This extension provides a protocol neutral alternative to the
4511 IPv4-only PORT command. When supported it enables active FTP data
4512 channels over IPv6 and efficient NAT handling.
4513
4514 Turning this OFF will prevent EPRT being attempted and will skip
4515 straight to using PORT for IPv4 servers.
4516
4517 Some devices are known to not handle this extension correctly and
4518 may result in crashes. Devices which suport EPRT enough to fail
4519 cleanly will result in Squid attempting PORT anyway. This directive
4520 should only be disabled when EPRT results in device failures.
4521
4522 WARNING: Doing so will convert Squid back to the old behavior with all
4523 the related problems with external NAT devices/layers and IPv4-only FTP.
4524 DOC_END
4525
4526 NAME: ftp_sanitycheck
4527 TYPE: onoff
4528 DEFAULT: on
4529 LOC: Config.Ftp.sanitycheck
4530 DOC_START
4531 For security and data integrity reasons Squid by default performs
4532 sanity checks of the addresses of FTP data connections ensure the
4533 data connection is to the requested server. If you need to allow
4534 FTP connections to servers using another IP address for the data
4535 connection turn this off.
4536 DOC_END
4537
4538 NAME: ftp_telnet_protocol
4539 TYPE: onoff
4540 DEFAULT: on
4541 LOC: Config.Ftp.telnet
4542 DOC_START
4543 The FTP protocol is officially defined to use the telnet protocol
4544 as transport channel for the control connection. However, many
4545 implementations are broken and does not respect this aspect of
4546 the FTP protocol.
4547
4548 If you have trouble accessing files with ASCII code 255 in the
4549 path or similar problems involving this ASCII code you can
4550 try setting this directive to off. If that helps, report to the
4551 operator of the FTP server in question that their FTP server
4552 is broken and does not follow the FTP standard.
4553 DOC_END
4554
4555 COMMENT_START
4556 OPTIONS FOR EXTERNAL SUPPORT PROGRAMS
4557 -----------------------------------------------------------------------------
4558 COMMENT_END
4559
4560 NAME: diskd_program
4561 TYPE: string
4562 DEFAULT: @DEFAULT_DISKD@
4563 LOC: Config.Program.diskd
4564 DOC_START
4565 Specify the location of the diskd executable.
4566 Note this is only useful if you have compiled in
4567 diskd as one of the store io modules.
4568 DOC_END
4569
4570 NAME: unlinkd_program
4571 IFDEF: USE_UNLINKD
4572 TYPE: string
4573 DEFAULT: @DEFAULT_UNLINKD@
4574 LOC: Config.Program.unlinkd
4575 DOC_START
4576 Specify the location of the executable for file deletion process.
4577 DOC_END
4578
4579 NAME: pinger_program
4580 TYPE: string
4581 DEFAULT: @DEFAULT_PINGER@
4582 LOC: Config.pinger.program
4583 IFDEF: USE_ICMP
4584 DOC_START
4585 Specify the location of the executable for the pinger process.
4586 DOC_END
4587
4588 NAME: pinger_enable
4589 TYPE: onoff
4590 DEFAULT: on
4591 LOC: Config.pinger.enable
4592 IFDEF: USE_ICMP
4593 DOC_START
4594 Control whether the pinger is active at run-time.
4595 Enables turning ICMP pinger on and off with a simple
4596 squid -k reconfigure.
4597 DOC_END
4598
4599
4600 COMMENT_START
4601 OPTIONS FOR URL REWRITING
4602 -----------------------------------------------------------------------------
4603 COMMENT_END
4604
4605 NAME: url_rewrite_program redirect_program
4606 TYPE: wordlist
4607 LOC: Config.Program.redirect
4608 DEFAULT: none
4609 DOC_START
4610 Specify the location of the executable URL rewriter to use.
4611 Since they can perform almost any function there isn't one included.
4612
4613 For each requested URL, the rewriter will receive on line with the format
4614
4615 [channel-ID <SP>] URL [<SP> extras]<NL>
4616
4617 See url_rewrite_extras on how to send "extras" with optional values to
4618 the helper.
4619 After processing the request the helper must reply using the following format:
4620
4621 [channel-ID <SP>] result [<SP> kv-pairs]
4622
4623 The result code can be:
4624
4625 OK status=30N url="..."
4626 Redirect the URL to the one supplied in 'url='.
4627 'status=' is optional and contains the status code to send
4628 the client in Squids HTTP response. It must be one of the
4629 HTTP redirect status codes: 301, 302, 303, 307, 308.
4630 When no status is given Squid will use 302.
4631
4632 OK rewrite-url="..."
4633 Rewrite the URL to the one supplied in 'rewrite-url='.
4634 The new URL is fetched directly by Squid and returned to
4635 the client as the response to its request.
4636
4637 OK
4638 When neither of url= and rewrite-url= are sent Squid does
4639 not change the URL.
4640
4641 ERR
4642 Do not change the URL.
4643
4644 BH
4645 An internal error occurred in the helper, preventing
4646 a result being identified. The 'message=' key name is
4647 reserved for delivering a log message.
4648
4649
4650 In addition to the above kv-pairs Squid also understands the following
4651 optional kv-pairs received from URL rewriters:
4652 clt_conn_tag=TAG
4653 Associates a TAG with the client TCP connection.
4654 The TAG is treated as a regular annotation but persists across
4655 future requests on the client connection rather than just the
4656 current request. A helper may update the TAG during subsequent
4657 requests be returning a new kv-pair.
4658
4659 When using the concurrency= option the protocol is changed by
4660 introducing a query channel tag in front of the request/response.
4661 The query channel tag is a number between 0 and concurrency-1.
4662 This value must be echoed back unchanged to Squid as the first part
4663 of the response relating to its request.
4664
4665 WARNING: URL re-writing ability should be avoided whenever possible.
4666 Use the URL redirect form of response instead.
4667
4668 Re-write creates a difference in the state held by the client
4669 and server. Possibly causing confusion when the server response
4670 contains snippets of its view state. Embeded URLs, response
4671 and content Location headers, etc. are not re-written by this
4672 interface.
4673
4674 By default, a URL rewriter is not used.
4675 DOC_END
4676
4677 NAME: url_rewrite_children redirect_children
4678 TYPE: HelperChildConfig
4679 DEFAULT: 20 startup=0 idle=1 concurrency=0
4680 LOC: Config.redirectChildren
4681 DOC_START
4682 The maximum number of redirector processes to spawn. If you limit
4683 it too few Squid will have to wait for them to process a backlog of
4684 URLs, slowing it down. If you allow too many they will use RAM
4685 and other system resources noticably.
4686
4687 The startup= and idle= options allow some measure of skew in your
4688 tuning.
4689
4690 startup=
4691
4692 Sets a minimum of how many processes are to be spawned when Squid
4693 starts or reconfigures. When set to zero the first request will
4694 cause spawning of the first child process to handle it.
4695
4696 Starting too few will cause an initial slowdown in traffic as Squid
4697 attempts to simultaneously spawn enough processes to cope.
4698
4699 idle=
4700
4701 Sets a minimum of how many processes Squid is to try and keep available
4702 at all times. When traffic begins to rise above what the existing
4703 processes can handle this many more will be spawned up to the maximum
4704 configured. A minimum setting of 1 is required.
4705
4706 concurrency=
4707
4708 The number of requests each redirector helper can handle in
4709 parallel. Defaults to 0 which indicates the redirector
4710 is a old-style single threaded redirector.
4711
4712 When this directive is set to a value >= 1 then the protocol
4713 used to communicate with the helper is modified to include
4714 an ID in front of the request/response. The ID from the request
4715 must be echoed back with the response to that request.
4716 DOC_END
4717
4718 NAME: url_rewrite_host_header redirect_rewrites_host_header
4719 TYPE: onoff
4720 DEFAULT: on
4721 LOC: Config.onoff.redir_rewrites_host
4722 DOC_START
4723 To preserve same-origin security policies in browsers and
4724 prevent Host: header forgery by redirectors Squid rewrites
4725 any Host: header in redirected requests.
4726
4727 If you are running an accelerator this may not be a wanted
4728 effect of a redirector. This directive enables you disable
4729 Host: alteration in reverse-proxy traffic.
4730
4731 WARNING: Entries are cached on the result of the URL rewriting
4732 process, so be careful if you have domain-virtual hosts.
4733
4734 WARNING: Squid and other software verifies the URL and Host
4735 are matching, so be careful not to relay through other proxies
4736 or inspecting firewalls with this disabled.
4737 DOC_END
4738
4739 NAME: url_rewrite_access redirector_access
4740 TYPE: acl_access
4741 DEFAULT: none
4742 DEFAULT_DOC: Allow, unless rules exist in squid.conf.
4743 LOC: Config.accessList.redirector
4744 DOC_START
4745 If defined, this access list specifies which requests are
4746 sent to the redirector processes.
4747
4748 This clause supports both fast and slow acl types.
4749 See http://wiki.squid-cache.org/SquidFaq/SquidAcl for details.
4750 DOC_END
4751
4752 NAME: url_rewrite_bypass redirector_bypass
4753 TYPE: onoff
4754 LOC: Config.onoff.redirector_bypass
4755 DEFAULT: off
4756 DOC_START
4757 When this is 'on', a request will not go through the
4758 redirector if all the helpers are busy. If this is 'off'
4759 and the redirector queue grows too large, Squid will exit
4760 with a FATAL error and ask you to increase the number of
4761 redirectors. You should only enable this if the redirectors
4762 are not critical to your caching system. If you use
4763 redirectors for access control, and you enable this option,
4764 users may have access to pages they should not
4765 be allowed to request.
4766 DOC_END
4767
4768 NAME: url_rewrite_extras
4769 TYPE: TokenOrQuotedString
4770 LOC: Config.redirector_extras
4771 DEFAULT: "%>a/%>A %un %>rm myip=%la myport=%lp"
4772 DOC_START
4773 Specifies a string to be append to request line format for the
4774 rewriter helper. "Quoted" format values may contain spaces and
4775 logformat %macros. In theory, any logformat %macro can be used.
4776 In practice, a %macro expands as a dash (-) if the helper request is
4777 sent before the required macro information is available to Squid.
4778 DOC_END
4779
4780 COMMENT_START
4781 OPTIONS FOR STORE ID
4782 -----------------------------------------------------------------------------
4783 COMMENT_END
4784
4785 NAME: store_id_program storeurl_rewrite_program
4786 TYPE: wordlist
4787 LOC: Config.Program.store_id
4788 DEFAULT: none
4789 DOC_START
4790 Specify the location of the executable StoreID helper to use.
4791 Since they can perform almost any function there isn't one included.
4792
4793 For each requested URL, the helper will receive one line with the format
4794
4795 [channel-ID <SP>] URL [<SP> extras]<NL>
4796
4797
4798 After processing the request the helper must reply using the following format:
4799
4800 [channel-ID <SP>] result [<SP> kv-pairs]
4801
4802 The result code can be:
4803
4804 OK store-id="..."
4805 Use the StoreID supplied in 'store-id='.
4806
4807 ERR
4808 The default is to use HTTP request URL as the store ID.
4809
4810 BH
4811 An internal error occured in the helper, preventing
4812 a result being identified.
4813
4814 In addition to the above kv-pairs Squid also understands the following
4815 optional kv-pairs received from URL rewriters:
4816 clt_conn_tag=TAG
4817 Associates a TAG with the client TCP connection.
4818 Please see url_rewrite_program related documentation for this
4819 kv-pair
4820
4821 Helper programs should be prepared to receive and possibly ignore
4822 additional whitespace-separated tokens on each input line.
4823
4824 When using the concurrency= option the protocol is changed by
4825 introducing a query channel tag in front of the request/response.
4826 The query channel tag is a number between 0 and concurrency-1.
4827 This value must be echoed back unchanged to Squid as the first part
4828 of the response relating to its request.
4829
4830 NOTE: when using StoreID refresh_pattern will apply to the StoreID
4831 returned from the helper and not the URL.
4832
4833 WARNING: Wrong StoreID value returned by a careless helper may result
4834 in the wrong cached response returned to the user.
4835
4836 By default, a StoreID helper is not used.
4837 DOC_END
4838
4839 NAME: store_id_extras
4840 TYPE: TokenOrQuotedString
4841 LOC: Config.storeId_extras
4842 DEFAULT: "%>a/%>A %un %>rm myip=%la myport=%lp"
4843 DOC_START
4844 Specifies a string to be append to request line format for the
4845 StoreId helper. "Quoted" format values may contain spaces and
4846 logformat %macros. In theory, any logformat %macro can be used.
4847 In practice, a %macro expands as a dash (-) if the helper request is
4848 sent before the required macro information is available to Squid.
4849 DOC_END
4850
4851 NAME: store_id_children storeurl_rewrite_children
4852 TYPE: HelperChildConfig
4853 DEFAULT: 20 startup=0 idle=1 concurrency=0
4854 LOC: Config.storeIdChildren
4855 DOC_START
4856 The maximum number of StoreID helper processes to spawn. If you limit
4857 it too few Squid will have to wait for them to process a backlog of
4858 requests, slowing it down. If you allow too many they will use RAM
4859 and other system resources noticably.
4860
4861 The startup= and idle= options allow some measure of skew in your
4862 tuning.
4863
4864 startup=
4865
4866 Sets a minimum of how many processes are to be spawned when Squid
4867 starts or reconfigures. When set to zero the first request will
4868 cause spawning of the first child process to handle it.
4869
4870 Starting too few will cause an initial slowdown in traffic as Squid
4871 attempts to simultaneously spawn enough processes to cope.
4872
4873 idle=
4874
4875 Sets a minimum of how many processes Squid is to try and keep available
4876 at all times. When traffic begins to rise above what the existing
4877 processes can handle this many more will be spawned up to the maximum
4878 configured. A minimum setting of 1 is required.
4879
4880 concurrency=
4881
4882 The number of requests each storeID helper can handle in
4883 parallel. Defaults to 0 which indicates the helper
4884 is a old-style single threaded program.
4885
4886 When this directive is set to a value >= 1 then the protocol
4887 used to communicate with the helper is modified to include
4888 an ID in front of the request/response. The ID from the request
4889 must be echoed back with the response to that request.
4890 DOC_END
4891
4892 NAME: store_id_access storeurl_rewrite_access
4893 TYPE: acl_access
4894 DEFAULT: none
4895 DEFAULT_DOC: Allow, unless rules exist in squid.conf.
4896 LOC: Config.accessList.store_id
4897 DOC_START
4898 If defined, this access list specifies which requests are
4899 sent to the StoreID processes. By default all requests
4900 are sent.
4901
4902 This clause supports both fast and slow acl types.
4903 See http://wiki.squid-cache.org/SquidFaq/SquidAcl for details.
4904 DOC_END
4905
4906 NAME: store_id_bypass storeurl_rewrite_bypass
4907 TYPE: onoff
4908 LOC: Config.onoff.store_id_bypass
4909 DEFAULT: on
4910 DOC_START
4911 When this is 'on', a request will not go through the
4912 helper if all helpers are busy. If this is 'off'
4913 and the helper queue grows too large, Squid will exit
4914 with a FATAL error and ask you to increase the number of
4915 helpers. You should only enable this if the helperss
4916 are not critical to your caching system. If you use
4917 helpers for critical caching components, and you enable this
4918 option, users may not get objects from cache.
4919 DOC_END
4920
4921 COMMENT_START
4922 OPTIONS FOR TUNING THE CACHE
4923 -----------------------------------------------------------------------------
4924 COMMENT_END
4925
4926 NAME: cache no_cache
4927 TYPE: acl_access
4928 DEFAULT: none
4929 DEFAULT_DOC: By default, this directive is unused and has no effect.
4930 LOC: Config.accessList.noCache
4931 DOC_START
4932 Requests denied by this directive will not be served from the cache
4933 and their responses will not be stored in the cache. This directive
4934 has no effect on other transactions and on already cached responses.
4935
4936 This clause supports both fast and slow acl types.
4937 See http://wiki.squid-cache.org/SquidFaq/SquidAcl for details.
4938
4939 This and the two other similar caching directives listed below are
4940 checked at different transaction processing stages, have different
4941 access to response information, affect different cache operations,
4942 and differ in slow ACLs support:
4943
4944 * cache: Checked before Squid makes a hit/miss determination.
4945 No access to reply information!
4946 Denies both serving a hit and storing a miss.
4947 Supports both fast and slow ACLs.
4948 * send_hit: Checked after a hit was detected.
4949 Has access to reply (hit) information.
4950 Denies serving a hit only.
4951 Supports fast ACLs only.
4952 * store_miss: Checked before storing a cachable miss.
4953 Has access to reply (miss) information.
4954 Denies storing a miss only.
4955 Supports fast ACLs only.
4956
4957 If you are not sure which of the three directives to use, apply the
4958 following decision logic:
4959
4960 * If your ACL(s) are of slow type _and_ need response info, redesign.
4961 Squid does not support that particular combination at this time.
4962 Otherwise:
4963 * If your directive ACL(s) are of slow type, use "cache"; and/or
4964 * if your directive ACL(s) need no response info, use "cache".
4965 Otherwise:
4966 * If you do not want the response cached, use store_miss; and/or
4967 * if you do not want a hit on a cached response, use send_hit.
4968 DOC_END
4969
4970 NAME: send_hit
4971 TYPE: acl_access
4972 DEFAULT: none
4973 DEFAULT_DOC: By default, this directive is unused and has no effect.
4974 LOC: Config.accessList.sendHit
4975 DOC_START
4976 Responses denied by this directive will not be served from the cache
4977 (but may still be cached, see store_miss). This directive has no
4978 effect on the responses it allows and on the cached objects.
4979
4980 Please see the "cache" directive for a summary of differences among
4981 store_miss, send_hit, and cache directives.
4982
4983 Unlike the "cache" directive, send_hit only supports fast acl
4984 types. See http://wiki.squid-cache.org/SquidFaq/SquidAcl for details.
4985
4986 For example:
4987
4988 # apply custom Store ID mapping to some URLs
4989 acl MapMe dstdomain .c.example.com
4990 store_id_program ...
4991 store_id_access allow MapMe
4992
4993 # but prevent caching of special responses
4994 # such as 302 redirects that cause StoreID loops
4995 acl Ordinary http_status 200-299
4996 store_miss deny MapMe !Ordinary
4997
4998 # and do not serve any previously stored special responses
4999 # from the cache (in case they were already cached before
5000 # the above store_miss rule was in effect).
5001 send_hit deny MapMe !Ordinary
5002 DOC_END
5003
5004 NAME: store_miss
5005 TYPE: acl_access
5006 DEFAULT: none
5007 DEFAULT_DOC: By default, this directive is unused and has no effect.
5008 LOC: Config.accessList.storeMiss
5009 DOC_START
5010 Responses denied by this directive will not be cached (but may still
5011 be served from the cache, see send_hit). This directive has no
5012 effect on the responses it allows and on the already cached responses.
5013
5014 Please see the "cache" directive for a summary of differences among
5015 store_miss, send_hit, and cache directives. See the
5016 send_hit directive for a usage example.
5017
5018 Unlike the "cache" directive, store_miss only supports fast acl
5019 types. See http://wiki.squid-cache.org/SquidFaq/SquidAcl for details.
5020 DOC_END
5021
5022 NAME: max_stale
5023 COMMENT: time-units
5024 TYPE: time_t
5025 LOC: Config.maxStale
5026 DEFAULT: 1 week
5027 DOC_START
5028 This option puts an upper limit on how stale content Squid
5029 will serve from the cache if cache validation fails.
5030 Can be overriden by the refresh_pattern max-stale option.
5031 DOC_END
5032
5033 NAME: refresh_pattern
5034 TYPE: refreshpattern
5035 LOC: Config.Refresh
5036 DEFAULT: none
5037 DOC_START
5038 usage: refresh_pattern [-i] regex min percent max [options]
5039
5040 By default, regular expressions are CASE-SENSITIVE. To make
5041 them case-insensitive, use the -i option.
5042
5043 'Min' is the time (in minutes) an object without an explicit
5044 expiry time should be considered fresh. The recommended
5045 value is 0, any higher values may cause dynamic applications
5046 to be erroneously cached unless the application designer
5047 has taken the appropriate actions.
5048
5049 'Percent' is a percentage of the objects age (time since last
5050 modification age) an object without explicit expiry time
5051 will be considered fresh.
5052
5053 'Max' is an upper limit on how long objects without an explicit
5054 expiry time will be considered fresh.
5055
5056 options: override-expire
5057 override-lastmod
5058 reload-into-ims
5059 ignore-reload
5060 ignore-no-store
5061 ignore-must-revalidate
5062 ignore-private
5063 ignore-auth
5064 max-stale=NN
5065 refresh-ims
5066 store-stale
5067
5068 override-expire enforces min age even if the server
5069 sent an explicit expiry time (e.g., with the
5070 Expires: header or Cache-Control: max-age). Doing this
5071 VIOLATES the HTTP standard. Enabling this feature
5072 could make you liable for problems which it causes.
5073
5074 Note: override-expire does not enforce staleness - it only extends
5075 freshness / min. If the server returns a Expires time which
5076 is longer than your max time, Squid will still consider
5077 the object fresh for that period of time.
5078
5079 override-lastmod enforces min age even on objects
5080 that were modified recently.
5081
5082 reload-into-ims changes a client no-cache or ``reload''
5083 request for a cached entry into a conditional request using
5084 If-Modified-Since and/or If-None-Match headers, provided the
5085 cached entry has a Last-Modified and/or a strong ETag header.
5086 Doing this VIOLATES the HTTP standard. Enabling this feature
5087 could make you liable for problems which it causes.
5088
5089 ignore-reload ignores a client no-cache or ``reload''
5090 header. Doing this VIOLATES the HTTP standard. Enabling
5091 this feature could make you liable for problems which
5092 it causes.
5093
5094 ignore-no-store ignores any ``Cache-control: no-store''
5095 headers received from a server. Doing this VIOLATES
5096 the HTTP standard. Enabling this feature could make you
5097 liable for problems which it causes.
5098
5099 ignore-must-revalidate ignores any ``Cache-Control: must-revalidate``
5100 headers received from a server. Doing this VIOLATES
5101 the HTTP standard. Enabling this feature could make you
5102 liable for problems which it causes.
5103
5104 ignore-private ignores any ``Cache-control: private''
5105 headers received from a server. Doing this VIOLATES
5106 the HTTP standard. Enabling this feature could make you
5107 liable for problems which it causes.
5108
5109 ignore-auth caches responses to requests with authorization,
5110 as if the originserver had sent ``Cache-control: public''
5111 in the response header. Doing this VIOLATES the HTTP standard.
5112 Enabling this feature could make you liable for problems which
5113 it causes.
5114
5115 refresh-ims causes squid to contact the origin server
5116 when a client issues an If-Modified-Since request. This
5117 ensures that the client will receive an updated version
5118 if one is available.
5119
5120 store-stale stores responses even if they don't have explicit
5121 freshness or a validator (i.e., Last-Modified or an ETag)
5122 present, or if they're already stale. By default, Squid will
5123 not cache such responses because they usually can't be
5124 reused. Note that such responses will be stale by default.
5125
5126 max-stale=NN provide a maximum staleness factor. Squid won't
5127 serve objects more stale than this even if it failed to
5128 validate the object. Default: use the max_stale global limit.
5129
5130 Basically a cached object is:
5131
5132 FRESH if expires < now, else STALE
5133 STALE if age > max
5134 FRESH if lm-factor < percent, else STALE
5135 FRESH if age < min
5136 else STALE
5137
5138 The refresh_pattern lines are checked in the order listed here.
5139 The first entry which matches is used. If none of the entries
5140 match the default will be used.
5141
5142 Note, you must uncomment all the default lines if you want
5143 to change one. The default setting is only active if none is
5144 used.
5145
5146 NOCOMMENT_START
5147
5148 #
5149 # Add any of your own refresh_pattern entries above these.
5150 #
5151 refresh_pattern ^ftp: 1440 20% 10080
5152 refresh_pattern ^gopher: 1440 0% 1440
5153 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
5154 refresh_pattern . 0 20% 4320
5155 NOCOMMENT_END
5156 DOC_END
5157
5158 NAME: quick_abort_min
5159 COMMENT: (KB)
5160 TYPE: kb_int64_t
5161 DEFAULT: 16 KB
5162 LOC: Config.quickAbort.min
5163 DOC_NONE
5164
5165 NAME: quick_abort_max
5166 COMMENT: (KB)
5167 TYPE: kb_int64_t
5168 DEFAULT: 16 KB
5169 LOC: Config.quickAbort.max
5170 DOC_NONE
5171
5172 NAME: quick_abort_pct
5173 COMMENT: (percent)
5174 TYPE: int
5175 DEFAULT: 95
5176 LOC: Config.quickAbort.pct
5177 DOC_START
5178 The cache by default continues downloading aborted requests
5179 which are almost completed (less than 16 KB remaining). This
5180 may be undesirable on slow (e.g. SLIP) links and/or very busy
5181 caches. Impatient users may tie up file descriptors and
5182 bandwidth by repeatedly requesting and immediately aborting
5183 downloads.
5184
5185 When the user aborts a request, Squid will check the
5186 quick_abort values to the amount of data transferred until
5187 then.
5188
5189 If the transfer has less than 'quick_abort_min' KB remaining,
5190 it will finish the retrieval.
5191
5192 If the transfer has more than 'quick_abort_max' KB remaining,
5193 it will abort the retrieval.
5194
5195 If more than 'quick_abort_pct' of the transfer has completed,
5196 it will finish the retrieval.
5197
5198 If you do not want any retrieval to continue after the client
5199 has aborted, set both 'quick_abort_min' and 'quick_abort_max'
5200 to '0 KB'.
5201
5202 If you want retrievals to always continue if they are being
5203 cached set 'quick_abort_min' to '-1 KB'.
5204 DOC_END
5205
5206 NAME: read_ahead_gap
5207 COMMENT: buffer-size
5208 TYPE: b_int64_t
5209 LOC: Config.readAheadGap
5210 DEFAULT: 16 KB
5211 DOC_START
5212 The amount of data the cache will buffer ahead of what has been
5213 sent to the client when retrieving an object from another server.
5214 DOC_END
5215
5216 NAME: negative_ttl
5217 IFDEF: USE_HTTP_VIOLATIONS
5218 COMMENT: time-units
5219 TYPE: time_t
5220 LOC: Config.negativeTtl
5221 DEFAULT: 0 seconds
5222 DOC_START
5223 Set the Default Time-to-Live (TTL) for failed requests.
5224 Certain types of failures (such as "connection refused" and
5225 "404 Not Found") are able to be negatively-cached for a short time.
5226 Modern web servers should provide Expires: header, however if they
5227 do not this can provide a minimum TTL.
5228 The default is not to cache errors with unknown expiry details.
5229
5230 Note that this is different from negative caching of DNS lookups.
5231
5232 WARNING: Doing this VIOLATES the HTTP standard. Enabling
5233 this feature could make you liable for problems which it
5234 causes.
5235 DOC_END
5236
5237 NAME: positive_dns_ttl
5238 COMMENT: time-units
5239 TYPE: time_t
5240 LOC: Config.positiveDnsTtl
5241 DEFAULT: 6 hours
5242 DOC_START
5243 Upper limit on how long Squid will cache positive DNS responses.
5244 Default is 6 hours (360 minutes). This directive must be set
5245 larger than negative_dns_ttl.
5246 DOC_END
5247
5248 NAME: negative_dns_ttl
5249 COMMENT: time-units
5250 TYPE: time_t
5251 LOC: Config.negativeDnsTtl
5252 DEFAULT: 1 minutes
5253 DOC_START
5254 Time-to-Live (TTL) for negative caching of failed DNS lookups.
5255 This also sets the lower cache limit on positive lookups.
5256 Minimum value is 1 second, and it is not recommendable to go
5257 much below 10 seconds.
5258 DOC_END
5259
5260 NAME: range_offset_limit
5261 COMMENT: size [acl acl...]
5262 TYPE: acl_b_size_t
5263 LOC: Config.rangeOffsetLimit
5264 DEFAULT: none
5265 DOC_START
5266 usage: (size) [units] [[!]aclname]
5267
5268 Sets an upper limit on how far (number of bytes) into the file
5269 a Range request may be to cause Squid to prefetch the whole file.
5270 If beyond this limit, Squid forwards the Range request as it is and
5271 the result is NOT cached.
5272
5273 This is to stop a far ahead range request (lets say start at 17MB)
5274 from making Squid fetch the whole object up to that point before
5275 sending anything to the client.
5276
5277 Multiple range_offset_limit lines may be specified, and they will
5278 be searched from top to bottom on each request until a match is found.
5279 The first match found will be used. If no line matches a request, the
5280 default limit of 0 bytes will be used.
5281
5282 'size' is the limit specified as a number of units.
5283
5284 'units' specifies whether to use bytes, KB, MB, etc.
5285 If no units are specified bytes are assumed.
5286
5287 A size of 0 causes Squid to never fetch more than the
5288 client requested. (default)
5289
5290 A size of 'none' causes Squid to always fetch the object from the
5291 beginning so it may cache the result. (2.0 style)
5292
5293 'aclname' is the name of a defined ACL.
5294
5295 NP: Using 'none' as the byte value here will override any quick_abort settings
5296 that may otherwise apply to the range request. The range request will
5297 be fully fetched from start to finish regardless of the client
5298 actions. This affects bandwidth usage.
5299 DOC_END
5300
5301 NAME: minimum_expiry_time
5302 COMMENT: (seconds)
5303 TYPE: time_t
5304 LOC: Config.minimum_expiry_time
5305 DEFAULT: 60 seconds
5306 DOC_START
5307 The minimum caching time according to (Expires - Date)
5308 headers Squid honors if the object can't be revalidated.
5309 The default is 60 seconds.
5310
5311 In reverse proxy environments it might be desirable to honor
5312 shorter object lifetimes. It is most likely better to make
5313 your server return a meaningful Last-Modified header however.
5314
5315 In ESI environments where page fragments often have short
5316 lifetimes, this will often be best set to 0.
5317 DOC_END
5318
5319 NAME: store_avg_object_size
5320 COMMENT: (bytes)
5321 TYPE: b_int64_t
5322 DEFAULT: 13 KB
5323 LOC: Config.Store.avgObjectSize
5324 DOC_START
5325 Average object size, used to estimate number of objects your
5326 cache can hold. The default is 13 KB.
5327
5328 This is used to pre-seed the cache index memory allocation to
5329 reduce expensive reallocate operations while handling clients
5330 traffic. Too-large values may result in memory allocation during
5331 peak traffic, too-small values will result in wasted memory.
5332
5333 Check the cache manager 'info' report metrics for the real
5334 object sizes seen by your Squid before tuning this.
5335 DOC_END
5336
5337 NAME: store_objects_per_bucket
5338 TYPE: int
5339 DEFAULT: 20
5340 LOC: Config.Store.objectsPerBucket
5341 DOC_START
5342 Target number of objects per bucket in the store hash table.
5343 Lowering this value increases the total number of buckets and
5344 also the storage maintenance rate. The default is 20.
5345 DOC_END
5346
5347 COMMENT_START
5348 HTTP OPTIONS
5349 -----------------------------------------------------------------------------
5350 COMMENT_END
5351
5352 NAME: request_header_max_size
5353 COMMENT: (KB)
5354 TYPE: b_size_t
5355 DEFAULT: 64 KB
5356 LOC: Config.maxRequestHeaderSize
5357 DOC_START
5358 This specifies the maximum size for HTTP headers in a request.
5359 Request headers are usually relatively small (about 512 bytes).
5360 Placing a limit on the request header size will catch certain
5361 bugs (for example with persistent connections) and possibly
5362 buffer-overflow or denial-of-service attacks.
5363 DOC_END
5364
5365 NAME: reply_header_max_size
5366 COMMENT: (KB)
5367 TYPE: b_size_t
5368 DEFAULT: 64 KB
5369 LOC: Config.maxReplyHeaderSize
5370 DOC_START
5371 This specifies the maximum size for HTTP headers in a reply.
5372 Reply headers are usually relatively small (about 512 bytes).
5373 Placing a limit on the reply header size will catch certain
5374 bugs (for example with persistent connections) and possibly
5375 buffer-overflow or denial-of-service attacks.
5376 DOC_END
5377
5378 NAME: request_body_max_size
5379 COMMENT: (bytes)
5380 TYPE: b_int64_t
5381 DEFAULT: 0 KB
5382 DEFAULT_DOC: No limit.
5383 LOC: Config.maxRequestBodySize
5384 DOC_START
5385 This specifies the maximum size for an HTTP request body.
5386 In other words, the maximum size of a PUT/POST request.
5387 A user who attempts to send a request with a body larger
5388 than this limit receives an "Invalid Request" error message.
5389 If you set this parameter to a zero (the default), there will
5390 be no limit imposed.
5391
5392 See also client_request_buffer_max_size for an alternative
5393 limitation on client uploads which can be configured.
5394 DOC_END
5395
5396 NAME: client_request_buffer_max_size
5397 COMMENT: (bytes)
5398 TYPE: b_size_t
5399 DEFAULT: 512 KB
5400 LOC: Config.maxRequestBufferSize
5401 DOC_START
5402 This specifies the maximum buffer size of a client request.
5403 It prevents squid eating too much memory when somebody uploads
5404 a large file.
5405 DOC_END
5406
5407 NAME: chunked_request_body_max_size
5408 COMMENT: (bytes)
5409 TYPE: b_int64_t
5410 DEFAULT: 64 KB
5411 LOC: Config.maxChunkedRequestBodySize
5412 DOC_START
5413 A broken or confused HTTP/1.1 client may send a chunked HTTP
5414 request to Squid. Squid does not have full support for that
5415 feature yet. To cope with such requests, Squid buffers the
5416 entire request and then dechunks request body to create a
5417 plain HTTP/1.0 request with a known content length. The plain
5418 request is then used by the rest of Squid code as usual.
5419
5420 The option value specifies the maximum size of the buffer used
5421 to hold the request before the conversion. If the chunked
5422 request size exceeds the specified limit, the conversion
5423 fails, and the client receives an "unsupported request" error,
5424 as if dechunking was disabled.
5425
5426 Dechunking is enabled by default. To disable conversion of
5427 chunked requests, set the maximum to zero.
5428
5429 Request dechunking feature and this option in particular are a
5430 temporary hack. When chunking requests and responses are fully
5431 supported, there will be no need to buffer a chunked request.
5432 DOC_END
5433
5434 NAME: broken_posts
5435 IFDEF: USE_HTTP_VIOLATIONS
5436 TYPE: acl_access
5437 DEFAULT: none
5438 DEFAULT_DOC: Obey RFC 2616.
5439 LOC: Config.accessList.brokenPosts
5440 DOC_START
5441 A list of ACL elements which, if matched, causes Squid to send
5442 an extra CRLF pair after the body of a PUT/POST request.
5443
5444 Some HTTP servers has broken implementations of PUT/POST,
5445 and rely on an extra CRLF pair sent by some WWW clients.
5446
5447 Quote from RFC2616 section 4.1 on this matter:
5448
5449 Note: certain buggy HTTP/1.0 client implementations generate an
5450 extra CRLF's after a POST request. To restate what is explicitly
5451 forbidden by the BNF, an HTTP/1.1 client must not preface or follow
5452 a request with an extra CRLF.
5453
5454 This clause only supports fast acl types.
5455 See http://wiki.squid-cache.org/SquidFaq/SquidAcl for details.
5456
5457 Example:
5458 acl buggy_server url_regex ^http://....
5459 broken_posts allow buggy_server
5460 DOC_END
5461
5462 NAME: adaptation_uses_indirect_client icap_uses_indirect_client
5463 COMMENT: on|off
5464 TYPE: onoff
5465 IFDEF: FOLLOW_X_FORWARDED_FOR&&USE_ADAPTATION
5466 DEFAULT: on
5467 LOC: Adaptation::Config::use_indirect_client
5468 DOC_START
5469 Controls whether the indirect client IP address (instead of the direct
5470 client IP address) is passed to adaptation services.
5471
5472 See also: follow_x_forwarded_for adaptation_send_client_ip
5473 DOC_END
5474
5475 NAME: via
5476 IFDEF: USE_HTTP_VIOLATIONS
5477 COMMENT: on|off
5478 TYPE: onoff
5479 DEFAULT: on
5480 LOC: Config.onoff.via
5481 DOC_START
5482 If set (default), Squid will include a Via header in requests and
5483 replies as required by RFC2616.
5484 DOC_END
5485
5486 NAME: ie_refresh
5487 COMMENT: on|off
5488 TYPE: onoff
5489 LOC: Config.onoff.ie_refresh
5490 DEFAULT: off
5491 DOC_START
5492 Microsoft Internet Explorer up until version 5.5 Service
5493 Pack 1 has an issue with transparent proxies, wherein it
5494 is impossible to force a refresh. Turning this on provides
5495 a partial fix to the problem, by causing all IMS-REFRESH
5496 requests from older IE versions to check the origin server
5497 for fresh content. This reduces hit ratio by some amount
5498 (~10% in my experience), but allows users to actually get
5499 fresh content when they want it. Note because Squid
5500 cannot tell if the user is using 5.5 or 5.5SP1, the behavior
5501 of 5.5 is unchanged from old versions of Squid (i.e. a
5502 forced refresh is impossible). Newer versions of IE will,
5503 hopefully, continue to have the new behavior and will be
5504 handled based on that assumption. This option defaults to
5505 the old Squid behavior, which is better for hit ratios but
5506 worse for clients using IE, if they need to be able to
5507 force fresh content.
5508 DOC_END
5509
5510 NAME: vary_ignore_expire
5511 COMMENT: on|off
5512 TYPE: onoff
5513 LOC: Config.onoff.vary_ignore_expire
5514 DEFAULT: off
5515 DOC_START
5516 Many HTTP servers supporting Vary gives such objects
5517 immediate expiry time with no cache-control header
5518 when requested by a HTTP/1.0 client. This option
5519 enables Squid to ignore such expiry times until
5520 HTTP/1.1 is fully implemented.
5521
5522 WARNING: If turned on this may eventually cause some
5523 varying objects not intended for caching to get cached.
5524 DOC_END
5525
5526 NAME: request_entities
5527 TYPE: onoff
5528 LOC: Config.onoff.request_entities
5529 DEFAULT: off
5530 DOC_START
5531 Squid defaults to deny GET and HEAD requests with request entities,
5532 as the meaning of such requests are undefined in the HTTP standard
5533 even if not explicitly forbidden.
5534
5535 Set this directive to on if you have clients which insists
5536 on sending request entities in GET or HEAD requests. But be warned
5537 that there is server software (both proxies and web servers) which
5538 can fail to properly process this kind of request which may make you
5539 vulnerable to cache pollution attacks if enabled.
5540 DOC_END
5541
5542 NAME: request_header_access
5543 IFDEF: USE_HTTP_VIOLATIONS
5544 TYPE: http_header_access
5545 LOC: Config.request_header_access
5546 DEFAULT: none
5547 DEFAULT_DOC: No limits.
5548 DOC_START
5549 Usage: request_header_access header_name allow|deny [!]aclname ...
5550
5551 WARNING: Doing this VIOLATES the HTTP standard. Enabling
5552 this feature could make you liable for problems which it
5553 causes.
5554
5555 This option replaces the old 'anonymize_headers' and the
5556 older 'http_anonymizer' option with something that is much
5557 more configurable. A list of ACLs for each header name allows
5558 removal of specific header fields under specific conditions.
5559
5560 This option only applies to outgoing HTTP request headers (i.e.,
5561 headers sent by Squid to the next HTTP hop such as a cache peer
5562 or an origin server). The option has no effect during cache hit
5563 detection. The equivalent adaptation vectoring point in ICAP
5564 terminology is post-cache REQMOD.
5565
5566 The option is applied to individual outgoing request header
5567 fields. For each request header field F, Squid uses the first
5568 qualifying sets of request_header_access rules:
5569
5570 1. Rules with header_name equal to F's name.
5571 2. Rules with header_name 'Other', provided F's name is not
5572 on the hard-coded list of commonly used HTTP header names.
5573 3. Rules with header_name 'All'.
5574
5575 Within that qualifying rule set, rule ACLs are checked as usual.
5576 If ACLs of an "allow" rule match, the header field is allowed to
5577 go through as is. If ACLs of a "deny" rule match, the header is
5578 removed and request_header_replace is then checked to identify
5579 if the removed header has a replacement. If no rules within the
5580 set have matching ACLs, the header field is left as is.
5581
5582 For example, to achieve the same behavior as the old
5583 'http_anonymizer standard' option, you should use:
5584
5585 request_header_access From deny all
5586 request_header_access Referer deny all
5587 request_header_access User-Agent deny all
5588
5589 Or, to reproduce the old 'http_anonymizer paranoid' feature
5590 you should use:
5591
5592 request_header_access Authorization allow all
5593 request_header_access Proxy-Authorization allow all
5594 request_header_access Cache-Control allow all
5595 request_header_access Content-Length allow all
5596 request_header_access Content-Type allow all
5597 request_header_access Date allow all
5598 request_header_access Host allow all
5599 request_header_access If-Modified-Since allow all
5600 request_header_access Pragma allow all
5601 request_header_access Accept allow all
5602 request_header_access Accept-Charset allow all
5603 request_header_access Accept-Encoding allow all
5604 request_header_access Accept-Language allow all
5605 request_header_access Connection allow all
5606 request_header_access All deny all
5607
5608 HTTP reply headers are controlled with the reply_header_access directive.
5609
5610 By default, all headers are allowed (no anonymizing is performed).
5611 DOC_END
5612
5613 NAME: reply_header_access
5614 IFDEF: USE_HTTP_VIOLATIONS
5615 TYPE: http_header_access
5616 LOC: Config.reply_header_access
5617 DEFAULT: none
5618 DEFAULT_DOC: No limits.
5619 DOC_START
5620 Usage: reply_header_access header_name allow|deny [!]aclname ...
5621
5622 WARNING: Doing this VIOLATES the HTTP standard. Enabling
5623 this feature could make you liable for problems which it
5624 causes.
5625
5626 This option only applies to reply headers, i.e., from the
5627 server to the client.
5628
5629 This is the same as request_header_access, but in the other
5630 direction. Please see request_header_access for detailed
5631 documentation.
5632
5633 For example, to achieve the same behavior as the old
5634 'http_anonymizer standard' option, you should use:
5635
5636 reply_header_access Server deny all
5637 reply_header_access WWW-Authenticate deny all
5638 reply_header_access Link deny all
5639
5640 Or, to reproduce the old 'http_anonymizer paranoid' feature
5641 you should use:
5642
5643 reply_header_access Allow allow all
5644 reply_header_access WWW-Authenticate allow all
5645 reply_header_access Proxy-Authenticate allow all
5646 reply_header_access Cache-Control allow all
5647 reply_header_access Content-Encoding allow all
5648 reply_header_access Content-Length allow all
5649 reply_header_access Content-Type allow all
5650 reply_header_access Date allow all
5651 reply_header_access Expires allow all
5652 reply_header_access Last-Modified allow all
5653 reply_header_access Location allow all
5654 reply_header_access Pragma allow all
5655 reply_header_access Content-Language allow all
5656 reply_header_access Retry-After allow all
5657 reply_header_access Title allow all
5658 reply_header_access Content-Disposition allow all
5659 reply_header_access Connection allow all
5660 reply_header_access All deny all
5661
5662 HTTP request headers are controlled with the request_header_access directive.
5663
5664 By default, all headers are allowed (no anonymizing is
5665 performed).
5666 DOC_END
5667
5668 NAME: request_header_replace header_replace
5669 IFDEF: USE_HTTP_VIOLATIONS
5670 TYPE: http_header_replace
5671 LOC: Config.request_header_access
5672 DEFAULT: none
5673 DOC_START
5674 Usage: request_header_replace header_name message
5675 Example: request_header_replace User-Agent Nutscrape/1.0 (CP/M; 8-bit)
5676
5677 This option allows you to change the contents of headers
5678 denied with request_header_access above, by replacing them
5679 with some fixed string.
5680
5681 This only applies to request headers, not reply headers.
5682
5683 By default, headers are removed if denied.
5684 DOC_END
5685
5686 NAME: reply_header_replace
5687 IFDEF: USE_HTTP_VIOLATIONS
5688 TYPE: http_header_replace
5689 LOC: Config.reply_header_access
5690 DEFAULT: none
5691 DOC_START
5692 Usage: reply_header_replace header_name message
5693 Example: reply_header_replace Server Foo/1.0
5694
5695 This option allows you to change the contents of headers
5696 denied with reply_header_access above, by replacing them
5697 with some fixed string.
5698
5699 This only applies to reply headers, not request headers.
5700
5701 By default, headers are removed if denied.
5702 DOC_END
5703
5704 NAME: request_header_add
5705 TYPE: HeaderWithAclList
5706 LOC: Config.request_header_add
5707 DEFAULT: none
5708 DOC_START
5709 Usage: request_header_add field-name field-value acl1 [acl2] ...
5710 Example: request_header_add X-Client-CA "CA=%ssl::>cert_issuer" all
5711
5712 This option adds header fields to outgoing HTTP requests (i.e.,
5713 request headers sent by Squid to the next HTTP hop such as a
5714 cache peer or an origin server). The option has no effect during
5715 cache hit detection. The equivalent adaptation vectoring point
5716 in ICAP terminology is post-cache REQMOD.
5717
5718 Field-name is a token specifying an HTTP header name. If a
5719 standard HTTP header name is used, Squid does not check whether
5720 the new header conflicts with any existing headers or violates
5721 HTTP rules. If the request to be modified already contains a
5722 field with the same name, the old field is preserved but the
5723 header field values are not merged.
5724
5725 Field-value is either a token or a quoted string. If quoted
5726 string format is used, then the surrounding quotes are removed
5727 while escape sequences and %macros are processed.
5728
5729 In theory, all of the logformat codes can be used as %macros.
5730 However, unlike logging (which happens at the very end of
5731 transaction lifetime), the transaction may not yet have enough
5732 information to expand a macro when the new header value is needed.
5733 And some information may already be available to Squid but not yet
5734 committed where the macro expansion code can access it (report
5735 such instances!). The macro will be expanded into a single dash
5736 ('-') in such cases. Not all macros have been tested.
5737
5738 One or more Squid ACLs may be specified to restrict header
5739 injection to matching requests. As always in squid.conf, all
5740 ACLs in an option ACL list must be satisfied for the insertion
5741 to happen. The request_header_add option supports fast ACLs
5742 only.
5743 DOC_END
5744
5745 NAME: note
5746 TYPE: note
5747 LOC: Config.notes
5748 DEFAULT: none
5749 DOC_START
5750 This option used to log custom information about the master
5751 transaction. For example, an admin may configure Squid to log
5752 which "user group" the transaction belongs to, where "user group"
5753 will be determined based on a set of ACLs and not [just]
5754 authentication information.
5755 Values of key/value pairs can be logged using %{key}note macros:
5756
5757 note key value acl ...
5758 logformat myFormat ... %{key}note ...
5759 DOC_END
5760
5761 NAME: relaxed_header_parser
5762 COMMENT: on|off|warn
5763 TYPE: tristate
5764 LOC: Config.onoff.relaxed_header_parser
5765 DEFAULT: on
5766 DOC_START
5767 In the default "on" setting Squid accepts certain forms
5768 of non-compliant HTTP messages where it is unambiguous
5769 what the sending application intended even if the message
5770 is not correctly formatted. The messages is then normalized
5771 to the correct form when forwarded by Squid.
5772
5773 If set to "warn" then a warning will be emitted in cache.log
5774 each time such HTTP error is encountered.
5775
5776 If set to "off" then such HTTP errors will cause the request
5777 or response to be rejected.
5778 DOC_END
5779
5780 NAME: collapsed_forwarding
5781 COMMENT: (on|off)
5782 TYPE: onoff
5783 LOC: Config.onoff.collapsed_forwarding
5784 DEFAULT: off
5785 DOC_START
5786 This option controls whether Squid is allowed to merge multiple
5787 potentially cachable requests for the same URI before Squid knows
5788 whether the response is going to be cachable.
5789
5790 This feature is disabled by default: Enabling collapsed forwarding
5791 needlessly delays forwarding requests that look cachable (when they are
5792 collapsed) but then need to be forwarded individually anyway because
5793 they end up being for uncachable content. However, in some cases, such
5794 as accelleration of highly cachable content with periodic or groupped
5795 expiration times, the gains from collapsing [large volumes of
5796 simultenous refresh requests] outweigh losses from such delays.
5797 DOC_END
5798
5799 COMMENT_START
5800 TIMEOUTS
5801 -----------------------------------------------------------------------------
5802 COMMENT_END
5803
5804 NAME: forward_timeout
5805 COMMENT: time-units
5806 TYPE: time_t
5807 LOC: Config.Timeout.forward
5808 DEFAULT: 4 minutes
5809 DOC_START
5810 This parameter specifies how long Squid should at most attempt in
5811 finding a forwarding path for the request before giving up.
5812 DOC_END
5813
5814 NAME: connect_timeout
5815 COMMENT: time-units
5816 TYPE: time_t
5817 LOC: Config.Timeout.connect
5818 DEFAULT: 1 minute
5819 DOC_START
5820 This parameter specifies how long to wait for the TCP connect to
5821 the requested server or peer to complete before Squid should
5822 attempt to find another path where to forward the request.
5823 DOC_END
5824
5825 NAME: peer_connect_timeout
5826 COMMENT: time-units
5827 TYPE: time_t
5828 LOC: Config.Timeout.peer_connect
5829 DEFAULT: 30 seconds
5830 DOC_START
5831 This parameter specifies how long to wait for a pending TCP
5832 connection to a peer cache. The default is 30 seconds. You
5833 may also set different timeout values for individual neighbors
5834 with the 'connect-timeout' option on a 'cache_peer' line.
5835 DOC_END
5836
5837 NAME: read_timeout
5838 COMMENT: time-units
5839 TYPE: time_t
5840 LOC: Config.Timeout.read
5841 DEFAULT: 15 minutes
5842 DOC_START
5843 The read_timeout is applied on server-side connections. After
5844 each successful read(), the timeout will be extended by this
5845 amount. If no data is read again after this amount of time,
5846 the request is aborted and logged with ERR_READ_TIMEOUT. The
5847 default is 15 minutes.
5848 DOC_END
5849
5850 NAME: write_timeout
5851 COMMENT: time-units
5852 TYPE: time_t
5853 LOC: Config.Timeout.write
5854 DEFAULT: 15 minutes
5855 DOC_START
5856 This timeout is tracked for all connections that have data
5857 available for writing and are waiting for the socket to become
5858 ready. After each successful write, the timeout is extended by
5859 the configured amount. If Squid has data to write but the
5860 connection is not ready for the configured duration, the
5861 transaction associated with the connection is terminated. The
5862 default is 15 minutes.
5863 DOC_END
5864
5865 NAME: request_timeout
5866 TYPE: time_t
5867 LOC: Config.Timeout.request
5868 DEFAULT: 5 minutes
5869 DOC_START
5870 How long to wait for complete HTTP request headers after initial
5871 connection establishment.
5872 DOC_END
5873
5874 NAME: client_idle_pconn_timeout persistent_request_timeout
5875 TYPE: time_t
5876 LOC: Config.Timeout.clientIdlePconn
5877 DEFAULT: 2 minutes
5878 DOC_START
5879 How long to wait for the next HTTP request on a persistent
5880 client connection after the previous request completes.
5881 DOC_END
5882
5883 NAME: ftp_client_idle_timeout
5884 TYPE: time_t
5885 LOC: Config.Timeout.ftpClientIdle
5886 DEFAULT: 30 minutes
5887 DOC_START
5888 How long to wait for an FTP request on a connection to Squid ftp_port.
5889 Many FTP clients do not deal with idle connection closures well,
5890 necessitating a longer default timeout than client_idle_pconn_timeout
5891 used for incoming HTTP requests.
5892 DOC_END
5893
5894 NAME: client_lifetime
5895 COMMENT: time-units
5896 TYPE: time_t
5897 LOC: Config.Timeout.lifetime
5898 DEFAULT: 1 day
5899 DOC_START
5900 The maximum amount of time a client (browser) is allowed to
5901 remain connected to the cache process. This protects the Cache
5902 from having a lot of sockets (and hence file descriptors) tied up
5903 in a CLOSE_WAIT state from remote clients that go away without
5904 properly shutting down (either because of a network failure or
5905 because of a poor client implementation). The default is one
5906 day, 1440 minutes.
5907
5908 NOTE: The default value is intended to be much larger than any
5909 client would ever need to be connected to your cache. You
5910 should probably change client_lifetime only as a last resort.
5911 If you seem to have many client connections tying up
5912 filedescriptors, we recommend first tuning the read_timeout,
5913 request_timeout, persistent_request_timeout and quick_abort values.
5914 DOC_END
5915
5916 NAME: half_closed_clients
5917 TYPE: onoff
5918 LOC: Config.onoff.half_closed_clients
5919 DEFAULT: off
5920 DOC_START
5921 Some clients may shutdown the sending side of their TCP
5922 connections, while leaving their receiving sides open. Sometimes,
5923 Squid can not tell the difference between a half-closed and a
5924 fully-closed TCP connection.
5925
5926 By default, Squid will immediately close client connections when
5927 read(2) returns "no more data to read."
5928
5929 Change this option to 'on' and Squid will keep open connections
5930 until a read(2) or write(2) on the socket returns an error.
5931 This may show some benefits for reverse proxies. But if not
5932 it is recommended to leave OFF.
5933 DOC_END
5934
5935 NAME: server_idle_pconn_timeout pconn_timeout
5936 TYPE: time_t
5937 LOC: Config.Timeout.serverIdlePconn
5938 DEFAULT: 1 minute
5939 DOC_START
5940 Timeout for idle persistent connections to servers and other
5941 proxies.
5942 DOC_END
5943
5944 NAME: ident_timeout
5945 TYPE: time_t
5946 IFDEF: USE_IDENT
5947 LOC: Ident::TheConfig.timeout
5948 DEFAULT: 10 seconds
5949 DOC_START
5950 Maximum time to wait for IDENT lookups to complete.
5951
5952 If this is too high, and you enabled IDENT lookups from untrusted
5953 users, you might be susceptible to denial-of-service by having
5954 many ident requests going at once.
5955 DOC_END
5956
5957 NAME: shutdown_lifetime
5958 COMMENT: time-units
5959 TYPE: time_t
5960 LOC: Config.shutdownLifetime
5961 DEFAULT: 30 seconds
5962 DOC_START
5963 When SIGTERM or SIGHUP is received, the cache is put into
5964 "shutdown pending" mode until all active sockets are closed.
5965 This value is the lifetime to set for all open descriptors
5966 during shutdown mode. Any active clients after this many
5967 seconds will receive a 'timeout' message.
5968 DOC_END
5969
5970 COMMENT_START
5971 ADMINISTRATIVE PARAMETERS
5972 -----------------------------------------------------------------------------
5973 COMMENT_END
5974
5975 NAME: cache_mgr
5976 TYPE: string
5977 DEFAULT: webmaster
5978 LOC: Config.adminEmail
5979 DOC_START
5980 Email-address of local cache manager who will receive
5981 mail if the cache dies. The default is "webmaster".
5982 DOC_END
5983
5984 NAME: mail_from
5985 TYPE: string
5986 DEFAULT: none
5987 LOC: Config.EmailFrom
5988 DOC_START
5989 From: email-address for mail sent when the cache dies.
5990 The default is to use 'squid@unique_hostname'.
5991
5992 See also: unique_hostname directive.
5993 DOC_END
5994
5995 NAME: mail_program
5996 TYPE: eol
5997 DEFAULT: mail
5998 LOC: Config.EmailProgram
5999 DOC_START
6000 Email program used to send mail if the cache dies.
6001 The default is "mail". The specified program must comply
6002 with the standard Unix mail syntax:
6003 mail-program recipient < mailfile
6004
6005 Optional command line options can be specified.
6006 DOC_END
6007
6008 NAME: cache_effective_user
6009 TYPE: string
6010 DEFAULT: @DEFAULT_CACHE_EFFECTIVE_USER@
6011 LOC: Config.effectiveUser
6012 DOC_START
6013 If you start Squid as root, it will change its effective/real
6014 UID/GID to the user specified below. The default is to change
6015 to UID of @DEFAULT_CACHE_EFFECTIVE_USER@.
6016 see also; cache_effective_group
6017 DOC_END
6018
6019 NAME: cache_effective_group
6020 TYPE: string
6021 DEFAULT: none
6022 DEFAULT_DOC: Use system group memberships of the cache_effective_user account
6023 LOC: Config.effectiveGroup
6024 DOC_START
6025 Squid sets the GID to the effective user's default group ID
6026 (taken from the password file) and supplementary group list
6027 from the groups membership.
6028
6029 If you want Squid to run with a specific GID regardless of
6030 the group memberships of the effective user then set this
6031 to the group (or GID) you want Squid to run as. When set
6032 all other group privileges of the effective user are ignored
6033 and only this GID is effective. If Squid is not started as
6034 root the user starting Squid MUST be member of the specified
6035 group.
6036
6037 This option is not recommended by the Squid Team.
6038 Our preference is for administrators to configure a secure
6039 user account for squid with UID/GID matching system policies.
6040 DOC_END
6041
6042 NAME: httpd_suppress_version_string
6043 COMMENT: on|off
6044 TYPE: onoff
6045 DEFAULT: off
6046 LOC: Config.onoff.httpd_suppress_version_string
6047 DOC_START
6048 Suppress Squid version string info in HTTP headers and HTML error pages.
6049 DOC_END
6050
6051 NAME: visible_hostname
6052 TYPE: string
6053 LOC: Config.visibleHostname
6054 DEFAULT: none
6055 DEFAULT_DOC: Automatically detect the system host name
6056 DOC_START
6057 If you want to present a special hostname in error messages, etc,
6058 define this. Otherwise, the return value of gethostname()
6059 will be used. If you have multiple caches in a cluster and
6060 get errors about IP-forwarding you must set them to have individual
6061 names with this setting.
6062 DOC_END
6063
6064 NAME: unique_hostname
6065 TYPE: string
6066 LOC: Config.uniqueHostname
6067 DEFAULT: none
6068 DEFAULT_DOC: Copy the value from visible_hostname
6069 DOC_START
6070 If you want to have multiple machines with the same
6071 'visible_hostname' you must give each machine a different
6072 'unique_hostname' so forwarding loops can be detected.
6073 DOC_END
6074
6075 NAME: hostname_aliases
6076 TYPE: wordlist
6077 LOC: Config.hostnameAliases
6078 DEFAULT: none
6079 DOC_START
6080 A list of other DNS names your cache has.
6081 DOC_END
6082
6083 NAME: umask
6084 TYPE: int
6085 LOC: Config.umask
6086 DEFAULT: 027
6087 DOC_START
6088 Minimum umask which should be enforced while the proxy
6089 is running, in addition to the umask set at startup.
6090
6091 For a traditional octal representation of umasks, start
6092 your value with 0.
6093 DOC_END
6094
6095 COMMENT_START
6096 OPTIONS FOR THE CACHE REGISTRATION SERVICE
6097 -----------------------------------------------------------------------------
6098
6099 This section contains parameters for the (optional) cache
6100 announcement service. This service is provided to help
6101 cache administrators locate one another in order to join or
6102 create cache hierarchies.
6103
6104 An 'announcement' message is sent (via UDP) to the registration
6105 service by Squid. By default, the announcement message is NOT
6106 SENT unless you enable it with 'announce_period' below.
6107
6108 The announcement message includes your hostname, plus the
6109 following information from this configuration file:
6110
6111 http_port
6112 icp_port
6113 cache_mgr
6114
6115 All current information is processed regularly and made
6116 available on the Web at http://www.ircache.net/Cache/Tracker/.
6117 COMMENT_END
6118
6119 NAME: announce_period
6120 TYPE: time_t
6121 LOC: Config.Announce.period
6122 DEFAULT: 0
6123 DEFAULT_DOC: Announcement messages disabled.
6124 DOC_START
6125 This is how frequently to send cache announcements.
6126
6127 To enable announcing your cache, just set an announce period.
6128
6129 Example:
6130 announce_period 1 day
6131 DOC_END
6132
6133 NAME: announce_host
6134 TYPE: string
6135 DEFAULT: tracker.ircache.net
6136 LOC: Config.Announce.host
6137 DOC_START
6138 Set the hostname where announce registration messages will be sent.
6139
6140 See also announce_port and announce_file
6141 DOC_END
6142
6143 NAME: announce_file
6144 TYPE: string
6145 DEFAULT: none
6146 LOC: Config.Announce.file
6147 DOC_START
6148 The contents of this file will be included in the announce
6149 registration messages.
6150 DOC_END
6151
6152 NAME: announce_port
6153 TYPE: u_short
6154 DEFAULT: 3131
6155 LOC: Config.Announce.port
6156 DOC_START
6157 Set the port where announce registration messages will be sent.
6158
6159 See also announce_host and announce_file
6160 DOC_END
6161
6162 COMMENT_START
6163 HTTPD-ACCELERATOR OPTIONS
6164 -----------------------------------------------------------------------------
6165 COMMENT_END
6166
6167 NAME: httpd_accel_surrogate_id
6168 TYPE: string
6169 DEFAULT: none
6170 DEFAULT_DOC: visible_hostname is used if no specific ID is set.
6171 LOC: Config.Accel.surrogate_id
6172 DOC_START
6173 Surrogates (http://www.esi.org/architecture_spec_1.0.html)
6174 need an identification token to allow control targeting. Because
6175 a farm of surrogates may all perform the same tasks, they may share
6176 an identification token.
6177 DOC_END
6178
6179 NAME: http_accel_surrogate_remote
6180 COMMENT: on|off
6181 TYPE: onoff
6182 DEFAULT: off
6183 LOC: Config.onoff.surrogate_is_remote
6184 DOC_START
6185 Remote surrogates (such as those in a CDN) honour the header
6186 "Surrogate-Control: no-store-remote".
6187
6188 Set this to on to have squid behave as a remote surrogate.
6189 DOC_END
6190
6191 NAME: esi_parser
6192 IFDEF: USE_SQUID_ESI
6193 COMMENT: libxml2|expat|custom
6194 TYPE: string
6195 LOC: ESIParser::Type
6196 DEFAULT: custom
6197 DOC_START
6198 ESI markup is not strictly XML compatible. The custom ESI parser
6199 will give higher performance, but cannot handle non ASCII character
6200 encodings.
6201 DOC_END
6202
6203 COMMENT_START
6204 DELAY POOL PARAMETERS
6205 -----------------------------------------------------------------------------
6206 COMMENT_END
6207
6208 NAME: delay_pools
6209 TYPE: delay_pool_count
6210 DEFAULT: 0
6211 IFDEF: USE_DELAY_POOLS
6212 LOC: Config.Delay
6213 DOC_START
6214 This represents the number of delay pools to be used. For example,
6215 if you have one class 2 delay pool and one class 3 delays pool, you
6216 have a total of 2 delay pools.
6217
6218 See also delay_parameters, delay_class, delay_access for pool
6219 configuration details.
6220 DOC_END
6221
6222 NAME: delay_class
6223 TYPE: delay_pool_class
6224 DEFAULT: none
6225 IFDEF: USE_DELAY_POOLS
6226 LOC: Config.Delay
6227 DOC_START
6228 This defines the class of each delay pool. There must be exactly one
6229 delay_class line for each delay pool. For example, to define two
6230 delay pools, one of class 2 and one of class 3, the settings above
6231 and here would be:
6232
6233 Example:
6234 delay_pools 4 # 4 delay pools
6235 delay_class 1 2 # pool 1 is a class 2 pool
6236 delay_class 2 3 # pool 2 is a class 3 pool
6237 delay_class 3 4 # pool 3 is a class 4 pool
6238 delay_class 4 5 # pool 4 is a class 5 pool
6239
6240 The delay pool classes are:
6241
6242 class 1 Everything is limited by a single aggregate
6243 bucket.
6244
6245 class 2 Everything is limited by a single aggregate
6246 bucket as well as an "individual" bucket chosen
6247 from bits 25 through 32 of the IPv4 address.
6248
6249 class 3 Everything is limited by a single aggregate
6250 bucket as well as a "network" bucket chosen
6251 from bits 17 through 24 of the IP address and a
6252 "individual" bucket chosen from bits 17 through
6253 32 of the IPv4 address.
6254
6255 class 4 Everything in a class 3 delay pool, with an
6256 additional limit on a per user basis. This
6257 only takes effect if the username is established
6258 in advance - by forcing authentication in your
6259 http_access rules.
6260
6261 class 5 Requests are grouped according their tag (see
6262 external_acl's tag= reply).
6263
6264
6265 Each pool also requires a delay_parameters directive to configure the pool size
6266 and speed limits used whenever the pool is applied to a request. Along with
6267 a set of delay_access directives to determine when it is used.
6268
6269 NOTE: If an IP address is a.b.c.d
6270 -> bits 25 through 32 are "d"
6271 -> bits 17 through 24 are "c"
6272 -> bits 17 through 32 are "c * 256 + d"
6273
6274 NOTE-2: Due to the use of bitmasks in class 2,3,4 pools they only apply to
6275 IPv4 traffic. Class 1 and 5 pools may be used with IPv6 traffic.
6276
6277 This clause only supports fast acl types.
6278 See http://wiki.squid-cache.org/SquidFaq/SquidAcl for details.
6279
6280 See also delay_parameters and delay_access.
6281 DOC_END
6282
6283 NAME: delay_access
6284 TYPE: delay_pool_access
6285 DEFAULT: none
6286 DEFAULT_DOC: Deny using the pool, unless allow rules exist in squid.conf for the pool.
6287 IFDEF: USE_DELAY_POOLS
6288 LOC: Config.Delay
6289 DOC_START
6290 This is used to determine which delay pool a request falls into.
6291
6292 delay_access is sorted per pool and the matching starts with pool 1,
6293 then pool 2, ..., and finally pool N. The first delay pool where the
6294 request is allowed is selected for the request. If it does not allow
6295 the request to any pool then the request is not delayed (default).
6296
6297 For example, if you want some_big_clients in delay
6298 pool 1 and lotsa_little_clients in delay pool 2:
6299
6300 delay_access 1 allow some_big_clients
6301 delay_access 1 deny all
6302 delay_access 2 allow lotsa_little_clients
6303 delay_access 2 deny all
6304 delay_access 3 allow authenticated_clients
6305
6306 See also delay_parameters and delay_class.
6307
6308 DOC_END
6309
6310 NAME: delay_parameters
6311 TYPE: delay_pool_rates
6312 DEFAULT: none
6313 IFDEF: USE_DELAY_POOLS
6314 LOC: Config.Delay
6315 DOC_START
6316 This defines the parameters for a delay pool. Each delay pool has
6317 a number of "buckets" associated with it, as explained in the
6318 description of delay_class.
6319
6320 For a class 1 delay pool, the syntax is:
6321 delay_pools pool 1
6322 delay_parameters pool aggregate
6323
6324 For a class 2 delay pool:
6325 delay_pools pool 2
6326 delay_parameters pool aggregate individual
6327
6328 For a class 3 delay pool:
6329 delay_pools pool 3
6330 delay_parameters pool aggregate network individual
6331
6332 For a class 4 delay pool:
6333 delay_pools pool 4
6334 delay_parameters pool aggregate network individual user
6335
6336 For a class 5 delay pool:
6337 delay_pools pool 5
6338 delay_parameters pool tagrate
6339
6340 The option variables are:
6341
6342 pool a pool number - ie, a number between 1 and the
6343 number specified in delay_pools as used in
6344 delay_class lines.
6345
6346 aggregate the speed limit parameters for the aggregate bucket
6347 (class 1, 2, 3).
6348
6349 individual the speed limit parameters for the individual
6350 buckets (class 2, 3).
6351
6352 network the speed limit parameters for the network buckets
6353 (class 3).
6354
6355 user the speed limit parameters for the user buckets
6356 (class 4).
6357
6358 tagrate the speed limit parameters for the tag buckets
6359 (class 5).
6360
6361 A pair of delay parameters is written restore/maximum, where restore is
6362 the number of bytes (not bits - modem and network speeds are usually
6363 quoted in bits) per second placed into the bucket, and maximum is the
6364 maximum number of bytes which can be in the bucket at any time.
6365
6366 There must be one delay_parameters line for each delay pool.
6367
6368
6369 For example, if delay pool number 1 is a class 2 delay pool as in the
6370 above example, and is being used to strictly limit each host to 64Kbit/sec
6371 (plus overheads), with no overall limit, the line is:
6372
6373 delay_parameters 1 -1/-1 8000/8000
6374
6375 Note that 8 x 8000 KByte/sec -> 64Kbit/sec.
6376
6377 Note that the figure -1 is used to represent "unlimited".
6378
6379
6380 And, if delay pool number 2 is a class 3 delay pool as in the above
6381 example, and you want to limit it to a total of 256Kbit/sec (strict limit)
6382 with each 8-bit network permitted 64Kbit/sec (strict limit) and each
6383 individual host permitted 4800bit/sec with a bucket maximum size of 64Kbits
6384 to permit a decent web page to be downloaded at a decent speed
6385 (if the network is not being limited due to overuse) but slow down
6386 large downloads more significantly:
6387
6388 delay_parameters 2 32000/32000 8000/8000 600/8000
6389
6390 Note that 8 x 32000 KByte/sec -> 256Kbit/sec.
6391 8 x 8000 KByte/sec -> 64Kbit/sec.
6392 8 x 600 Byte/sec -> 4800bit/sec.
6393
6394
6395 Finally, for a class 4 delay pool as in the example - each user will
6396 be limited to 128Kbits/sec no matter how many workstations they are logged into.:
6397
6398 delay_parameters 4 32000/32000 8000/8000 600/64000 16000/16000
6399
6400
6401 See also delay_class and delay_access.
6402
6403 DOC_END
6404
6405 NAME: delay_initial_bucket_level
6406 COMMENT: (percent, 0-100)
6407 TYPE: u_short
6408 DEFAULT: 50
6409 IFDEF: USE_DELAY_POOLS
6410 LOC: Config.Delay.initial
6411 DOC_START
6412 The initial bucket percentage is used to determine how much is put
6413 in each bucket when squid starts, is reconfigured, or first notices
6414 a host accessing it (in class 2 and class 3, individual hosts and
6415 networks only have buckets associated with them once they have been
6416 "seen" by squid).
6417 DOC_END
6418
6419 COMMENT_START
6420 CLIENT DELAY POOL PARAMETERS
6421 -----------------------------------------------------------------------------
6422 COMMENT_END
6423
6424 NAME: client_delay_pools
6425 TYPE: client_delay_pool_count
6426 DEFAULT: 0
6427 IFDEF: USE_DELAY_POOLS
6428 LOC: Config.ClientDelay
6429 DOC_START
6430 This option specifies the number of client delay pools used. It must
6431 preceed other client_delay_* options.
6432
6433 Example:
6434 client_delay_pools 2
6435
6436 See also client_delay_parameters and client_delay_access.
6437 DOC_END
6438
6439 NAME: client_delay_initial_bucket_level
6440 COMMENT: (percent, 0-no_limit)
6441 TYPE: u_short
6442 DEFAULT: 50
6443 IFDEF: USE_DELAY_POOLS
6444 LOC: Config.ClientDelay.initial
6445 DOC_START
6446 This option determines the initial bucket size as a percentage of
6447 max_bucket_size from client_delay_parameters. Buckets are created
6448 at the time of the "first" connection from the matching IP. Idle
6449 buckets are periodically deleted up.
6450
6451 You can specify more than 100 percent but note that such "oversized"
6452 buckets are not refilled until their size goes down to max_bucket_size
6453 from client_delay_parameters.
6454
6455 Example:
6456 client_delay_initial_bucket_level 50
6457 DOC_END
6458
6459 NAME: client_delay_parameters
6460 TYPE: client_delay_pool_rates
6461 DEFAULT: none
6462 IFDEF: USE_DELAY_POOLS
6463 LOC: Config.ClientDelay
6464 DOC_START
6465
6466 This option configures client-side bandwidth limits using the
6467 following format:
6468
6469 client_delay_parameters pool speed_limit max_bucket_size
6470
6471 pool is an integer ID used for client_delay_access matching.
6472
6473 speed_limit is bytes added to the bucket per second.
6474
6475 max_bucket_size is the maximum size of a bucket, enforced after any
6476 speed_limit additions.
6477
6478 Please see the delay_parameters option for more information and
6479 examples.
6480
6481 Example:
6482 client_delay_parameters 1 1024 2048
6483 client_delay_parameters 2 51200 16384
6484
6485 See also client_delay_access.
6486
6487 DOC_END
6488
6489 NAME: client_delay_access
6490 TYPE: client_delay_pool_access
6491 DEFAULT: none
6492 DEFAULT_DOC: Deny use of the pool, unless allow rules exist in squid.conf for the pool.
6493 IFDEF: USE_DELAY_POOLS
6494 LOC: Config.ClientDelay
6495 DOC_START
6496 This option determines the client-side delay pool for the
6497 request:
6498
6499 client_delay_access pool_ID allow|deny acl_name
6500
6501 All client_delay_access options are checked in their pool ID
6502 order, starting with pool 1. The first checked pool with allowed
6503 request is selected for the request. If no ACL matches or there
6504 are no client_delay_access options, the request bandwidth is not
6505 limited.
6506
6507 The ACL-selected pool is then used to find the
6508 client_delay_parameters for the request. Client-side pools are
6509 not used to aggregate clients. Clients are always aggregated
6510 based on their source IP addresses (one bucket per source IP).
6511
6512 This clause only supports fast acl types.
6513 See http://wiki.squid-cache.org/SquidFaq/SquidAcl for details.
6514 Additionally, only the client TCP connection details are available.
6515 ACLs testing HTTP properties will not work.
6516
6517 Please see delay_access for more examples.
6518
6519 Example:
6520 client_delay_access 1 allow low_rate_network
6521 client_delay_access 2 allow vips_network
6522
6523
6524 See also client_delay_parameters and client_delay_pools.
6525 DOC_END
6526
6527 COMMENT_START
6528 WCCPv1 AND WCCPv2 CONFIGURATION OPTIONS
6529 -----------------------------------------------------------------------------
6530 COMMENT_END
6531
6532 NAME: wccp_router
6533 TYPE: address
6534 LOC: Config.Wccp.router
6535 DEFAULT: any_addr
6536 DEFAULT_DOC: WCCP disabled.
6537 IFDEF: USE_WCCP
6538 DOC_START
6539 Use this option to define your WCCP ``home'' router for
6540 Squid.
6541
6542 wccp_router supports a single WCCP(v1) router
6543
6544 wccp2_router supports multiple WCCPv2 routers
6545
6546 only one of the two may be used at the same time and defines
6547 which version of WCCP to use.
6548 DOC_END
6549
6550 NAME: wccp2_router
6551 TYPE: IpAddress_list
6552 LOC: Config.Wccp2.router
6553 DEFAULT: none
6554 DEFAULT_DOC: WCCPv2 disabled.
6555 IFDEF: USE_WCCPv2
6556 DOC_START
6557 Use this option to define your WCCP ``home'' router for
6558 Squid.
6559
6560 wccp_router supports a single WCCP(v1) router
6561
6562 wccp2_router supports multiple WCCPv2 routers
6563
6564 only one of the two may be used at the same time and defines
6565 which version of WCCP to use.
6566 DOC_END
6567
6568 NAME: wccp_version
6569 TYPE: int
6570 LOC: Config.Wccp.version
6571 DEFAULT: 4
6572 IFDEF: USE_WCCP
6573 DOC_START
6574 This directive is only relevant if you need to set up WCCP(v1)
6575 to some very old and end-of-life Cisco routers. In all other
6576 setups it must be left unset or at the default setting.
6577 It defines an internal version in the WCCP(v1) protocol,
6578 with version 4 being the officially documented protocol.
6579
6580 According to some users, Cisco IOS 11.2 and earlier only
6581 support WCCP version 3. If you're using that or an earlier
6582 version of IOS, you may need to change this value to 3, otherwise
6583 do not specify this parameter.
6584 DOC_END
6585
6586 NAME: wccp2_rebuild_wait
6587 TYPE: onoff
6588 LOC: Config.Wccp2.rebuildwait
6589 DEFAULT: on
6590 IFDEF: USE_WCCPv2
6591 DOC_START
6592 If this is enabled Squid will wait for the cache dir rebuild to finish
6593 before sending the first wccp2 HereIAm packet
6594 DOC_END
6595
6596 NAME: wccp2_forwarding_method
6597 TYPE: wccp2_method
6598 LOC: Config.Wccp2.forwarding_method
6599 DEFAULT: gre
6600 IFDEF: USE_WCCPv2
6601 DOC_START
6602 WCCP2 allows the setting of forwarding methods between the
6603 router/switch and the cache. Valid values are as follows:
6604
6605 gre - GRE encapsulation (forward the packet in a GRE/WCCP tunnel)
6606 l2 - L2 redirect (forward the packet using Layer 2/MAC rewriting)
6607
6608 Currently (as of IOS 12.4) cisco routers only support GRE.
6609 Cisco switches only support the L2 redirect assignment method.
6610 DOC_END
6611
6612 NAME: wccp2_return_method
6613 TYPE: wccp2_method
6614 LOC: Config.Wccp2.return_method
6615 DEFAULT: gre
6616 IFDEF: USE_WCCPv2
6617 DOC_START
6618 WCCP2 allows the setting of return methods between the
6619 router/switch and the cache for packets that the cache
6620 decides not to handle. Valid values are as follows:
6621
6622 gre - GRE encapsulation (forward the packet in a GRE/WCCP tunnel)
6623 l2 - L2 redirect (forward the packet using Layer 2/MAC rewriting)
6624
6625 Currently (as of IOS 12.4) cisco routers only support GRE.
6626 Cisco switches only support the L2 redirect assignment.
6627
6628 If the "ip wccp redirect exclude in" command has been
6629 enabled on the cache interface, then it is still safe for
6630 the proxy server to use a l2 redirect method even if this
6631 option is set to GRE.
6632 DOC_END
6633
6634 NAME: wccp2_assignment_method
6635 TYPE: wccp2_amethod
6636 LOC: Config.Wccp2.assignment_method
6637 DEFAULT: hash
6638 IFDEF: USE_WCCPv2
6639 DOC_START
6640 WCCP2 allows the setting of methods to assign the WCCP hash
6641 Valid values are as follows:
6642
6643 hash - Hash assignment
6644 mask - Mask assignment
6645
6646 As a general rule, cisco routers support the hash assignment method
6647 and cisco switches support the mask assignment method.
6648 DOC_END
6649
6650 NAME: wccp2_service
6651 TYPE: wccp2_service
6652 LOC: Config.Wccp2.info
6653 DEFAULT_IF_NONE: standard 0
6654 DEFAULT_DOC: Use the 'web-cache' standard service.
6655 IFDEF: USE_WCCPv2
6656 DOC_START
6657 WCCP2 allows for multiple traffic services. There are two
6658 types: "standard" and "dynamic". The standard type defines
6659 one service id - http (id 0). The dynamic service ids can be from
6660 51 to 255 inclusive. In order to use a dynamic service id
6661 one must define the type of traffic to be redirected; this is done
6662 using the wccp2_service_info option.
6663
6664 The "standard" type does not require a wccp2_service_info option,
6665 just specifying the service id will suffice.
6666
6667 MD5 service authentication can be enabled by adding
6668 "password=<password>" to the end of this service declaration.
6669
6670 Examples:
6671
6672 wccp2_service standard 0 # for the 'web-cache' standard service
6673 wccp2_service dynamic 80 # a dynamic service type which will be
6674 # fleshed out with subsequent options.
6675 wccp2_service standard 0 password=foo
6676 DOC_END
6677
6678 NAME: wccp2_service_info
6679 TYPE: wccp2_service_info
6680 LOC: Config.Wccp2.info
6681 DEFAULT: none
6682 IFDEF: USE_WCCPv2
6683 DOC_START
6684 Dynamic WCCPv2 services require further information to define the
6685 traffic you wish to have diverted.
6686
6687 The format is:
6688
6689 wccp2_service_info <id> protocol=<protocol> flags=<flag>,<flag>..
6690 priority=<priority> ports=<port>,<port>..
6691
6692 The relevant WCCPv2 flags:
6693 + src_ip_hash, dst_ip_hash
6694 + source_port_hash, dst_port_hash
6695 + src_ip_alt_hash, dst_ip_alt_hash
6696 + src_port_alt_hash, dst_port_alt_hash
6697 + ports_source
6698
6699 The port list can be one to eight entries.
6700
6701 Example:
6702
6703 wccp2_service_info 80 protocol=tcp flags=src_ip_hash,ports_source
6704 priority=240 ports=80
6705
6706 Note: the service id must have been defined by a previous
6707 'wccp2_service dynamic <id>' entry.
6708 DOC_END
6709
6710 NAME: wccp2_weight
6711 TYPE: int
6712 LOC: Config.Wccp2.weight
6713 DEFAULT: 10000
6714 IFDEF: USE_WCCPv2
6715 DOC_START
6716 Each cache server gets assigned a set of the destination
6717 hash proportional to their weight.
6718 DOC_END
6719
6720 NAME: wccp_address
6721 TYPE: address
6722 LOC: Config.Wccp.address
6723 DEFAULT: 0.0.0.0
6724 DEFAULT_DOC: Address selected by the operating system.
6725 IFDEF: USE_WCCP
6726 DOC_START
6727 Use this option if you require WCCPv2 to use a specific
6728 interface address.
6729
6730 The default behavior is to not bind to any specific address.
6731 DOC_END
6732
6733 NAME: wccp2_address
6734 TYPE: address
6735 LOC: Config.Wccp2.address
6736 DEFAULT: 0.0.0.0
6737 DEFAULT_DOC: Address selected by the operating system.
6738 IFDEF: USE_WCCPv2
6739 DOC_START
6740 Use this option if you require WCCP to use a specific
6741 interface address.
6742
6743 The default behavior is to not bind to any specific address.
6744 DOC_END
6745
6746 COMMENT_START
6747 PERSISTENT CONNECTION HANDLING
6748 -----------------------------------------------------------------------------
6749
6750 Also see "pconn_timeout" in the TIMEOUTS section
6751 COMMENT_END
6752
6753 NAME: client_persistent_connections
6754 TYPE: onoff
6755 LOC: Config.onoff.client_pconns
6756 DEFAULT: on
6757 DOC_START
6758 Persistent connection support for clients.
6759 Squid uses persistent connections (when allowed). You can use
6760 this option to disable persistent connections with clients.
6761 DOC_END
6762
6763 NAME: server_persistent_connections
6764 TYPE: onoff
6765 LOC: Config.onoff.server_pconns
6766 DEFAULT: on
6767 DOC_START
6768 Persistent connection support for servers.
6769 Squid uses persistent connections (when allowed). You can use
6770 this option to disable persistent connections with servers.
6771 DOC_END
6772
6773 NAME: persistent_connection_after_error
6774 TYPE: onoff
6775 LOC: Config.onoff.error_pconns
6776 DEFAULT: on
6777 DOC_START
6778 With this directive the use of persistent connections after
6779 HTTP errors can be disabled. Useful if you have clients
6780 who fail to handle errors on persistent connections proper.
6781 DOC_END
6782
6783 NAME: detect_broken_pconn
6784 TYPE: onoff
6785 LOC: Config.onoff.detect_broken_server_pconns
6786 DEFAULT: off
6787 DOC_START
6788 Some servers have been found to incorrectly signal the use
6789 of HTTP/1.0 persistent connections even on replies not
6790 compatible, causing significant delays. This server problem
6791 has mostly been seen on redirects.
6792
6793 By enabling this directive Squid attempts to detect such
6794 broken replies and automatically assume the reply is finished
6795 after 10 seconds timeout.
6796 DOC_END
6797
6798 COMMENT_START
6799 CACHE DIGEST OPTIONS
6800 -----------------------------------------------------------------------------
6801 COMMENT_END
6802
6803 NAME: digest_generation
6804 IFDEF: USE_CACHE_DIGESTS
6805 TYPE: onoff
6806 LOC: Config.onoff.digest_generation
6807 DEFAULT: on
6808 DOC_START
6809 This controls whether the server will generate a Cache Digest
6810 of its contents. By default, Cache Digest generation is
6811 enabled if Squid is compiled with --enable-cache-digests defined.
6812 DOC_END
6813
6814 NAME: digest_bits_per_entry
6815 IFDEF: USE_CACHE_DIGESTS
6816 TYPE: int
6817 LOC: Config.digest.bits_per_entry
6818 DEFAULT: 5
6819 DOC_START
6820 This is the number of bits of the server's Cache Digest which
6821 will be associated with the Digest entry for a given HTTP
6822 Method and URL (public key) combination. The default is 5.
6823 DOC_END
6824
6825 NAME: digest_rebuild_period
6826 IFDEF: USE_CACHE_DIGESTS
6827 COMMENT: (seconds)
6828 TYPE: time_t
6829 LOC: Config.digest.rebuild_period
6830 DEFAULT: 1 hour
6831 DOC_START
6832 This is the wait time between Cache Digest rebuilds.
6833 DOC_END
6834
6835 NAME: digest_rewrite_period
6836 COMMENT: (seconds)
6837 IFDEF: USE_CACHE_DIGESTS
6838 TYPE: time_t
6839 LOC: Config.digest.rewrite_period
6840 DEFAULT: 1 hour
6841 DOC_START
6842 This is the wait time between Cache Digest writes to
6843 disk.
6844 DOC_END
6845
6846 NAME: digest_swapout_chunk_size
6847 COMMENT: (bytes)
6848 TYPE: b_size_t
6849 IFDEF: USE_CACHE_DIGESTS
6850 LOC: Config.digest.swapout_chunk_size
6851 DEFAULT: 4096 bytes
6852 DOC_START
6853 This is the number of bytes of the Cache Digest to write to
6854 disk at a time. It defaults to 4096 bytes (4KB), the Squid
6855 default swap page.
6856 DOC_END
6857
6858 NAME: digest_rebuild_chunk_percentage
6859 COMMENT: (percent, 0-100)
6860 IFDEF: USE_CACHE_DIGESTS
6861 TYPE: int
6862 LOC: Config.digest.rebuild_chunk_percentage
6863 DEFAULT: 10
6864 DOC_START
6865 This is the percentage of the Cache Digest to be scanned at a
6866 time. By default it is set to 10% of the Cache Digest.
6867 DOC_END
6868
6869 COMMENT_START
6870 SNMP OPTIONS
6871 -----------------------------------------------------------------------------
6872 COMMENT_END
6873
6874 NAME: snmp_port
6875 TYPE: u_short
6876 LOC: Config.Port.snmp
6877 DEFAULT: 0
6878 DEFAULT_DOC: SNMP disabled.
6879 IFDEF: SQUID_SNMP
6880 DOC_START
6881 The port number where Squid listens for SNMP requests. To enable
6882 SNMP support set this to a suitable port number. Port number
6883 3401 is often used for the Squid SNMP agent. By default it's
6884 set to "0" (disabled)
6885
6886 Example:
6887 snmp_port 3401
6888 DOC_END
6889
6890 NAME: snmp_access
6891 TYPE: acl_access
6892 LOC: Config.accessList.snmp
6893 DEFAULT: none
6894 DEFAULT_DOC: Deny, unless rules exist in squid.conf.
6895 IFDEF: SQUID_SNMP
6896 DOC_START
6897 Allowing or denying access to the SNMP port.
6898
6899 All access to the agent is denied by default.
6900 usage:
6901
6902 snmp_access allow|deny [!]aclname ...
6903
6904 This clause only supports fast acl types.
6905 See http://wiki.squid-cache.org/SquidFaq/SquidAcl for details.
6906
6907 Example:
6908 snmp_access allow snmppublic localhost
6909 snmp_access deny all
6910 DOC_END
6911
6912 NAME: snmp_incoming_address
6913 TYPE: address
6914 LOC: Config.Addrs.snmp_incoming
6915 DEFAULT: any_addr
6916 DEFAULT_DOC: Accept SNMP packets from all machine interfaces.
6917 IFDEF: SQUID_SNMP
6918 DOC_START
6919 Just like 'udp_incoming_address', but for the SNMP port.
6920
6921 snmp_incoming_address is used for the SNMP socket receiving
6922 messages from SNMP agents.
6923
6924 The default snmp_incoming_address is to listen on all
6925 available network interfaces.
6926 DOC_END
6927
6928 NAME: snmp_outgoing_address
6929 TYPE: address
6930 LOC: Config.Addrs.snmp_outgoing
6931 DEFAULT: no_addr
6932 DEFAULT_DOC: Use snmp_incoming_address or an address selected by the operating system.
6933 IFDEF: SQUID_SNMP
6934 DOC_START
6935 Just like 'udp_outgoing_address', but for the SNMP port.
6936
6937 snmp_outgoing_address is used for SNMP packets returned to SNMP
6938 agents.
6939
6940 If snmp_outgoing_address is not set it will use the same socket
6941 as snmp_incoming_address. Only change this if you want to have
6942 SNMP replies sent using another address than where this Squid
6943 listens for SNMP queries.
6944
6945 NOTE, snmp_incoming_address and snmp_outgoing_address can not have
6946 the same value since they both use the same port.
6947 DOC_END
6948
6949 COMMENT_START
6950 ICP OPTIONS
6951 -----------------------------------------------------------------------------
6952 COMMENT_END
6953
6954 NAME: icp_port udp_port
6955 TYPE: u_short
6956 DEFAULT: 0
6957 DEFAULT_DOC: ICP disabled.
6958 LOC: Config.Port.icp
6959 DOC_START
6960 The port number where Squid sends and receives ICP queries to
6961 and from neighbor caches. The standard UDP port for ICP is 3130.
6962
6963 Example:
6964 icp_port @DEFAULT_ICP_PORT@
6965 DOC_END
6966
6967 NAME: htcp_port
6968 IFDEF: USE_HTCP
6969 TYPE: u_short
6970 DEFAULT: 0
6971 DEFAULT_DOC: HTCP disabled.
6972 LOC: Config.Port.htcp
6973 DOC_START
6974 The port number where Squid sends and receives HTCP queries to
6975 and from neighbor caches. To turn it on you want to set it to
6976 4827.
6977
6978 Example:
6979 htcp_port 4827
6980 DOC_END
6981
6982 NAME: log_icp_queries
6983 COMMENT: on|off
6984 TYPE: onoff
6985 DEFAULT: on
6986 LOC: Config.onoff.log_udp
6987 DOC_START
6988 If set, ICP queries are logged to access.log. You may wish
6989 do disable this if your ICP load is VERY high to speed things
6990 up or to simplify log analysis.
6991 DOC_END
6992
6993 NAME: udp_incoming_address
6994 TYPE: address
6995 LOC:Config.Addrs.udp_incoming
6996 DEFAULT: any_addr
6997 DEFAULT_DOC: Accept packets from all machine interfaces.
6998 DOC_START
6999 udp_incoming_address is used for UDP packets received from other
7000 caches.
7001
7002 The default behavior is to not bind to any specific address.
7003
7004 Only change this if you want to have all UDP queries received on
7005 a specific interface/address.
7006
7007 NOTE: udp_incoming_address is used by the ICP, HTCP, and DNS
7008 modules. Altering it will affect all of them in the same manner.
7009
7010 see also; udp_outgoing_address
7011
7012 NOTE, udp_incoming_address and udp_outgoing_address can not
7013 have the same value since they both use the same port.
7014 DOC_END
7015
7016 NAME: udp_outgoing_address
7017 TYPE: address
7018 LOC: Config.Addrs.udp_outgoing
7019 DEFAULT: no_addr
7020 DEFAULT_DOC: Use udp_incoming_address or an address selected by the operating system.
7021 DOC_START
7022 udp_outgoing_address is used for UDP packets sent out to other
7023 caches.
7024
7025 The default behavior is to not bind to any specific address.
7026
7027 Instead it will use the same socket as udp_incoming_address.
7028 Only change this if you want to have UDP queries sent using another
7029 address than where this Squid listens for UDP queries from other
7030 caches.
7031
7032 NOTE: udp_outgoing_address is used by the ICP, HTCP, and DNS
7033 modules. Altering it will affect all of them in the same manner.
7034
7035 see also; udp_incoming_address
7036
7037 NOTE, udp_incoming_address and udp_outgoing_address can not
7038 have the same value since they both use the same port.
7039 DOC_END
7040
7041 NAME: icp_hit_stale
7042 COMMENT: on|off
7043 TYPE: onoff
7044 DEFAULT: off
7045 LOC: Config.onoff.icp_hit_stale
7046 DOC_START
7047 If you want to return ICP_HIT for stale cache objects, set this
7048 option to 'on'. If you have sibling relationships with caches
7049 in other administrative domains, this should be 'off'. If you only
7050 have sibling relationships with caches under your control,
7051 it is probably okay to set this to 'on'.
7052 If set to 'on', your siblings should use the option "allow-miss"
7053 on their cache_peer lines for connecting to you.
7054 DOC_END
7055
7056 NAME: minimum_direct_hops
7057 TYPE: int
7058 DEFAULT: 4
7059 LOC: Config.minDirectHops
7060 DOC_START
7061 If using the ICMP pinging stuff, do direct fetches for sites
7062 which are no more than this many hops away.
7063 DOC_END
7064
7065 NAME: minimum_direct_rtt
7066 COMMENT: (msec)
7067 TYPE: int
7068 DEFAULT: 400
7069 LOC: Config.minDirectRtt
7070 DOC_START
7071 If using the ICMP pinging stuff, do direct fetches for sites
7072 which are no more than this many rtt milliseconds away.
7073 DOC_END
7074
7075 NAME: netdb_low
7076 TYPE: int
7077 DEFAULT: 900
7078 LOC: Config.Netdb.low
7079 DOC_START
7080 The low water mark for the ICMP measurement database.
7081
7082 Note: high watermark controlled by netdb_high directive.
7083
7084 These watermarks are counts, not percents. The defaults are
7085 (low) 900 and (high) 1000. When the high water mark is
7086 reached, database entries will be deleted until the low
7087 mark is reached.
7088 DOC_END
7089
7090 NAME: netdb_high
7091 TYPE: int
7092 DEFAULT: 1000
7093 LOC: Config.Netdb.high
7094 DOC_START
7095 The high water mark for the ICMP measurement database.
7096
7097 Note: low watermark controlled by netdb_low directive.
7098
7099 These watermarks are counts, not percents. The defaults are
7100 (low) 900 and (high) 1000. When the high water mark is
7101 reached, database entries will be deleted until the low
7102 mark is reached.
7103 DOC_END
7104
7105 NAME: netdb_ping_period
7106 TYPE: time_t
7107 LOC: Config.Netdb.period
7108 DEFAULT: 5 minutes
7109 DOC_START
7110 The minimum period for measuring a site. There will be at
7111 least this much delay between successive pings to the same
7112 network. The default is five minutes.
7113 DOC_END
7114
7115 NAME: query_icmp
7116 COMMENT: on|off
7117 TYPE: onoff
7118 DEFAULT: off
7119 LOC: Config.onoff.query_icmp
7120 DOC_START
7121 If you want to ask your peers to include ICMP data in their ICP
7122 replies, enable this option.
7123
7124 If your peer has configured Squid (during compilation) with
7125 '--enable-icmp' that peer will send ICMP pings to origin server
7126 sites of the URLs it receives. If you enable this option the
7127 ICP replies from that peer will include the ICMP data (if available).
7128 Then, when choosing a parent cache, Squid will choose the parent with
7129 the minimal RTT to the origin server. When this happens, the
7130 hierarchy field of the access.log will be
7131 "CLOSEST_PARENT_MISS". This option is off by default.
7132 DOC_END
7133
7134 NAME: test_reachability
7135 COMMENT: on|off
7136 TYPE: onoff
7137 DEFAULT: off
7138 LOC: Config.onoff.test_reachability
7139 DOC_START
7140 When this is 'on', ICP MISS replies will be ICP_MISS_NOFETCH
7141 instead of ICP_MISS if the target host is NOT in the ICMP
7142 database, or has a zero RTT.
7143 DOC_END
7144
7145 NAME: icp_query_timeout
7146 COMMENT: (msec)
7147 DEFAULT: 0
7148 DEFAULT_DOC: Dynamic detection.
7149 TYPE: int
7150 LOC: Config.Timeout.icp_query
7151 DOC_START
7152 Normally Squid will automatically determine an optimal ICP
7153 query timeout value based on the round-trip-time of recent ICP
7154 queries. If you want to override the value determined by
7155 Squid, set this 'icp_query_timeout' to a non-zero value. This
7156 value is specified in MILLISECONDS, so, to use a 2-second
7157 timeout (the old default), you would write:
7158
7159 icp_query_timeout 2000
7160 DOC_END
7161
7162 NAME: maximum_icp_query_timeout
7163 COMMENT: (msec)
7164 DEFAULT: 2000
7165 TYPE: int
7166 LOC: Config.Timeout.icp_query_max
7167 DOC_START
7168 Normally the ICP query timeout is determined dynamically. But
7169 sometimes it can lead to very large values (say 5 seconds).
7170 Use this option to put an upper limit on the dynamic timeout
7171 value. Do NOT use this option to always use a fixed (instead
7172 of a dynamic) timeout value. To set a fixed timeout see the
7173 'icp_query_timeout' directive.
7174 DOC_END
7175
7176 NAME: minimum_icp_query_timeout
7177 COMMENT: (msec)
7178 DEFAULT: 5
7179 TYPE: int
7180 LOC: Config.Timeout.icp_query_min
7181 DOC_START
7182 Normally the ICP query timeout is determined dynamically. But
7183 sometimes it can lead to very small timeouts, even lower than
7184 the normal latency variance on your link due to traffic.
7185 Use this option to put an lower limit on the dynamic timeout
7186 value. Do NOT use this option to always use a fixed (instead
7187 of a dynamic) timeout value. To set a fixed timeout see the
7188 'icp_query_timeout' directive.
7189 DOC_END
7190
7191 NAME: background_ping_rate
7192 COMMENT: time-units
7193 TYPE: time_t
7194 DEFAULT: 10 seconds
7195 LOC: Config.backgroundPingRate
7196 DOC_START
7197 Controls how often the ICP pings are sent to siblings that
7198 have background-ping set.
7199 DOC_END
7200
7201 COMMENT_START
7202 MULTICAST ICP OPTIONS
7203 -----------------------------------------------------------------------------
7204 COMMENT_END
7205
7206 NAME: mcast_groups
7207 TYPE: wordlist
7208 LOC: Config.mcast_group_list
7209 DEFAULT: none
7210 DOC_START
7211 This tag specifies a list of multicast groups which your server
7212 should join to receive multicasted ICP queries.
7213
7214 NOTE! Be very careful what you put here! Be sure you
7215 understand the difference between an ICP _query_ and an ICP
7216 _reply_. This option is to be set only if you want to RECEIVE
7217 multicast queries. Do NOT set this option to SEND multicast
7218 ICP (use cache_peer for that). ICP replies are always sent via
7219 unicast, so this option does not affect whether or not you will
7220 receive replies from multicast group members.
7221
7222 You must be very careful to NOT use a multicast address which
7223 is already in use by another group of caches.
7224
7225 If you are unsure about multicast, please read the Multicast
7226 chapter in the Squid FAQ (http://www.squid-cache.org/FAQ/).
7227
7228 Usage: mcast_groups 239.128.16.128 224.0.1.20
7229
7230 By default, Squid doesn't listen on any multicast groups.
7231 DOC_END
7232
7233 NAME: mcast_miss_addr
7234 IFDEF: MULTICAST_MISS_STREAM
7235 TYPE: address
7236 LOC: Config.mcast_miss.addr
7237 DEFAULT: no_addr
7238 DEFAULT_DOC: disabled.
7239 DOC_START
7240 If you enable this option, every "cache miss" URL will
7241 be sent out on the specified multicast address.
7242
7243 Do not enable this option unless you are are absolutely
7244 certain you understand what you are doing.
7245 DOC_END
7246
7247 NAME: mcast_miss_ttl
7248 IFDEF: MULTICAST_MISS_STREAM
7249 TYPE: u_short
7250 LOC: Config.mcast_miss.ttl
7251 DEFAULT: 16
7252 DOC_START
7253 This is the time-to-live value for packets multicasted
7254 when multicasting off cache miss URLs is enabled. By
7255 default this is set to 'site scope', i.e. 16.
7256 DOC_END
7257
7258 NAME: mcast_miss_port
7259 IFDEF: MULTICAST_MISS_STREAM
7260 TYPE: u_short
7261 LOC: Config.mcast_miss.port
7262 DEFAULT: 3135
7263 DOC_START
7264 This is the port number to be used in conjunction with
7265 'mcast_miss_addr'.
7266 DOC_END
7267
7268 NAME: mcast_miss_encode_key
7269 IFDEF: MULTICAST_MISS_STREAM
7270 TYPE: string
7271 LOC: Config.mcast_miss.encode_key
7272 DEFAULT: XXXXXXXXXXXXXXXX
7273 DOC_START
7274 The URLs that are sent in the multicast miss stream are
7275 encrypted. This is the encryption key.
7276 DOC_END
7277
7278 NAME: mcast_icp_query_timeout
7279 COMMENT: (msec)
7280 DEFAULT: 2000
7281 TYPE: int
7282 LOC: Config.Timeout.mcast_icp_query
7283 DOC_START
7284 For multicast peers, Squid regularly sends out ICP "probes" to
7285 count how many other peers are listening on the given multicast
7286 address. This value specifies how long Squid should wait to
7287 count all the replies. The default is 2000 msec, or 2
7288 seconds.
7289 DOC_END
7290
7291 COMMENT_START
7292 INTERNAL ICON OPTIONS
7293 -----------------------------------------------------------------------------
7294 COMMENT_END
7295
7296 NAME: icon_directory
7297 TYPE: string
7298 LOC: Config.icons.directory
7299 DEFAULT: @DEFAULT_ICON_DIR@
7300 DOC_START
7301 Where the icons are stored. These are normally kept in
7302 @DEFAULT_ICON_DIR@
7303 DOC_END
7304
7305 NAME: global_internal_static
7306 TYPE: onoff
7307 LOC: Config.onoff.global_internal_static
7308 DEFAULT: on
7309 DOC_START
7310 This directive controls is Squid should intercept all requests for
7311 /squid-internal-static/ no matter which host the URL is requesting
7312 (default on setting), or if nothing special should be done for
7313 such URLs (off setting). The purpose of this directive is to make
7314 icons etc work better in complex cache hierarchies where it may
7315 not always be possible for all corners in the cache mesh to reach
7316 the server generating a directory listing.
7317 DOC_END
7318
7319 NAME: short_icon_urls
7320 TYPE: onoff
7321 LOC: Config.icons.use_short_names
7322 DEFAULT: on
7323 DOC_START
7324 If this is enabled Squid will use short URLs for icons.
7325 If disabled it will revert to the old behavior of including
7326 it's own name and port in the URL.
7327
7328 If you run a complex cache hierarchy with a mix of Squid and
7329 other proxies you may need to disable this directive.
7330 DOC_END
7331
7332 COMMENT_START
7333 ERROR PAGE OPTIONS
7334 -----------------------------------------------------------------------------
7335 COMMENT_END
7336
7337 NAME: error_directory
7338 TYPE: string
7339 LOC: Config.errorDirectory
7340 DEFAULT: none
7341 DEFAULT_DOC: Send error pages in the clients preferred language
7342 DOC_START
7343 If you wish to create your own versions of the default
7344 error files to customize them to suit your company copy
7345 the error/template files to another directory and point
7346 this tag at them.
7347
7348 WARNING: This option will disable multi-language support
7349 on error pages if used.
7350
7351 The squid developers are interested in making squid available in
7352 a wide variety of languages. If you are making translations for a
7353 language that Squid does not currently provide please consider
7354 contributing your translation back to the project.
7355 http://wiki.squid-cache.org/Translations
7356
7357 The squid developers working on translations are happy to supply drop-in
7358 translated error files in exchange for any new language contributions.
7359 DOC_END
7360
7361 NAME: error_default_language
7362 IFDEF: USE_ERR_LOCALES
7363 TYPE: string
7364 LOC: Config.errorDefaultLanguage
7365 DEFAULT: none
7366 DEFAULT_DOC: Generate English language pages.
7367 DOC_START
7368 Set the default language which squid will send error pages in
7369 if no existing translation matches the clients language
7370 preferences.
7371
7372 If unset (default) generic English will be used.
7373
7374 The squid developers are interested in making squid available in
7375 a wide variety of languages. If you are interested in making
7376 translations for any language see the squid wiki for details.
7377 http://wiki.squid-cache.org/Translations
7378 DOC_END
7379
7380 NAME: error_log_languages
7381 IFDEF: USE_ERR_LOCALES
7382 TYPE: onoff
7383 LOC: Config.errorLogMissingLanguages
7384 DEFAULT: on
7385 DOC_START
7386 Log to cache.log what languages users are attempting to
7387 auto-negotiate for translations.
7388
7389 Successful negotiations are not logged. Only failures
7390 have meaning to indicate that Squid may need an upgrade
7391 of its error page translations.
7392 DOC_END
7393
7394 NAME: err_page_stylesheet
7395 TYPE: string
7396 LOC: Config.errorStylesheet
7397 DEFAULT: @DEFAULT_CONFIG_DIR@/errorpage.css
7398 DOC_START
7399 CSS Stylesheet to pattern the display of Squid default error pages.
7400
7401 For information on CSS see http://www.w3.org/Style/CSS/
7402 DOC_END
7403
7404 NAME: err_html_text
7405 TYPE: eol
7406 LOC: Config.errHtmlText
7407 DEFAULT: none
7408 DOC_START
7409 HTML text to include in error messages. Make this a "mailto"
7410 URL to your admin address, or maybe just a link to your
7411 organizations Web page.
7412
7413 To include this in your error messages, you must rewrite
7414 the error template files (found in the "errors" directory).
7415 Wherever you want the 'err_html_text' line to appear,
7416 insert a %L tag in the error template file.
7417 DOC_END
7418
7419 NAME: email_err_data
7420 COMMENT: on|off
7421 TYPE: onoff
7422 LOC: Config.onoff.emailErrData
7423 DEFAULT: on
7424 DOC_START
7425 If enabled, information about the occurred error will be
7426 included in the mailto links of the ERR pages (if %W is set)
7427 so that the email body contains the data.
7428 Syntax is <A HREF="mailto:%w%W">%w</A>
7429 DOC_END
7430
7431 NAME: deny_info
7432 TYPE: denyinfo
7433 LOC: Config.denyInfoList
7434 DEFAULT: none
7435 DOC_START
7436 Usage: deny_info err_page_name acl
7437 or deny_info http://... acl
7438 or deny_info TCP_RESET acl
7439
7440 This can be used to return a ERR_ page for requests which
7441 do not pass the 'http_access' rules. Squid remembers the last
7442 acl it evaluated in http_access, and if a 'deny_info' line exists
7443 for that ACL Squid returns a corresponding error page.
7444
7445 The acl is typically the last acl on the http_access deny line which
7446 denied access. The exceptions to this rule are:
7447 - When Squid needs to request authentication credentials. It's then
7448 the first authentication related acl encountered
7449 - When none of the http_access lines matches. It's then the last
7450 acl processed on the last http_access line.
7451 - When the decision to deny access was made by an adaptation service,
7452 the acl name is the corresponding eCAP or ICAP service_name.
7453
7454 NP: If providing your own custom error pages with error_directory
7455 you may also specify them by your custom file name:
7456 Example: deny_info ERR_CUSTOM_ACCESS_DENIED bad_guys
7457
7458 By defaut Squid will send "403 Forbidden". A different 4xx or 5xx
7459 may be specified by prefixing the file name with the code and a colon.
7460 e.g. 404:ERR_CUSTOM_ACCESS_DENIED
7461
7462 Alternatively you can tell Squid to reset the TCP connection
7463 by specifying TCP_RESET.
7464
7465 Or you can specify an error URL or URL pattern. The browsers will
7466 get redirected to the specified URL after formatting tags have
7467 been replaced. Redirect will be done with 302 or 307 according to
7468 HTTP/1.1 specs. A different 3xx code may be specified by prefixing
7469 the URL. e.g. 303:http://example.com/
7470
7471 URL FORMAT TAGS:
7472 %a - username (if available. Password NOT included)
7473 %B - FTP path URL
7474 %e - Error number
7475 %E - Error description
7476 %h - Squid hostname
7477 %H - Request domain name
7478 %i - Client IP Address
7479 %M - Request Method
7480 %o - Message result from external ACL helper
7481 %p - Request Port number
7482 %P - Request Protocol name
7483 %R - Request URL path
7484 %T - Timestamp in RFC 1123 format
7485 %U - Full canonical URL from client
7486 (HTTPS URLs terminate with *)
7487 %u - Full canonical URL from client
7488 %w - Admin email from squid.conf
7489 %x - Error name
7490 %% - Literal percent (%) code
7491
7492 DOC_END
7493
7494 COMMENT_START
7495 OPTIONS INFLUENCING REQUEST FORWARDING
7496 -----------------------------------------------------------------------------
7497 COMMENT_END
7498
7499 NAME: nonhierarchical_direct
7500 TYPE: onoff
7501 LOC: Config.onoff.nonhierarchical_direct
7502 DEFAULT: on
7503 DOC_START
7504 By default, Squid will send any non-hierarchical requests
7505 (matching hierarchy_stoplist or not cacheable request type) direct
7506 to origin servers.
7507
7508 When this is set to "off", Squid will prefer to send these
7509 requests to parents.
7510
7511 Note that in most configurations, by turning this off you will only
7512 add latency to these request without any improvement in global hit
7513 ratio.
7514
7515 This option only sets a preference. If the parent is unavailable a
7516 direct connection to the origin server may still be attempted. To
7517 completely prevent direct connections use never_direct.
7518 DOC_END
7519
7520 NAME: prefer_direct
7521 TYPE: onoff
7522 LOC: Config.onoff.prefer_direct
7523 DEFAULT: off
7524 DOC_START
7525 Normally Squid tries to use parents for most requests. If you for some
7526 reason like it to first try going direct and only use a parent if
7527 going direct fails set this to on.
7528
7529 By combining nonhierarchical_direct off and prefer_direct on you
7530 can set up Squid to use a parent as a backup path if going direct
7531 fails.
7532
7533 Note: If you want Squid to use parents for all requests see
7534 the never_direct directive. prefer_direct only modifies how Squid
7535 acts on cacheable requests.
7536 DOC_END
7537
7538 NAME: cache_miss_revalidate
7539 COMMENT: on|off
7540 TYPE: onoff
7541 DEFAULT: on
7542 LOC: Config.onoff.cache_miss_revalidate
7543 DOC_START
7544 RFC 7232 defines a conditional request mechanism to prevent
7545 response objects being unnecessarily transferred over the network.
7546 If that mechanism is used by the client and a cache MISS occurs
7547 it can prevent new cache entries being created.
7548
7549 This option determines whether Squid on cache MISS will pass the
7550 client revalidation request to the server or tries to fetch new
7551 content for caching. It can be useful while the cache is mostly
7552 empty to more quickly have the cache populated by generating
7553 non-conditional GETs.
7554
7555 When set to 'on' (default), Squid will pass all client If-* headers
7556 to the server. This permits server responses without a cacheable
7557 payload to be delivered and on MISS no new cache entry is created.
7558
7559 When set to 'off' and if the request is cacheable, Squid will
7560 remove the clients If-Modified-Since and If-None-Match headers from
7561 the request sent to the server. This requests a 200 status response
7562 from the server to create a new cache entry with.
7563 DOC_END
7564
7565 NAME: always_direct
7566 TYPE: acl_access
7567 LOC: Config.accessList.AlwaysDirect
7568 DEFAULT: none
7569 DEFAULT_DOC: Prevent any cache_peer being used for this request.
7570 DOC_START
7571 Usage: always_direct allow|deny [!]aclname ...
7572
7573 Here you can use ACL elements to specify requests which should
7574 ALWAYS be forwarded by Squid to the origin servers without using
7575 any peers. For example, to always directly forward requests for
7576 local servers ignoring any parents or siblings you may have use
7577 something like:
7578
7579 acl local-servers dstdomain my.domain.net
7580 always_direct allow local-servers
7581
7582 To always forward FTP requests directly, use
7583
7584 acl FTP proto FTP
7585 always_direct allow FTP
7586
7587 NOTE: There is a similar, but opposite option named
7588 'never_direct'. You need to be aware that "always_direct deny
7589 foo" is NOT the same thing as "never_direct allow foo". You
7590 may need to use a deny rule to exclude a more-specific case of
7591 some other rule. Example:
7592
7593 acl local-external dstdomain external.foo.net
7594 acl local-servers dstdomain .foo.net
7595 always_direct deny local-external
7596 always_direct allow local-servers
7597
7598 NOTE: If your goal is to make the client forward the request
7599 directly to the origin server bypassing Squid then this needs
7600 to be done in the client configuration. Squid configuration
7601 can only tell Squid how Squid should fetch the object.
7602
7603 NOTE: This directive is not related to caching. The replies
7604 is cached as usual even if you use always_direct. To not cache
7605 the replies see the 'cache' directive.
7606
7607 This clause supports both fast and slow acl types.
7608 See http://wiki.squid-cache.org/SquidFaq/SquidAcl for details.
7609 DOC_END
7610
7611 NAME: never_direct
7612 TYPE: acl_access
7613 LOC: Config.accessList.NeverDirect
7614 DEFAULT: none
7615 DEFAULT_DOC: Allow DNS results to be used for this request.
7616 DOC_START
7617 Usage: never_direct allow|deny [!]aclname ...
7618
7619 never_direct is the opposite of always_direct. Please read
7620 the description for always_direct if you have not already.
7621
7622 With 'never_direct' you can use ACL elements to specify
7623 requests which should NEVER be forwarded directly to origin
7624 servers. For example, to force the use of a proxy for all
7625 requests, except those in your local domain use something like:
7626
7627 acl local-servers dstdomain .foo.net
7628 never_direct deny local-servers
7629 never_direct allow all
7630
7631 or if Squid is inside a firewall and there are local intranet
7632 servers inside the firewall use something like:
7633
7634 acl local-intranet dstdomain .foo.net
7635 acl local-external dstdomain external.foo.net
7636 always_direct deny local-external
7637 always_direct allow local-intranet
7638 never_direct allow all
7639
7640 This clause supports both fast and slow acl types.
7641 See http://wiki.squid-cache.org/SquidFaq/SquidAcl for details.
7642 DOC_END
7643
7644 COMMENT_START
7645 ADVANCED NETWORKING OPTIONS
7646 -----------------------------------------------------------------------------
7647 COMMENT_END
7648
7649 NAME: incoming_udp_average incoming_icp_average
7650 TYPE: int
7651 DEFAULT: 6
7652 LOC: Config.comm_incoming.udp.average
7653 DOC_START
7654 Heavy voodoo here. I can't even believe you are reading this.
7655 Are you crazy? Don't even think about adjusting these unless
7656 you understand the algorithms in comm_select.c first!
7657 DOC_END
7658
7659 NAME: incoming_tcp_average incoming_http_average
7660 TYPE: int
7661 DEFAULT: 4
7662 LOC: Config.comm_incoming.tcp.average
7663 DOC_START
7664 Heavy voodoo here. I can't even believe you are reading this.
7665 Are you crazy? Don't even think about adjusting these unless
7666 you understand the algorithms in comm_select.c first!
7667 DOC_END
7668
7669 NAME: incoming_dns_average
7670 TYPE: int
7671 DEFAULT: 4
7672 LOC: Config.comm_incoming.dns.average
7673 DOC_START
7674 Heavy voodoo here. I can't even believe you are reading this.
7675 Are you crazy? Don't even think about adjusting these unless
7676 you understand the algorithms in comm_select.c first!
7677 DOC_END
7678
7679 NAME: min_udp_poll_cnt min_icp_poll_cnt
7680 TYPE: int
7681 DEFAULT: 8
7682 LOC: Config.comm_incoming.udp.min_poll
7683 DOC_START
7684 Heavy voodoo here. I can't even believe you are reading this.
7685 Are you crazy? Don't even think about adjusting these unless
7686 you understand the algorithms in comm_select.c first!
7687 DOC_END
7688
7689 NAME: min_dns_poll_cnt
7690 TYPE: int
7691 DEFAULT: 8
7692 LOC: Config.comm_incoming.dns.min_poll
7693 DOC_START
7694 Heavy voodoo here. I can't even believe you are reading this.
7695 Are you crazy? Don't even think about adjusting these unless
7696 you understand the algorithms in comm_select.c first!
7697 DOC_END
7698
7699 NAME: min_tcp_poll_cnt min_http_poll_cnt
7700 TYPE: int
7701 DEFAULT: 8
7702 LOC: Config.comm_incoming.tcp.min_poll
7703 DOC_START
7704 Heavy voodoo here. I can't even believe you are reading this.
7705 Are you crazy? Don't even think about adjusting these unless
7706 you understand the algorithms in comm_select.c first!
7707 DOC_END
7708
7709 NAME: accept_filter
7710 TYPE: string
7711 DEFAULT: none
7712 LOC: Config.accept_filter
7713 DOC_START
7714 FreeBSD:
7715
7716 The name of an accept(2) filter to install on Squid's
7717 listen socket(s). This feature is perhaps specific to
7718 FreeBSD and requires support in the kernel.
7719
7720 The 'httpready' filter delays delivering new connections
7721 to Squid until a full HTTP request has been received.
7722 See the accf_http(9) man page for details.
7723
7724 The 'dataready' filter delays delivering new connections
7725 to Squid until there is some data to process.
7726 See the accf_dataready(9) man page for details.
7727
7728 Linux:
7729
7730 The 'data' filter delays delivering of new connections
7731 to Squid until there is some data to process by TCP_ACCEPT_DEFER.
7732 You may optionally specify a number of seconds to wait by
7733 'data=N' where N is the number of seconds. Defaults to 30
7734 if not specified. See the tcp(7) man page for details.
7735 EXAMPLE:
7736 # FreeBSD
7737 accept_filter httpready
7738 # Linux
7739 accept_filter data
7740 DOC_END
7741
7742 NAME: client_ip_max_connections
7743 TYPE: int
7744 LOC: Config.client_ip_max_connections
7745 DEFAULT: -1
7746 DEFAULT_DOC: No limit.
7747 DOC_START
7748 Set an absolute limit on the number of connections a single
7749 client IP can use. Any more than this and Squid will begin to drop
7750 new connections from the client until it closes some links.
7751
7752 Note that this is a global limit. It affects all HTTP, HTCP, Gopher and FTP
7753 connections from the client. For finer control use the ACL access controls.
7754
7755 Requires client_db to be enabled (the default).
7756
7757 WARNING: This may noticably slow down traffic received via external proxies
7758 or NAT devices and cause them to rebound error messages back to their clients.
7759 DOC_END
7760
7761 NAME: tcp_recv_bufsize
7762 COMMENT: (bytes)
7763 TYPE: b_size_t
7764 DEFAULT: 0 bytes
7765 DEFAULT_DOC: Use operating system TCP defaults.
7766 LOC: Config.tcpRcvBufsz
7767 DOC_START
7768 Size of receive buffer to set for TCP sockets. Probably just
7769 as easy to change your kernel's default.
7770 Omit from squid.conf to use the default buffer size.
7771 DOC_END
7772
7773 COMMENT_START
7774 ICAP OPTIONS
7775 -----------------------------------------------------------------------------
7776 COMMENT_END
7777
7778 NAME: icap_enable
7779 TYPE: onoff
7780 IFDEF: ICAP_CLIENT
7781 COMMENT: on|off
7782 LOC: Adaptation::Icap::TheConfig.onoff
7783 DEFAULT: off
7784 DOC_START
7785 If you want to enable the ICAP module support, set this to on.
7786 DOC_END
7787
7788 NAME: icap_connect_timeout
7789 TYPE: time_t
7790 DEFAULT: none
7791 LOC: Adaptation::Icap::TheConfig.connect_timeout_raw
7792 IFDEF: ICAP_CLIENT
7793 DOC_START
7794 This parameter specifies how long to wait for the TCP connect to
7795 the requested ICAP server to complete before giving up and either
7796 terminating the HTTP transaction or bypassing the failure.
7797
7798 The default for optional services is peer_connect_timeout.
7799 The default for essential services is connect_timeout.
7800 If this option is explicitly set, its value applies to all services.
7801 DOC_END
7802
7803 NAME: icap_io_timeout
7804 COMMENT: time-units
7805 TYPE: time_t
7806 DEFAULT: none
7807 DEFAULT_DOC: Use read_timeout.
7808 LOC: Adaptation::Icap::TheConfig.io_timeout_raw
7809 IFDEF: ICAP_CLIENT
7810 DOC_START
7811 This parameter specifies how long to wait for an I/O activity on
7812 an established, active ICAP connection before giving up and
7813 either terminating the HTTP transaction or bypassing the
7814 failure.
7815 DOC_END
7816
7817 NAME: icap_service_failure_limit
7818 COMMENT: limit [in memory-depth time-units]
7819 TYPE: icap_service_failure_limit
7820 IFDEF: ICAP_CLIENT
7821 LOC: Adaptation::Icap::TheConfig
7822 DEFAULT: 10
7823 DOC_START
7824 The limit specifies the number of failures that Squid tolerates
7825 when establishing a new TCP connection with an ICAP service. If
7826 the number of failures exceeds the limit, the ICAP service is
7827 not used for new ICAP requests until it is time to refresh its
7828 OPTIONS.
7829
7830 A negative value disables the limit. Without the limit, an ICAP
7831 service will not be considered down due to connectivity failures
7832 between ICAP OPTIONS requests.
7833
7834 Squid forgets ICAP service failures older than the specified
7835 value of memory-depth. The memory fading algorithm
7836 is approximate because Squid does not remember individual
7837 errors but groups them instead, splitting the option
7838 value into ten time slots of equal length.
7839
7840 When memory-depth is 0 and by default this option has no
7841 effect on service failure expiration.
7842
7843 Squid always forgets failures when updating service settings
7844 using an ICAP OPTIONS transaction, regardless of this option
7845 setting.
7846
7847 For example,
7848 # suspend service usage after 10 failures in 5 seconds:
7849 icap_service_failure_limit 10 in 5 seconds
7850 DOC_END
7851
7852 NAME: icap_service_revival_delay
7853 TYPE: int
7854 IFDEF: ICAP_CLIENT
7855 LOC: Adaptation::Icap::TheConfig.service_revival_delay
7856 DEFAULT: 180
7857 DOC_START
7858 The delay specifies the number of seconds to wait after an ICAP
7859 OPTIONS request failure before requesting the options again. The
7860 failed ICAP service is considered "down" until fresh OPTIONS are
7861 fetched.
7862
7863 The actual delay cannot be smaller than the hardcoded minimum
7864 delay of 30 seconds.
7865 DOC_END
7866
7867 NAME: icap_preview_enable
7868 TYPE: onoff
7869 IFDEF: ICAP_CLIENT
7870 COMMENT: on|off
7871 LOC: Adaptation::Icap::TheConfig.preview_enable
7872 DEFAULT: on
7873 DOC_START
7874 The ICAP Preview feature allows the ICAP server to handle the
7875 HTTP message by looking only at the beginning of the message body
7876 or even without receiving the body at all. In some environments,
7877 previews greatly speedup ICAP processing.
7878
7879 During an ICAP OPTIONS transaction, the server may tell Squid what
7880 HTTP messages should be previewed and how big the preview should be.
7881 Squid will not use Preview if the server did not request one.
7882
7883 To disable ICAP Preview for all ICAP services, regardless of
7884 individual ICAP server OPTIONS responses, set this option to "off".
7885 Example:
7886 icap_preview_enable off
7887 DOC_END
7888
7889 NAME: icap_preview_size
7890 TYPE: int
7891 IFDEF: ICAP_CLIENT
7892 LOC: Adaptation::Icap::TheConfig.preview_size
7893 DEFAULT: -1
7894 DEFAULT_DOC: No preview sent.
7895 DOC_START
7896 The default size of preview data to be sent to the ICAP server.
7897 This value might be overwritten on a per server basis by OPTIONS requests.
7898 DOC_END
7899
7900 NAME: icap_206_enable
7901 TYPE: onoff
7902 IFDEF: ICAP_CLIENT
7903 COMMENT: on|off
7904 LOC: Adaptation::Icap::TheConfig.allow206_enable
7905 DEFAULT: on
7906 DOC_START
7907 206 (Partial Content) responses is an ICAP extension that allows the
7908 ICAP agents to optionally combine adapted and original HTTP message
7909 content. The decision to combine is postponed until the end of the
7910 ICAP response. Squid supports Partial Content extension by default.
7911
7912 Activation of the Partial Content extension is negotiated with each
7913 ICAP service during OPTIONS exchange. Most ICAP servers should handle
7914 negotation correctly even if they do not support the extension, but
7915 some might fail. To disable Partial Content support for all ICAP
7916 services and to avoid any negotiation, set this option to "off".
7917
7918 Example:
7919 icap_206_enable off
7920 DOC_END
7921
7922 NAME: icap_default_options_ttl
7923 TYPE: int
7924 IFDEF: ICAP_CLIENT
7925 LOC: Adaptation::Icap::TheConfig.default_options_ttl
7926 DEFAULT: 60
7927 DOC_START
7928 The default TTL value for ICAP OPTIONS responses that don't have
7929 an Options-TTL header.
7930 DOC_END
7931
7932 NAME: icap_persistent_connections
7933 TYPE: onoff
7934 IFDEF: ICAP_CLIENT
7935 COMMENT: on|off
7936 LOC: Adaptation::Icap::TheConfig.reuse_connections
7937 DEFAULT: on
7938 DOC_START
7939 Whether or not Squid should use persistent connections to
7940 an ICAP server.
7941 DOC_END
7942
7943 NAME: adaptation_send_client_ip icap_send_client_ip
7944 TYPE: onoff
7945 IFDEF: USE_ADAPTATION
7946 COMMENT: on|off
7947 LOC: Adaptation::Config::send_client_ip
7948 DEFAULT: off
7949 DOC_START
7950 If enabled, Squid shares HTTP client IP information with adaptation
7951 services. For ICAP, Squid adds the X-Client-IP header to ICAP requests.
7952 For eCAP, Squid sets the libecap::metaClientIp transaction option.
7953
7954 See also: adaptation_uses_indirect_client
7955 DOC_END
7956
7957 NAME: adaptation_send_username icap_send_client_username
7958 TYPE: onoff
7959 IFDEF: USE_ADAPTATION
7960 COMMENT: on|off
7961 LOC: Adaptation::Config::send_username
7962 DEFAULT: off
7963 DOC_START
7964 This sends authenticated HTTP client username (if available) to
7965 the adaptation service.
7966
7967 For ICAP, the username value is encoded based on the
7968 icap_client_username_encode option and is sent using the header
7969 specified by the icap_client_username_header option.
7970 DOC_END
7971
7972 NAME: icap_client_username_header
7973 TYPE: string
7974 IFDEF: ICAP_CLIENT
7975 LOC: Adaptation::Icap::TheConfig.client_username_header
7976 DEFAULT: X-Client-Username
7977 DOC_START
7978 ICAP request header name to use for adaptation_send_username.
7979 DOC_END
7980
7981 NAME: icap_client_username_encode
7982 TYPE: onoff
7983 IFDEF: ICAP_CLIENT
7984 COMMENT: on|off
7985 LOC: Adaptation::Icap::TheConfig.client_username_encode
7986 DEFAULT: off
7987 DOC_START
7988 Whether to base64 encode the authenticated client username.
7989 DOC_END
7990
7991 NAME: icap_service
7992 TYPE: icap_service_type
7993 IFDEF: ICAP_CLIENT
7994 LOC: Adaptation::Icap::TheConfig
7995 DEFAULT: none
7996 DOC_START
7997 Defines a single ICAP service using the following format:
7998
7999 icap_service id vectoring_point uri [option ...]
8000
8001 id: ID
8002 an opaque identifier or name which is used to direct traffic to
8003 this specific service. Must be unique among all adaptation
8004 services in squid.conf.
8005
8006 vectoring_point: reqmod_precache|reqmod_postcache|respmod_precache|respmod_postcache
8007 This specifies at which point of transaction processing the
8008 ICAP service should be activated. *_postcache vectoring points
8009 are not yet supported.
8010
8011 uri: icap://servername:port/servicepath
8012 ICAP server and service location.
8013
8014 ICAP does not allow a single service to handle both REQMOD and RESPMOD
8015 transactions. Squid does not enforce that requirement. You can specify
8016 services with the same service_url and different vectoring_points. You
8017 can even specify multiple identical services as long as their
8018 service_names differ.
8019
8020 To activate a service, use the adaptation_access directive. To group
8021 services, use adaptation_service_chain and adaptation_service_set.
8022
8023 Service options are separated by white space. ICAP services support
8024 the following name=value options:
8025
8026 bypass=on|off|1|0
8027 If set to 'on' or '1', the ICAP service is treated as
8028 optional. If the service cannot be reached or malfunctions,
8029 Squid will try to ignore any errors and process the message as
8030 if the service was not enabled. No all ICAP errors can be
8031 bypassed. If set to 0, the ICAP service is treated as
8032 essential and all ICAP errors will result in an error page
8033 returned to the HTTP client.
8034
8035 Bypass is off by default: services are treated as essential.
8036
8037 routing=on|off|1|0
8038 If set to 'on' or '1', the ICAP service is allowed to
8039 dynamically change the current message adaptation plan by
8040 returning a chain of services to be used next. The services
8041 are specified using the X-Next-Services ICAP response header
8042 value, formatted as a comma-separated list of service names.
8043 Each named service should be configured in squid.conf. Other
8044 services are ignored. An empty X-Next-Services value results
8045 in an empty plan which ends the current adaptation.
8046
8047 Dynamic adaptation plan may cross or cover multiple supported
8048 vectoring points in their natural processing order.
8049
8050 Routing is not allowed by default: the ICAP X-Next-Services
8051 response header is ignored.
8052
8053 ipv6=on|off
8054 Only has effect on split-stack systems. The default on those systems
8055 is to use IPv4-only connections. When set to 'on' this option will
8056 make Squid use IPv6-only connections to contact this ICAP service.
8057
8058 on-overload=block|bypass|wait|force
8059 If the service Max-Connections limit has been reached, do
8060 one of the following for each new ICAP transaction:
8061 * block: send an HTTP error response to the client
8062 * bypass: ignore the "over-connected" ICAP service
8063 * wait: wait (in a FIFO queue) for an ICAP connection slot
8064 * force: proceed, ignoring the Max-Connections limit
8065
8066 In SMP mode with N workers, each worker assumes the service
8067 connection limit is Max-Connections/N, even though not all
8068 workers may use a given service.
8069
8070 The default value is "bypass" if service is bypassable,
8071 otherwise it is set to "wait".
8072
8073
8074 max-conn=number
8075 Use the given number as the Max-Connections limit, regardless
8076 of the Max-Connections value given by the service, if any.
8077
8078 Older icap_service format without optional named parameters is
8079 deprecated but supported for backward compatibility.
8080
8081 Example:
8082 icap_service svcBlocker reqmod_precache icap://icap1.mydomain.net:1344/reqmod bypass=0
8083 icap_service svcLogger reqmod_precache icap://icap2.mydomain.net:1344/respmod routing=on
8084 DOC_END
8085
8086 NAME: icap_class
8087 TYPE: icap_class_type
8088 IFDEF: ICAP_CLIENT
8089 LOC: none
8090 DEFAULT: none
8091 DOC_START
8092 This deprecated option was documented to define an ICAP service
8093 chain, even though it actually defined a set of similar, redundant
8094 services, and the chains were not supported.
8095
8096 To define a set of redundant services, please use the
8097 adaptation_service_set directive. For service chains, use
8098 adaptation_service_chain.
8099 DOC_END
8100
8101 NAME: icap_access
8102 TYPE: icap_access_type
8103 IFDEF: ICAP_CLIENT
8104 LOC: none
8105 DEFAULT: none
8106 DOC_START
8107 This option is deprecated. Please use adaptation_access, which
8108 has the same ICAP functionality, but comes with better
8109 documentation, and eCAP support.
8110 DOC_END
8111
8112 COMMENT_START
8113 eCAP OPTIONS
8114 -----------------------------------------------------------------------------
8115 COMMENT_END
8116
8117 NAME: ecap_enable
8118 TYPE: onoff
8119 IFDEF: USE_ECAP
8120 COMMENT: on|off
8121 LOC: Adaptation::Ecap::TheConfig.onoff
8122 DEFAULT: off
8123 DOC_START
8124 Controls whether eCAP support is enabled.
8125 DOC_END
8126
8127 NAME: ecap_service
8128 TYPE: ecap_service_type
8129 IFDEF: USE_ECAP
8130 LOC: Adaptation::Ecap::TheConfig
8131 DEFAULT: none
8132 DOC_START
8133 Defines a single eCAP service
8134
8135 ecap_service id vectoring_point uri [option ...]
8136
8137 id: ID
8138 an opaque identifier or name which is used to direct traffic to
8139 this specific service. Must be unique among all adaptation
8140 services in squid.conf.
8141
8142 vectoring_point: reqmod_precache|reqmod_postcache|respmod_precache|respmod_postcache
8143 This specifies at which point of transaction processing the
8144 eCAP service should be activated. *_postcache vectoring points
8145 are not yet supported.
8146
8147 uri: ecap://vendor/service_name?custom&cgi=style&parameters=optional
8148 Squid uses the eCAP service URI to match this configuration
8149 line with one of the dynamically loaded services. Each loaded
8150 eCAP service must have a unique URI. Obtain the right URI from
8151 the service provider.
8152
8153 To activate a service, use the adaptation_access directive. To group
8154 services, use adaptation_service_chain and adaptation_service_set.
8155
8156 Service options are separated by white space. eCAP services support
8157 the following name=value options:
8158
8159 bypass=on|off|1|0
8160 If set to 'on' or '1', the eCAP service is treated as optional.
8161 If the service cannot be reached or malfunctions, Squid will try
8162 to ignore any errors and process the message as if the service
8163 was not enabled. No all eCAP errors can be bypassed.
8164 If set to 'off' or '0', the eCAP service is treated as essential
8165 and all eCAP errors will result in an error page returned to the
8166 HTTP client.
8167
8168 Bypass is off by default: services are treated as essential.
8169
8170 routing=on|off|1|0
8171 If set to 'on' or '1', the eCAP service is allowed to
8172 dynamically change the current message adaptation plan by
8173 returning a chain of services to be used next.
8174
8175 Dynamic adaptation plan may cross or cover multiple supported
8176 vectoring points in their natural processing order.
8177
8178 Routing is not allowed by default.
8179
8180 Older ecap_service format without optional named parameters is
8181 deprecated but supported for backward compatibility.
8182
8183
8184 Example:
8185 ecap_service s1 reqmod_precache ecap://filters.R.us/leakDetector?on_error=block bypass=off
8186 ecap_service s2 respmod_precache ecap://filters.R.us/virusFilter config=/etc/vf.cfg bypass=on
8187 DOC_END
8188
8189 NAME: loadable_modules
8190 TYPE: wordlist
8191 IFDEF: USE_LOADABLE_MODULES
8192 LOC: Config.loadable_module_names
8193 DEFAULT: none
8194 DOC_START
8195 Instructs Squid to load the specified dynamic module(s) or activate
8196 preloaded module(s).
8197 Example:
8198 loadable_modules @DEFAULT_PREFIX@/lib/MinimalAdapter.so
8199 DOC_END
8200
8201 COMMENT_START
8202 MESSAGE ADAPTATION OPTIONS
8203 -----------------------------------------------------------------------------
8204 COMMENT_END
8205
8206 NAME: adaptation_service_set
8207 TYPE: adaptation_service_set_type
8208 IFDEF: USE_ADAPTATION
8209 LOC: none
8210 DEFAULT: none
8211 DOC_START
8212
8213 Configures an ordered set of similar, redundant services. This is
8214 useful when hot standby or backup adaptation servers are available.
8215
8216 adaptation_service_set set_name service_name1 service_name2 ...
8217
8218 The named services are used in the set declaration order. The first
8219 applicable adaptation service from the set is used first. The next
8220 applicable service is tried if and only if the transaction with the
8221 previous service fails and the message waiting to be adapted is still
8222 intact.
8223
8224 When adaptation starts, broken services are ignored as if they were
8225 not a part of the set. A broken service is a down optional service.
8226
8227 The services in a set must be attached to the same vectoring point
8228 (e.g., pre-cache) and use the same adaptation method (e.g., REQMOD).
8229
8230 If all services in a set are optional then adaptation failures are
8231 bypassable. If all services in the set are essential, then a
8232 transaction failure with one service may still be retried using
8233 another service from the set, but when all services fail, the master
8234 transaction fails as well.
8235
8236 A set may contain a mix of optional and essential services, but that
8237 is likely to lead to surprising results because broken services become
8238 ignored (see above), making previously bypassable failures fatal.
8239 Technically, it is the bypassability of the last failed service that
8240 matters.
8241
8242 See also: adaptation_access adaptation_service_chain
8243
8244 Example:
8245 adaptation_service_set svcBlocker urlFilterPrimary urlFilterBackup
8246 adaptation service_set svcLogger loggerLocal loggerRemote
8247 DOC_END
8248
8249 NAME: adaptation_service_chain
8250 TYPE: adaptation_service_chain_type
8251 IFDEF: USE_ADAPTATION
8252 LOC: none
8253 DEFAULT: none
8254 DOC_START
8255
8256 Configures a list of complementary services that will be applied
8257 one-by-one, forming an adaptation chain or pipeline. This is useful
8258 when Squid must perform different adaptations on the same message.
8259
8260 adaptation_service_chain chain_name service_name1 svc_name2 ...
8261
8262 The named services are used in the chain declaration order. The first
8263 applicable adaptation service from the chain is used first. The next
8264 applicable service is applied to the successful adaptation results of
8265 the previous service in the chain.
8266
8267 When adaptation starts, broken services are ignored as if they were
8268 not a part of the chain. A broken service is a down optional service.
8269
8270 Request satisfaction terminates the adaptation chain because Squid
8271 does not currently allow declaration of RESPMOD services at the
8272 "reqmod_precache" vectoring point (see icap_service or ecap_service).
8273
8274 The services in a chain must be attached to the same vectoring point
8275 (e.g., pre-cache) and use the same adaptation method (e.g., REQMOD).
8276
8277 A chain may contain a mix of optional and essential services. If an
8278 essential adaptation fails (or the failure cannot be bypassed for
8279 other reasons), the master transaction fails. Otherwise, the failure
8280 is bypassed as if the failed adaptation service was not in the chain.
8281
8282 See also: adaptation_access adaptation_service_set
8283
8284 Example:
8285 adaptation_service_chain svcRequest requestLogger urlFilter leakDetector
8286 DOC_END
8287
8288 NAME: adaptation_access
8289 TYPE: adaptation_access_type
8290 IFDEF: USE_ADAPTATION
8291 LOC: none
8292 DEFAULT: none
8293 DEFAULT_DOC: Allow, unless rules exist in squid.conf.
8294 DOC_START
8295 Sends an HTTP transaction to an ICAP or eCAP adaptation service.
8296
8297 adaptation_access service_name allow|deny [!]aclname...
8298 adaptation_access set_name allow|deny [!]aclname...
8299
8300 At each supported vectoring point, the adaptation_access
8301 statements are processed in the order they appear in this
8302 configuration file. Statements pointing to the following services
8303 are ignored (i.e., skipped without checking their ACL):
8304
8305 - services serving different vectoring points
8306 - "broken-but-bypassable" services
8307 - "up" services configured to ignore such transactions
8308 (e.g., based on the ICAP Transfer-Ignore header).
8309
8310 When a set_name is used, all services in the set are checked
8311 using the same rules, to find the first applicable one. See
8312 adaptation_service_set for details.
8313
8314 If an access list is checked and there is a match, the
8315 processing stops: For an "allow" rule, the corresponding
8316 adaptation service is used for the transaction. For a "deny"
8317 rule, no adaptation service is activated.
8318
8319 It is currently not possible to apply more than one adaptation
8320 service at the same vectoring point to the same HTTP transaction.
8321
8322 See also: icap_service and ecap_service
8323
8324 Example:
8325 adaptation_access service_1 allow all
8326 DOC_END
8327
8328 NAME: adaptation_service_iteration_limit
8329 TYPE: int
8330 IFDEF: USE_ADAPTATION
8331 LOC: Adaptation::Config::service_iteration_limit
8332 DEFAULT: 16
8333 DOC_START
8334 Limits the number of iterations allowed when applying adaptation
8335 services to a message. If your longest adaptation set or chain
8336 may have more than 16 services, increase the limit beyond its
8337 default value of 16. If detecting infinite iteration loops sooner
8338 is critical, make the iteration limit match the actual number
8339 of services in your longest adaptation set or chain.
8340
8341 Infinite adaptation loops are most likely with routing services.
8342
8343 See also: icap_service routing=1
8344 DOC_END
8345
8346 NAME: adaptation_masterx_shared_names
8347 TYPE: string
8348 IFDEF: USE_ADAPTATION
8349 LOC: Adaptation::Config::masterx_shared_name
8350 DEFAULT: none
8351 DOC_START
8352 For each master transaction (i.e., the HTTP request and response
8353 sequence, including all related ICAP and eCAP exchanges), Squid
8354 maintains a table of metadata. The table entries are (name, value)
8355 pairs shared among eCAP and ICAP exchanges. The table is destroyed
8356 with the master transaction.
8357
8358 This option specifies the table entry names that Squid must accept
8359 from and forward to the adaptation transactions.
8360
8361 An ICAP REQMOD or RESPMOD transaction may set an entry in the
8362 shared table by returning an ICAP header field with a name
8363 specified in adaptation_masterx_shared_names.
8364
8365 An eCAP REQMOD or RESPMOD transaction may set an entry in the
8366 shared table by implementing the libecap::visitEachOption() API
8367 to provide an option with a name specified in
8368 adaptation_masterx_shared_names.
8369
8370 Squid will store and forward the set entry to subsequent adaptation
8371 transactions within the same master transaction scope.
8372
8373 Only one shared entry name is supported at this time.
8374
8375 Example:
8376 # share authentication information among ICAP services
8377 adaptation_masterx_shared_names X-Subscriber-ID
8378 DOC_END
8379
8380 NAME: adaptation_meta
8381 TYPE: note
8382 IFDEF: USE_ADAPTATION
8383 LOC: Adaptation::Config::metaHeaders
8384 DEFAULT: none
8385 DOC_START
8386 This option allows Squid administrator to add custom ICAP request
8387 headers or eCAP options to Squid ICAP requests or eCAP transactions.
8388 Use it to pass custom authentication tokens and other
8389 transaction-state related meta information to an ICAP/eCAP service.
8390
8391 The addition of a meta header is ACL-driven:
8392 adaptation_meta name value [!]aclname ...
8393
8394 Processing for a given header name stops after the first ACL list match.
8395 Thus, it is impossible to add two headers with the same name. If no ACL
8396 lists match for a given header name, no such header is added. For
8397 example:
8398
8399 # do not debug transactions except for those that need debugging
8400 adaptation_meta X-Debug 1 needs_debugging
8401
8402 # log all transactions except for those that must remain secret
8403 adaptation_meta X-Log 1 !keep_secret
8404
8405 # mark transactions from users in the "G 1" group
8406 adaptation_meta X-Authenticated-Groups "G 1" authed_as_G1
8407
8408 The "value" parameter may be a regular squid.conf token or a "double
8409 quoted string". Within the quoted string, use backslash (\) to escape
8410 any character, which is currently only useful for escaping backslashes
8411 and double quotes. For example,
8412 "this string has one backslash (\\) and two \"quotes\""
8413
8414 Used adaptation_meta header values may be logged via %note
8415 logformat code. If multiple adaptation_meta headers with the same name
8416 are used during master transaction lifetime, the header values are
8417 logged in the order they were used and duplicate values are ignored
8418 (only the first repeated value will be logged).
8419 DOC_END
8420
8421 NAME: icap_retry
8422 TYPE: acl_access
8423 IFDEF: ICAP_CLIENT
8424 LOC: Adaptation::Icap::TheConfig.repeat
8425 DEFAULT_IF_NONE: deny all
8426 DOC_START
8427 This ACL determines which retriable ICAP transactions are
8428 retried. Transactions that received a complete ICAP response
8429 and did not have to consume or produce HTTP bodies to receive
8430 that response are usually retriable.
8431
8432 icap_retry allow|deny [!]aclname ...
8433
8434 Squid automatically retries some ICAP I/O timeouts and errors
8435 due to persistent connection race conditions.
8436
8437 See also: icap_retry_limit
8438 DOC_END
8439
8440 NAME: icap_retry_limit
8441 TYPE: int
8442 IFDEF: ICAP_CLIENT
8443 LOC: Adaptation::Icap::TheConfig.repeat_limit
8444 DEFAULT: 0
8445 DEFAULT_DOC: No retries are allowed.
8446 DOC_START
8447 Limits the number of retries allowed.
8448
8449 Communication errors due to persistent connection race
8450 conditions are unavoidable, automatically retried, and do not
8451 count against this limit.
8452
8453 See also: icap_retry
8454 DOC_END
8455
8456
8457 COMMENT_START
8458 DNS OPTIONS
8459 -----------------------------------------------------------------------------
8460 COMMENT_END
8461
8462 NAME: check_hostnames
8463 TYPE: onoff
8464 DEFAULT: off
8465 LOC: Config.onoff.check_hostnames
8466 DOC_START
8467 For security and stability reasons Squid can check
8468 hostnames for Internet standard RFC compliance. If you want
8469 Squid to perform these checks turn this directive on.
8470 DOC_END
8471
8472 NAME: allow_underscore
8473 TYPE: onoff
8474 DEFAULT: on
8475 LOC: Config.onoff.allow_underscore
8476 DOC_START
8477 Underscore characters is not strictly allowed in Internet hostnames
8478 but nevertheless used by many sites. Set this to off if you want
8479 Squid to be strict about the standard.
8480 This check is performed only when check_hostnames is set to on.
8481 DOC_END
8482
8483 NAME: dns_retransmit_interval
8484 TYPE: time_msec
8485 DEFAULT: 5 seconds
8486 LOC: Config.Timeout.idns_retransmit
8487 DOC_START
8488 Initial retransmit interval for DNS queries. The interval is
8489 doubled each time all configured DNS servers have been tried.
8490 DOC_END
8491
8492 NAME: dns_timeout
8493 TYPE: time_msec
8494 DEFAULT: 30 seconds
8495 LOC: Config.Timeout.idns_query
8496 DOC_START
8497 DNS Query timeout. If no response is received to a DNS query
8498 within this time all DNS servers for the queried domain
8499 are assumed to be unavailable.
8500 DOC_END
8501
8502 NAME: dns_packet_max
8503 TYPE: b_ssize_t
8504 DEFAULT_DOC: EDNS disabled
8505 DEFAULT: none
8506 LOC: Config.dns.packet_max
8507 DOC_START
8508 Maximum number of bytes packet size to advertise via EDNS.
8509 Set to "none" to disable EDNS large packet support.
8510
8511 For legacy reasons DNS UDP replies will default to 512 bytes which
8512 is too small for many responses. EDNS provides a means for Squid to
8513 negotiate receiving larger responses back immediately without having
8514 to failover with repeat requests. Responses larger than this limit
8515 will retain the old behaviour of failover to TCP DNS.
8516
8517 Squid has no real fixed limit internally, but allowing packet sizes
8518 over 1500 bytes requires network jumbogram support and is usually not
8519 necessary.
8520
8521 WARNING: The RFC also indicates that some older resolvers will reply
8522 with failure of the whole request if the extension is added. Some
8523 resolvers have already been identified which will reply with mangled
8524 EDNS response on occasion. Usually in response to many-KB jumbogram
8525 sizes being advertised by Squid.
8526 Squid will currently treat these both as an unable-to-resolve domain
8527 even if it would be resolvable without EDNS.
8528 DOC_END
8529
8530 NAME: dns_defnames
8531 COMMENT: on|off
8532 TYPE: onoff
8533 DEFAULT: off
8534 DEFAULT_DOC: Search for single-label domain names is disabled.
8535 LOC: Config.onoff.res_defnames
8536 DOC_START
8537 Normally the RES_DEFNAMES resolver option is disabled
8538 (see res_init(3)). This prevents caches in a hierarchy
8539 from interpreting single-component hostnames locally. To allow
8540 Squid to handle single-component names, enable this option.
8541 DOC_END
8542
8543 NAME: dns_multicast_local
8544 COMMENT: on|off
8545 TYPE: onoff
8546 DEFAULT: off
8547 DEFAULT_DOC: Search for .local and .arpa names is disabled.
8548 LOC: Config.onoff.dns_mdns
8549 DOC_START
8550 When set to on, Squid sends multicast DNS lookups on the local
8551 network for domains ending in .local and .arpa.
8552 This enables local servers and devices to be contacted in an
8553 ad-hoc or zero-configuration network environment.
8554 DOC_END
8555
8556 NAME: dns_nameservers
8557 TYPE: wordlist
8558 DEFAULT: none
8559 DEFAULT_DOC: Use operating system definitions
8560 LOC: Config.dns_nameservers
8561 DOC_START
8562 Use this if you want to specify a list of DNS name servers
8563 (IP addresses) to use instead of those given in your
8564 /etc/resolv.conf file.
8565
8566 On Windows platforms, if no value is specified here or in
8567 the /etc/resolv.conf file, the list of DNS name servers are
8568 taken from the Windows registry, both static and dynamic DHCP
8569 configurations are supported.
8570
8571 Example: dns_nameservers 10.0.0.1 192.172.0.4
8572 DOC_END
8573
8574 NAME: hosts_file
8575 TYPE: string
8576 DEFAULT: @DEFAULT_HOSTS@
8577 LOC: Config.etcHostsPath
8578 DOC_START
8579 Location of the host-local IP name-address associations
8580 database. Most Operating Systems have such a file on different
8581 default locations:
8582 - Un*X & Linux: /etc/hosts
8583 - Windows NT/2000: %SystemRoot%\system32\drivers\etc\hosts
8584 (%SystemRoot% value install default is c:\winnt)
8585 - Windows XP/2003: %SystemRoot%\system32\drivers\etc\hosts
8586 (%SystemRoot% value install default is c:\windows)
8587 - Windows 9x/Me: %windir%\hosts
8588 (%windir% value is usually c:\windows)
8589 - Cygwin: /etc/hosts
8590
8591 The file contains newline-separated definitions, in the
8592 form ip_address_in_dotted_form name [name ...] names are
8593 whitespace-separated. Lines beginning with an hash (#)
8594 character are comments.
8595
8596 The file is checked at startup and upon configuration.
8597 If set to 'none', it won't be checked.
8598 If append_domain is used, that domain will be added to
8599 domain-local (i.e. not containing any dot character) host
8600 definitions.
8601 DOC_END
8602
8603 NAME: append_domain
8604 TYPE: string
8605 LOC: Config.appendDomain
8606 DEFAULT: none
8607 DEFAULT_DOC: Use operating system definitions
8608 DOC_START
8609 Appends local domain name to hostnames without any dots in
8610 them. append_domain must begin with a period.
8611
8612 Be warned there are now Internet names with no dots in
8613 them using only top-domain names, so setting this may
8614 cause some Internet sites to become unavailable.
8615
8616 Example:
8617 append_domain .yourdomain.com
8618 DOC_END
8619
8620 NAME: ignore_unknown_nameservers
8621 TYPE: onoff
8622 LOC: Config.onoff.ignore_unknown_nameservers
8623 DEFAULT: on
8624 DOC_START
8625 By default Squid checks that DNS responses are received
8626 from the same IP addresses they are sent to. If they
8627 don't match, Squid ignores the response and writes a warning
8628 message to cache.log. You can allow responses from unknown
8629 nameservers by setting this option to 'off'.
8630 DOC_END
8631
8632 NAME: dns_v4_first
8633 TYPE: onoff
8634 DEFAULT: off
8635 LOC: Config.dns.v4_first
8636 DOC_START
8637 With the IPv6 Internet being as fast or faster than IPv4 Internet
8638 for most networks Squid prefers to contact websites over IPv6.
8639
8640 This option reverses the order of preference to make Squid contact
8641 dual-stack websites over IPv4 first. Squid will still perform both
8642 IPv6 and IPv4 DNS lookups before connecting.
8643
8644 WARNING:
8645 This option will restrict the situations under which IPv6
8646 connectivity is used (and tested). Hiding network problems
8647 which would otherwise be detected and warned about.
8648 DOC_END
8649
8650 NAME: ipcache_size
8651 COMMENT: (number of entries)
8652 TYPE: int
8653 DEFAULT: 1024
8654 LOC: Config.ipcache.size
8655 DOC_START
8656 Maximum number of DNS IP cache entries.
8657 DOC_END
8658
8659 NAME: ipcache_low
8660 COMMENT: (percent)
8661 TYPE: int
8662 DEFAULT: 90
8663 LOC: Config.ipcache.low
8664 DOC_NONE
8665
8666 NAME: ipcache_high
8667 COMMENT: (percent)
8668 TYPE: int
8669 DEFAULT: 95
8670 LOC: Config.ipcache.high
8671 DOC_START
8672 The size, low-, and high-water marks for the IP cache.
8673 DOC_END
8674
8675 NAME: fqdncache_size
8676 COMMENT: (number of entries)
8677 TYPE: int
8678 DEFAULT: 1024
8679 LOC: Config.fqdncache.size
8680 DOC_START
8681 Maximum number of FQDN cache entries.
8682 DOC_END
8683
8684 COMMENT_START
8685 MISCELLANEOUS
8686 -----------------------------------------------------------------------------
8687 COMMENT_END
8688
8689 NAME: configuration_includes_quoted_values
8690 COMMENT: on|off
8691 TYPE: configuration_includes_quoted_values
8692 DEFAULT: off
8693 LOC: ConfigParser::RecognizeQuotedValues
8694 DOC_START
8695 If set, Squid will recognize each "quoted string" after a configuration
8696 directive as a single parameter. The quotes are stripped before the
8697 parameter value is interpreted or used.
8698 See "Values with spaces, quotes, and other special characters"
8699 section for more details.
8700 DOC_END
8701
8702 NAME: memory_pools
8703 COMMENT: on|off
8704 TYPE: onoff
8705 DEFAULT: on
8706 LOC: Config.onoff.mem_pools
8707 DOC_START
8708 If set, Squid will keep pools of allocated (but unused) memory
8709 available for future use. If memory is a premium on your
8710 system and you believe your malloc library outperforms Squid
8711 routines, disable this.
8712 DOC_END
8713
8714 NAME: memory_pools_limit
8715 COMMENT: (bytes)
8716 TYPE: b_int64_t
8717 DEFAULT: 5 MB
8718 LOC: Config.MemPools.limit
8719 DOC_START
8720 Used only with memory_pools on:
8721 memory_pools_limit 50 MB
8722
8723 If set to a non-zero value, Squid will keep at most the specified
8724 limit of allocated (but unused) memory in memory pools. All free()
8725 requests that exceed this limit will be handled by your malloc
8726 library. Squid does not pre-allocate any memory, just safe-keeps
8727 objects that otherwise would be free()d. Thus, it is safe to set
8728 memory_pools_limit to a reasonably high value even if your
8729 configuration will use less memory.
8730
8731 If set to none, Squid will keep all memory it can. That is, there
8732 will be no limit on the total amount of memory used for safe-keeping.
8733
8734 To disable memory allocation optimization, do not set
8735 memory_pools_limit to 0 or none. Set memory_pools to "off" instead.
8736
8737 An overhead for maintaining memory pools is not taken into account
8738 when the limit is checked. This overhead is close to four bytes per
8739 object kept. However, pools may actually _save_ memory because of
8740 reduced memory thrashing in your malloc library.
8741 DOC_END
8742
8743 NAME: forwarded_for
8744 COMMENT: on|off|transparent|truncate|delete
8745 TYPE: string
8746 DEFAULT: on
8747 LOC: opt_forwarded_for
8748 DOC_START
8749 If set to "on", Squid will append your client's IP address
8750 in the HTTP requests it forwards. By default it looks like:
8751
8752 X-Forwarded-For: 192.1.2.3
8753
8754 If set to "off", it will appear as
8755
8756 X-Forwarded-For: unknown
8757
8758 If set to "transparent", Squid will not alter the
8759 X-Forwarded-For header in any way.
8760
8761 If set to "delete", Squid will delete the entire
8762 X-Forwarded-For header.
8763
8764 If set to "truncate", Squid will remove all existing
8765 X-Forwarded-For entries, and place the client IP as the sole entry.
8766 DOC_END
8767
8768 NAME: cachemgr_passwd
8769 TYPE: cachemgrpasswd
8770 DEFAULT: none
8771 DEFAULT_DOC: No password. Actions which require password are denied.
8772 LOC: Config.passwd_list
8773 DOC_START
8774 Specify passwords for cachemgr operations.
8775
8776 Usage: cachemgr_passwd password action action ...
8777
8778 Some valid actions are (see cache manager menu for a full list):
8779 5min
8780 60min
8781 asndb
8782 authenticator
8783 cbdata
8784 client_list
8785 comm_incoming
8786 config *
8787 counters
8788 delay
8789 digest_stats
8790 dns
8791 events
8792 filedescriptors
8793 fqdncache
8794 histograms
8795 http_headers
8796 info
8797 io
8798 ipcache
8799 mem
8800 menu
8801 netdb
8802 non_peers
8803 objects
8804 offline_toggle *
8805 pconn
8806 peer_select
8807 reconfigure *
8808 redirector
8809 refresh
8810 server_list
8811 shutdown *
8812 store_digest
8813 storedir
8814 utilization
8815 via_headers
8816 vm_objects
8817
8818 * Indicates actions which will not be performed without a
8819 valid password, others can be performed if not listed here.
8820
8821 To disable an action, set the password to "disable".
8822 To allow performing an action without a password, set the
8823 password to "none".
8824
8825 Use the keyword "all" to set the same password for all actions.
8826
8827 Example:
8828 cachemgr_passwd secret shutdown
8829 cachemgr_passwd lesssssssecret info stats/objects
8830 cachemgr_passwd disable all
8831 DOC_END
8832
8833 NAME: client_db
8834 COMMENT: on|off
8835 TYPE: onoff
8836 DEFAULT: on
8837 LOC: Config.onoff.client_db
8838 DOC_START
8839 If you want to disable collecting per-client statistics,
8840 turn off client_db here.
8841 DOC_END
8842
8843 NAME: refresh_all_ims
8844 COMMENT: on|off
8845 TYPE: onoff
8846 DEFAULT: off
8847 LOC: Config.onoff.refresh_all_ims
8848 DOC_START
8849 When you enable this option, squid will always check
8850 the origin server for an update when a client sends an
8851 If-Modified-Since request. Many browsers use IMS
8852 requests when the user requests a reload, and this
8853 ensures those clients receive the latest version.
8854
8855 By default (off), squid may return a Not Modified response
8856 based on the age of the cached version.
8857 DOC_END
8858
8859 NAME: reload_into_ims
8860 IFDEF: USE_HTTP_VIOLATIONS
8861 COMMENT: on|off
8862 TYPE: onoff
8863 DEFAULT: off
8864 LOC: Config.onoff.reload_into_ims
8865 DOC_START
8866 When you enable this option, client no-cache or ``reload''
8867 requests will be changed to If-Modified-Since requests.
8868 Doing this VIOLATES the HTTP standard. Enabling this
8869 feature could make you liable for problems which it
8870 causes.
8871
8872 see also refresh_pattern for a more selective approach.
8873 DOC_END
8874
8875 NAME: connect_retries
8876 TYPE: int
8877 LOC: Config.connect_retries
8878 DEFAULT: 0
8879 DEFAULT_DOC: Do not retry failed connections.
8880 DOC_START
8881 This sets the maximum number of connection attempts made for each
8882 TCP connection. The connect_retries attempts must all still
8883 complete within the connection timeout period.
8884
8885 The default is not to re-try if the first connection attempt fails.
8886 The (not recommended) maximum is 10 tries.
8887
8888 A warning message will be generated if it is set to a too-high
8889 value and the configured value will be over-ridden.
8890
8891 Note: These re-tries are in addition to forward_max_tries
8892 which limit how many different addresses may be tried to find
8893 a useful server.
8894 DOC_END
8895
8896 NAME: retry_on_error
8897 TYPE: onoff
8898 LOC: Config.retry.onerror
8899 DEFAULT: off
8900 DOC_START
8901 If set to ON Squid will automatically retry requests when
8902 receiving an error response with status 403 (Forbidden),
8903 500 (Internal Error), 501 or 503 (Service not available).
8904 Status 502 and 504 (Gateway errors) are always retried.
8905
8906 This is mainly useful if you are in a complex cache hierarchy to
8907 work around access control errors.
8908
8909 NOTE: This retry will attempt to find another working destination.
8910 Which is different from the server which just failed.
8911 DOC_END
8912
8913 NAME: as_whois_server
8914 TYPE: string
8915 LOC: Config.as_whois_server
8916 DEFAULT: whois.ra.net
8917 DOC_START
8918 WHOIS server to query for AS numbers. NOTE: AS numbers are
8919 queried only when Squid starts up, not for every request.
8920 DOC_END
8921
8922 NAME: offline_mode
8923 TYPE: onoff
8924 LOC: Config.onoff.offline
8925 DEFAULT: off
8926 DOC_START
8927 Enable this option and Squid will never try to validate cached
8928 objects.
8929 DOC_END
8930
8931 NAME: uri_whitespace
8932 TYPE: uri_whitespace
8933 LOC: Config.uri_whitespace
8934 DEFAULT: strip
8935 DOC_START
8936 What to do with requests that have whitespace characters in the
8937 URI. Options:
8938
8939 strip: The whitespace characters are stripped out of the URL.
8940 This is the behavior recommended by RFC2396 and RFC3986
8941 for tolerant handling of generic URI.
8942 NOTE: This is one difference between generic URI and HTTP URLs.
8943
8944 deny: The request is denied. The user receives an "Invalid
8945 Request" message.
8946 This is the behaviour recommended by RFC2616 for safe
8947 handling of HTTP request URL.
8948
8949 allow: The request is allowed and the URI is not changed. The
8950 whitespace characters remain in the URI. Note the
8951 whitespace is passed to redirector processes if they
8952 are in use.
8953 Note this may be considered a violation of RFC2616
8954 request parsing where whitespace is prohibited in the
8955 URL field.
8956
8957 encode: The request is allowed and the whitespace characters are
8958 encoded according to RFC1738.
8959
8960 chop: The request is allowed and the URI is chopped at the
8961 first whitespace.
8962
8963
8964 NOTE the current Squid implementation of encode and chop violates
8965 RFC2616 by not using a 301 redirect after altering the URL.
8966 DOC_END
8967
8968 NAME: chroot
8969 TYPE: string
8970 LOC: Config.chroot_dir
8971 DEFAULT: none
8972 DOC_START
8973 Specifies a directory where Squid should do a chroot() while
8974 initializing. This also causes Squid to fully drop root
8975 privileges after initializing. This means, for example, if you
8976 use a HTTP port less than 1024 and try to reconfigure, you may
8977 get an error saying that Squid can not open the port.
8978 DOC_END
8979
8980 NAME: balance_on_multiple_ip
8981 TYPE: onoff
8982 LOC: Config.onoff.balance_on_multiple_ip
8983 DEFAULT: off
8984 DOC_START
8985 Modern IP resolvers in squid sort lookup results by preferred access.
8986 By default squid will use these IP in order and only rotates to
8987 the next listed when the most preffered fails.
8988
8989 Some load balancing servers based on round robin DNS have been
8990 found not to preserve user session state across requests
8991 to different IP addresses.
8992
8993 Enabling this directive Squid rotates IP's per request.
8994 DOC_END
8995
8996 NAME: pipeline_prefetch
8997 TYPE: pipelinePrefetch
8998 LOC: Config.pipeline_max_prefetch
8999 DEFAULT: 0
9000 DEFAULT_DOC: Do not pre-parse pipelined requests.
9001 DOC_START
9002 HTTP clients may send a pipeline of 1+N requests to Squid using a
9003 single connection, without waiting for Squid to respond to the first
9004 of those requests. This option limits the number of concurrent
9005 requests Squid will try to handle in parallel. If set to N, Squid
9006 will try to receive and process up to 1+N requests on the same
9007 connection concurrently.
9008
9009 Defaults to 0 (off) for bandwidth management and access logging
9010 reasons.
9011
9012 NOTE: pipelining requires persistent connections to clients.
9013
9014 WARNING: pipelining breaks NTLM and Negotiate/Kerberos authentication.
9015 DOC_END
9016
9017 NAME: high_response_time_warning
9018 TYPE: int
9019 COMMENT: (msec)
9020 LOC: Config.warnings.high_rptm
9021 DEFAULT: 0
9022 DEFAULT_DOC: disabled.
9023 DOC_START
9024 If the one-minute median response time exceeds this value,
9025 Squid prints a WARNING with debug level 0 to get the
9026 administrators attention. The value is in milliseconds.
9027 DOC_END
9028
9029 NAME: high_page_fault_warning
9030 TYPE: int
9031 LOC: Config.warnings.high_pf
9032 DEFAULT: 0
9033 DEFAULT_DOC: disabled.
9034 DOC_START
9035 If the one-minute average page fault rate exceeds this
9036 value, Squid prints a WARNING with debug level 0 to get
9037 the administrators attention. The value is in page faults
9038 per second.
9039 DOC_END
9040
9041 NAME: high_memory_warning
9042 TYPE: b_size_t
9043 LOC: Config.warnings.high_memory
9044 IFDEF: HAVE_MSTATS&&HAVE_GNUMALLOC_H
9045 DEFAULT: 0 KB
9046 DEFAULT_DOC: disabled.
9047 DOC_START
9048 If the memory usage (as determined by gnumalloc, if available and used)
9049 exceeds this amount, Squid prints a WARNING with debug level 0 to get
9050 the administrators attention.
9051 DOC_END
9052 # TODO: link high_memory_warning to mempools?
9053
9054 NAME: sleep_after_fork
9055 COMMENT: (microseconds)
9056 TYPE: int
9057 LOC: Config.sleep_after_fork
9058 DEFAULT: 0
9059 DOC_START
9060 When this is set to a non-zero value, the main Squid process
9061 sleeps the specified number of microseconds after a fork()
9062 system call. This sleep may help the situation where your
9063 system reports fork() failures due to lack of (virtual)
9064 memory. Note, however, if you have a lot of child
9065 processes, these sleep delays will add up and your
9066 Squid will not service requests for some amount of time
9067 until all the child processes have been started.
9068 On Windows value less then 1000 (1 milliseconds) are
9069 rounded to 1000.
9070 DOC_END
9071
9072 NAME: windows_ipaddrchangemonitor
9073 IFDEF: _SQUID_WINDOWS_
9074 COMMENT: on|off
9075 TYPE: onoff
9076 DEFAULT: on
9077 LOC: Config.onoff.WIN32_IpAddrChangeMonitor
9078 DOC_START
9079 On Windows Squid by default will monitor IP address changes and will
9080 reconfigure itself after any detected event. This is very useful for
9081 proxies connected to internet with dial-up interfaces.
9082 In some cases (a Proxy server acting as VPN gateway is one) it could be
9083 desiderable to disable this behaviour setting this to 'off'.
9084 Note: after changing this, Squid service must be restarted.
9085 DOC_END
9086
9087 NAME: eui_lookup
9088 TYPE: onoff
9089 IFDEF: USE_SQUID_EUI
9090 DEFAULT: on
9091 LOC: Eui::TheConfig.euiLookup
9092 DOC_START
9093 Whether to lookup the EUI or MAC address of a connected client.
9094 DOC_END
9095
9096 NAME: max_filedescriptors max_filedesc
9097 TYPE: int
9098 DEFAULT: 0
9099 DEFAULT_DOC: Use operating system limits set by ulimit.
9100 LOC: Config.max_filedescriptors
9101 DOC_START
9102 Reduce the maximum number of filedescriptors supported below
9103 the usual operating system defaults.
9104
9105 Remove from squid.conf to inherit the current ulimit setting.
9106
9107 Note: Changing this requires a restart of Squid. Also
9108 not all I/O types supports large values (eg on Windows).
9109 DOC_END
9110
9111 NAME: workers
9112 TYPE: int
9113 LOC: Config.workers
9114 DEFAULT: 1
9115 DEFAULT_DOC: SMP support disabled.
9116 DOC_START
9117 Number of main Squid processes or "workers" to fork and maintain.
9118 0: "no daemon" mode, like running "squid -N ..."
9119 1: "no SMP" mode, start one main Squid process daemon (default)
9120 N: start N main Squid process daemons (i.e., SMP mode)
9121
9122 In SMP mode, each worker does nearly all what a single Squid daemon
9123 does (e.g., listen on http_port and forward HTTP requests).
9124 DOC_END
9125
9126 NAME: cpu_affinity_map
9127 TYPE: CpuAffinityMap
9128 LOC: Config.cpuAffinityMap
9129 DEFAULT: none
9130 DEFAULT_DOC: Let operating system decide.
9131 DOC_START
9132 Usage: cpu_affinity_map process_numbers=P1,P2,... cores=C1,C2,...
9133
9134 Sets 1:1 mapping between Squid processes and CPU cores. For example,
9135
9136 cpu_affinity_map process_numbers=1,2,3,4 cores=1,3,5,7
9137
9138 affects processes 1 through 4 only and places them on the first
9139 four even cores, starting with core #1.
9140
9141 CPU cores are numbered starting from 1. Requires support for
9142 sched_getaffinity(2) and sched_setaffinity(2) system calls.
9143
9144 Multiple cpu_affinity_map options are merged.
9145
9146 See also: workers
9147 DOC_END
9148
9149 EOF