]> git.ipfire.org Git - thirdparty/squid.git/blame - src/cf.data.pre
SunPRO cc found a bug.. adrian changed the argument name to htime,
[thirdparty/squid.git] / src / cf.data.pre
CommitLineData
3a278cb8 1
9cef6668 2#
d6827718 3# $Id: cf.data.pre,v 1.232 2001/10/10 15:17:40 adrian Exp $
9cef6668 4#
5#
2b6662ba 6# SQUID Web Proxy Cache http://www.squid-cache.org/
9cef6668 7# ----------------------------------------------------------
8#
2b6662ba 9# Squid is the result of efforts by numerous individuals from
10# the Internet community; see the CONTRIBUTORS file for full
11# details. Many organizations have provided support for Squid's
12# development; see the SPONSORS file for full details. Squid is
13# Copyrighted (C) 2000 by the Regents of the University of
14# California; see the COPYRIGHT file for full details. Squid
15# incorporates software developed and/or copyrighted by other
16# sources; see the CREDITS file for full details.
9cef6668 17#
18# This program is free software; you can redistribute it and/or modify
19# it under the terms of the GNU General Public License as published by
20# the Free Software Foundation; either version 2 of the License, or
21# (at your option) any later version.
96d88dcb 22#
9cef6668 23# This program is distributed in the hope that it will be useful,
24# but WITHOUT ANY WARRANTY; without even the implied warranty of
25# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26# GNU General Public License for more details.
96d88dcb 27#
9cef6668 28# You should have received a copy of the GNU General Public License
29# along with this program; if not, write to the Free Software
30# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
31#
32
0f74202c 33COMMENT_START
448cd7c7 34 WELCOME TO SQUID 2
35 ------------------
3a278cb8 36
cf5cc17e 37 This is the default Squid configuration file. You may wish
2b6662ba 38 to look at the Squid home page (http://www.squid-cache.org/)
6b8e7481 39 for the FAQ and other documentation.
3a278cb8 40
debd9a31 41 The default Squid config file shows what the defaults for
42 various options happen to be. If you don't need to change the
43 default, you shouldn't uncomment the line. Doing so may cause
44 run-time problems. In some cases "none" refers to no default
efd900cb 45 setting at all, while in other cases it refers to a valid
debd9a31 46 option - the comments for that keyword indicate if this is the
47 case.
48
0f74202c 49COMMENT_END
3a278cb8 50
0f74202c 51COMMENT_START
3a278cb8 52 NETWORK OPTIONS
53 -----------------------------------------------------------------------------
0f74202c 54COMMENT_END
3a278cb8 55
934b03fc 56NAME: http_port ascii_port
7e3ce7b9 57TYPE: sockaddr_in_list
f53b06f9 58DEFAULT: none
59DEFAULT_IF_NONE: 3128
7e3ce7b9 60LOC: Config.Sockaddr.http
934b03fc 61DOC_START
7e3ce7b9 62 Usage: port
63 hostname:port
64 1.2.3.4:port
934b03fc 65
7e3ce7b9 66 The socket addresses where Squid will listen for HTTP client
67 requests. You may specify multiple socket addresses.
68 There are three forms: port alone, hostname with port, and
69 IP address with port. If you specify a hostname or IP
70 address, then Squid binds the socket to that specific
71 address. This replaces the old 'tcp_incoming_address'
72 option. Most likely, you do not need to bind to a specific
73 address, so you can use the port number alone.
74
75 The default port number is 3128.
76
efd900cb 77 If you are running Squid in accelerator mode, then you
7e3ce7b9 78 probably want to listen on port 80 also, or instead.
79
80 The -a command line option will override the *first* port
81 number listed here. That option will NOT override an IP
82 address, however.
934b03fc 83
efd900cb 84 You may specify multiple socket addresses on multiple lines.
934b03fc 85DOC_END
86
1f7c9178 87NAME: https_port
88IFDEF: USE_SSL
d193a436 89TYPE: https_port_list
1f7c9178 90DEFAULT: none
91LOC: Config.Sockaddr.https
92DOC_START
d193a436 93 Usage: [ip:]port cert=certificate.pem [key=key.pem]
1f7c9178 94
d193a436 95 The socket address where Squid will listen for HTTPS client
96 requests.
d6827718 97
1f7c9178 98 This is really only useful for situations where you are running
99 squid in accelerator mode and you want to do the SSL work at the
100 accelerator level.
1f7c9178 101
d193a436 102 If key is not specified then the given certificate is assumed to be a
103 combined certificate and key file.
1f7c9178 104
d193a436 105 You may specify multiple socket addresses on multiple lines,
106 each with their own SSL certificate.
1f7c9178 107DOC_END
108
109NAME: ssl_version
110IFDEF: USE_SSL
111TYPE: int
112DEFAULT: 1
113LOC: Config.SSL.version
114DOC_START
115 Determines the version of SSL/TLS used.
116 1: SSLv2/SSLv3
117 2: SSLv2 only
118 3: SSLv3 only
119 4: TLSv1
120DOC_END
121
934b03fc 122
123NAME: icp_port udp_port
124TYPE: ushort
125DEFAULT: 3130
126LOC: Config.Port.icp
127DOC_START
78a0e865 128 The port number where Squid sends and receives ICP queries to
934b03fc 129 and from neighbor caches. Default is 3130. To disable use
130 "0". May be overridden with -u on the command line.
934b03fc 131DOC_END
132
459f1836 133NAME: htcp_port
134IFDEF: USE_HTCP
135TYPE: ushort
136DEFAULT: 4827
137LOC: Config.Port.htcp
138DOC_START
78a0e865 139 The port number where Squid sends and receives HTCP queries to
459f1836 140 and from neighbor caches. Default is 4827. To disable use
141 "0".
142
6b8e7481 143 To enable this option, you must use --enable-htcp with the
144 configure script.
459f1836 145DOC_END
146
934b03fc 147
148NAME: mcast_groups
149TYPE: wordlist
150LOC: Config.mcast_group_list
1273d501 151DEFAULT: none
934b03fc 152DOC_START
cf5cc17e 153 This tag specifies a list of multicast groups which your server
78a0e865 154 should join to receive multicasted ICP queries.
934b03fc 155
156 NOTE! Be very careful what you put here! Be sure you
157 understand the difference between an ICP _query_ and an ICP
158 _reply_. This option is to be set only if you want to RECEIVE
159 multicast queries. Do NOT set this option to SEND multicast
a95856a0 160 ICP (use cache_peer for that). ICP replies are always sent via
934b03fc 161 unicast, so this option does not affect whether or not you will
162 receive replies from multicast group members.
163
164 You must be very careful to NOT use a multicast address which
efd900cb 165 is already in use by another group of caches.
934b03fc 166
cf5cc17e 167 If you are unsure about multicast, please read the Multicast
2b6662ba 168 chapter in the Squid FAQ (http://www.squid-cache.org/FAQ/).
cf5cc17e 169
934b03fc 170 Usage: mcast_groups 239.128.16.128 224.0.1.20
171
cf5cc17e 172 By default, Squid doesn't listen on any multicast groups.
934b03fc 173DOC_END
174
175
934b03fc 176NAME: udp_incoming_address
177TYPE: address
178LOC:Config.Addrs.udp_incoming
270b86af 179DEFAULT: 0.0.0.0
934b03fc 180DOC_NONE
181
182NAME: udp_outgoing_address
183TYPE: address
184LOC: Config.Addrs.udp_outgoing
270b86af 185DEFAULT: 255.255.255.255
934b03fc 186DOC_START
187 Usage: tcp_incoming_address 10.20.30.40
188 udp_outgoing_address fully.qualified.domain.name
189
934b03fc 190 udp_incoming_address is used for the ICP socket receiving packets
191 from other caches.
192 udp_outgoing_address is used for ICP packets sent out to other
193 caches.
194
efd900cb 195 The default behavior is to not bind to any specific address.
934b03fc 196
6b53c392 197 A *_incoming_address value of 0.0.0.0 indicates that Squid should
198 listen on all available interfaces.
199
200 If udp_outgoing_address is set to 255.255.255.255 (the default)
201 then it will use the same socket as udp_incoming_address. Only
202 change this if you want to have ICP queries sent using another
203 address than where this Squid listens for ICP queries from other
204 caches.
205
5a3f6538 206 NOTE, udp_incoming_address and udp_outgoing_address can not
6b53c392 207 have the same value since they both use port 3130.
934b03fc 208
7e3ce7b9 209 NOTE, tcp_incoming_address has been removed. You can now
210 specify IP addresses on the 'http_port' line.
934b03fc 211DOC_END
212
0f74202c 213COMMENT_START
3a278cb8 214 OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM
215 -----------------------------------------------------------------------------
0f74202c 216COMMENT_END
934b03fc 217
40a1495e 218NAME: cache_peer
219TYPE: peer
1273d501 220DEFAULT: none
0153d498 221LOC: Config.peers
934b03fc 222DOC_START
223 To specify other caches in a hierarchy, use the format:
224
6b53c392 225 cache_peer hostname type http_port icp_port
934b03fc 226
d0d41f07 227 For example,
934b03fc 228
229 # proxy icp
230 # hostname type port port options
231 # -------------------- -------- ----- ----- -----------
cf5cc17e 232 cache_peer parent.foo.net parent 3128 3130 [proxy-only]
233 cache_peer sib1.foo.net sibling 3128 3130 [proxy-only]
234 cache_peer sib2.foo.net sibling 3128 3130 [proxy-only]
934b03fc 235
236 type: either 'parent', 'sibling', or 'multicast'.
237
238 proxy_port: The port number where the cache listens for proxy
239 requests.
240
241 icp_port: Used for querying neighbor caches about
242 objects. To have a non-ICP neighbor
243 specify '7' for the ICP port and make sure the
244 neighbor machine has the UDP echo port
245 enabled in its /etc/inetd.conf file.
246
247 options: proxy-only
248 weight=n
249 ttl=n
250 no-query
251 default
252 round-robin
253 multicast-responder
b3264694 254 closest-only
46b034a4 255 no-digest
223213df 256 no-netdb-exchange
95e36d02 257 no-delay
c3b33cb7 258 login=user:password | PASS | *:password
3f62decd 259 connect-timeout=nn
7e3ce7b9 260 digest-url=url
987de783 261 allow-miss
e79a6f05 262 max-conn
934b03fc 263
264 use 'proxy-only' to specify that objects fetched
265 from this cache should not be saved locally.
266
267 use 'weight=n' to specify a weighted parent.
268 The weight must be an integer. The default weight
269 is 1, larger weights are favored more.
270
271 use 'ttl=n' to specify a IP multicast TTL to use
78a0e865 272 when sending an ICP queries to this address.
934b03fc 273 Only useful when sending to a multicast group.
274 Because we don't accept ICP replies from random
275 hosts, you must configure other group members as
276 peers with the 'multicast-responder' option below.
277
278 use 'no-query' to NOT send ICP queries to this
279 neighbor.
280
281 use 'default' if this is a parent cache which can
282 be used as a "last-resort." You should probably
283 only use 'default' in situations where you cannot
284 use ICP with your parent cache(s).
285
286 use 'round-robin' to define a set of parents which
287 should be used in a round-robin fashion in the
288 absence of any ICP queries.
289
290 'multicast-responder' indicates that the named peer
291 is a member of a multicast group. ICP queries will
292 not be sent directly to the peer, but ICP replies
293 will be accepted from it.
294
b3264694 295 'closest-only' indicates that, for ICP_OP_MISS
296 replies, we'll only forward CLOSEST_PARENT_MISSes
297 and never FIRST_PARENT_MISSes.
298
46b034a4 299 use 'no-digest' to NOT request cache digests from
300 this neighbor.
301
223213df 302 'no-netdb-exchange' disables requesting ICMP
303 RTT database (NetDB) from the neighbor.
304
95e36d02 305 use 'no-delay' to prevent access to this neighbor
306 from influencing the delay pools.
307
c68e9c6b 308 use 'login=user:password' if this is a personal/workgroup
309 proxy and your parent requires proxy authentication.
4472c779 310 Note: The string can include URL escapes (i.e. %20 for
311 spaces). This also means that % must be written as %%.
c68e9c6b 312
94439e4e 313 use 'login=PASS' if users must authenticate against
314 the upstream proxy. Note: To combine this with
315 proxy_auth both proxies must share the same user
316 database as HTTP only allows for one proxy login.
317 Also be warned that this will expose your users proxy
318 password to the parent. USE WITH CAUTION
319
c3b33cb7 320 use 'login=*:password' to pass the username to the
321 upstream cache, but with a fixed password. This is meant
322 to be used when the peer is in another administrative
323 domain, but it is still needed to identify each user.
324 The star can optionally be followed by some extra
325 information which is added to the username. This can
326 be used to identify this proxy to the peer, similar to
327 the login=username:password option above.
328
3f62decd 329 use 'connect-timeout=nn' to specify a peer
330 specific connect timeout (also see the
331 peer_connect_timeout directive)
332
7e3ce7b9 333 use 'digest-url=url' to tell Squid to fetch the cache
334 digest (if digests are enabled) for this host from
335 the specified URL rather than the Squid default
336 location.
3f62decd 337
987de783 338 use 'allow-miss' to disable Squid's use of only-if-cached
339 when forwarding requests to siblings. This is primarily
340 useful when icp_hit_stale is used by the sibling. To
341 extensive use of this option may result in forwarding
342 loops, and you should avoid having two-way peerings
343 with this option. (for example to deny peer usage on
344 requests from peer by denying cache_peer_access if the
345 source is a peer)
346
e79a6f05 347 use 'max-conn' to limit the amount of connections Squid
348 may open to this peer.
349
934b03fc 350 NOTE: non-ICP neighbors must be specified as 'parent'.
934b03fc 351DOC_END
352
af7d912e 353NAME: cache_peer_domain cache_host_domain
934b03fc 354TYPE: hostdomain
f1dc9b30 355DEFAULT: none
356LOC: none
934b03fc 357DOC_START
cf5cc17e 358 Use to limit the domains for which a neighbor cache will be
359 queried. Usage:
934b03fc 360
af7d912e 361 cache_peer_domain cache-host domain [domain ...]
362 cache_peer_domain cache-host !domain
934b03fc 363
364 For example, specifying
365
af7d912e 366 cache_peer_domain parent.foo.net .edu
934b03fc 367
368 has the effect such that UDP query packets are sent to
369 'bigserver' only when the requested object exists on a
370 server in the .edu domain. Prefixing the domainname
371 with '!' means that the cache will be queried for objects
372 NOT in that domain.
373
374 NOTE: * Any number of domains may be given for a cache-host,
375 either on the same or separate lines.
376 * When multiple domains are given for a particular
377 cache-host, the first matched domain is applied.
378 * Cache hosts with no domain restrictions are queried
379 for all requests.
380 * There are no defaults.
3794b2b6 381 * There is also a 'cache_peer_access' tag in the ACL
934b03fc 382 section.
383DOC_END
384
385
386NAME: neighbor_type_domain
387TYPE: hostdomaintype
f1dc9b30 388DEFAULT: none
389LOC: none
934b03fc 390DOC_START
391 usage: neighbor_type_domain parent|sibling domain domain ...
392
393 Modifying the neighbor type for specific domains is now
394 possible. You can treat some domains differently than the the
a95856a0 395 default neighbor type specified on the 'cache_peer' line.
934b03fc 396 Normally it should only be necessary to list domains which
397 should be treated differently because the default neighbor type
398 applies for hostnames which do not match domains listed here.
399
400EXAMPLE:
a95856a0 401 cache_peer parent cache.foo.org 3128 3130
934b03fc 402 neighbor_type_domain cache.foo.org sibling .com .net
403 neighbor_type_domain cache.foo.org sibling .au .de
404DOC_END
405
465dc415 406NAME: icp_query_timeout
407COMMENT: (msec)
408DEFAULT: 0
409TYPE: int
410LOC: Config.Timeout.icp_query
934b03fc 411DOC_START
465dc415 412 Normally Squid will automatically determine an optimal ICP
413 query timeout value based on the round-trip-time of recent ICP
414 queries. If you want to override the value determined by
415 Squid, set this 'icp_query_timeout' to a non-zero value. This
416 value is specified in MILLISECONDS, so, to use a 2-second
417 timeout (the old default), you would write:
934b03fc 418
465dc415 419 icp_query_timeout 2000
465dc415 420DOC_END
421
28993292 422NAME: maximum_icp_query_timeout
423COMMENT: (msec)
424DEFAULT: 2000
425TYPE: int
426LOC: Config.Timeout.icp_query_max
427DOC_START
efd900cb 428 Normally the ICP query timeout is determined dynamically. But
429 sometimes it can lead to very large values (say 5 seconds).
430 Use this option to put an upper limit on the dynamic timeout
431 value. Do NOT use this option to always use a fixed (instead
e0d5ba83 432 of a dynamic) timeout value. To set a fixed timeout see the
433 'icp_query_timeout' directive.
28993292 434DOC_END
435
465dc415 436NAME: mcast_icp_query_timeout
437COMMENT: (msec)
438DEFAULT: 2000
439TYPE: int
440LOC: Config.Timeout.mcast_icp_query
441DOC_START
442 For Multicast peers, Squid regularly sends out ICP "probes" to
443 count how many other peers are listening on the given multicast
444 address. This value specifies how long Squid should wait to
445 count all the replies. The default is 2000 msec, or 2
446 seconds.
934b03fc 447DOC_END
448
dc835977 449NAME: dead_peer_timeout
450COMMENT: (seconds)
451DEFAULT: 10 seconds
452TYPE: time_t
453LOC: Config.Timeout.deadPeer
454DOC_START
455 This controls how long Squid waits to declare a peer cache
456 as "dead." If there are no ICP replies received in this
457 amount of time, Squid will declare the peer dead and not
458 expect to receive any further ICP replies. However, it
459 continues to send ICP queries, and will mark the peer as
460 alive upon receipt of the first subsequent ICP reply.
461
a8ad9a81 462 This timeout also affects when Squid expects to receive ICP
463 replies from peers. If more than 'dead_peer' seconds have
464 passed since the last ICP reply was received, Squid will not
465 expect to receive an ICP reply on the next query. Thus, if
466 your time between requests is greater than this timeout, you
467 will see a lot of requests sent DIRECT to origin servers
468 instead of to your parents.
dc835977 469DOC_END
470
934b03fc 471
472NAME: hierarchy_stoplist
473TYPE: wordlist
f8d9f54a 474DEFAULT: none
934b03fc 475LOC: Config.hierarchy_stoplist
476DOC_START
477 A list of words which, if found in a URL, cause the object to
478 be handled directly by this cache. In other words, use this
479 to not query neighbor caches for certain objects. You may
480 list this option multiple times.
6b53c392 481NOCOMMENT_START
482#We recommend you to use at least the following line.
934b03fc 483hierarchy_stoplist cgi-bin ?
6b53c392 484NOCOMMENT_END
934b03fc 485DOC_END
486
487
bd05e3e3 488NAME: no_cache
489TYPE: acl_access
490DEFAULT: none
491LOC: Config.accessList.noCache
934b03fc 492DOC_START
bd05e3e3 493 A list of ACL elements which, if matched, cause the reply to
934b03fc 494 immediately removed from the cache. In other words, use this
bd05e3e3 495 to force certain objects to never be cached.
934b03fc 496
b269cf4e 497 You must use the word 'DENY' to indicate the ACL names which should
498 NOT be cached.
0fdafae7 499
6b53c392 500NOCOMMENT_START
501#We recommend you to use the following two lines.
bd05e3e3 502acl QUERY urlpath_regex cgi-bin \?
b269cf4e 503no_cache deny QUERY
6b53c392 504NOCOMMENT_END
934b03fc 505DOC_END
506
934b03fc 507
0f74202c 508COMMENT_START
3a278cb8 509 OPTIONS WHICH AFFECT THE CACHE SIZE
510 -----------------------------------------------------------------------------
0f74202c 511COMMENT_END
934b03fc 512
513NAME: cache_mem
9906e724 514COMMENT: (bytes)
1b635117 515TYPE: b_size_t
9906e724 516DEFAULT: 8 MB
43a70238 517LOC: Config.memMaxSize
934b03fc 518DOC_START
7b2496ca 519 NOTE: THIS PARAMETER DOES NOT SPECIFY THE MAXIMUM PROCESS
520 SIZE. IT PLACES A LIMIT ON ONE ASPECT OF SQUID'S MEMORY
521 USAGE. SQUID USES MEMORY FOR OTHER THINGS AS WELL.
522 YOUR PROCESS WILL PROBABLY BECOME TWICE OR THREE TIMES
96d88dcb 523 BIGGER THAN THE VALUE YOU PUT HERE
7b2496ca 524
525 'cache_mem' specifies the ideal amount of memory to be used
526 for:
527 * In-Transit objects
528 * Hot Objects
529 * Negative-Cached objects
530
531 Data for these objects are stored in 4 KB blocks. This
532 parameter specifies the ideal upper limit on the total size of
533 4 KB blocks allocated. In-Transit objects take the highest
534 priority.
934b03fc 535
536 In-transit objects have priority over the others. When
537 additional space is needed for incoming data, negative-cached
538 and hot objects will be released. In other words, the
539 negative-cached and hot objects will fill up any unused space
540 not needed for in-transit objects.
541
7b2496ca 542 If circumstances require, this limit will be exceeded.
543 Specifically, if your incoming request rate requires more than
544 'cache_mem' of memory to hold in-transit objects, Squid will
545 exceed this limit to satisfy the new requests. When the load
546 decreases, blocks will be freed until the high-water mark is
547 reached. Thereafter, blocks will be used to store hot
548 objects.
934b03fc 549DOC_END
550
551
552NAME: cache_swap_low
553COMMENT: (percent, 0-100)
554TYPE: int
555DEFAULT: 90
556LOC: Config.Swap.lowWaterMark
557DOC_NONE
558
559NAME: cache_swap_high
560COMMENT: (percent, 0-100)
561TYPE: int
562DEFAULT: 95
563LOC: Config.Swap.highWaterMark
564DOC_START
2b906e48 565
566 The low- and high-water marks for cache object replacement.
567 Replacement begins when the swap (disk) usage is above the
568 low-water mark and attempts to maintain utilization near the
569 low-water mark. As swap utilization gets close to high-water
570 mark object eviction becomes more aggressive. If utilization is
571 close to the low-water mark less replacement is done each time.
572
573 Defaults are 90% and 95%. If you have a large cache, 5% could be
574 hundreds of MB. If this is the case you may wish to set these
575 numbers closer together.
934b03fc 576DOC_END
577
934b03fc 578NAME: maximum_object_size
9e975e4e 579COMMENT: (bytes)
1b635117 580TYPE: b_size_t
9906e724 581DEFAULT: 4096 KB
934b03fc 582LOC: Config.Store.maxObjectSize
583DOC_START
584 Objects larger than this size will NOT be saved on disk. The
cf5cc17e 585 value is specified in kilobytes, and the default is 4MB. If
586 you wish to get a high BYTES hit ratio, you should probably
587 increase this (one 32 MB object hit counts for 3200 10KB
588 hits). If you wish to increase speed more than your want to
589 save bandwidth you should leave this low.
934b03fc 590
2b906e48 591 NOTE: if using the LFUDA replacement policy you should increase
592 this value to maximize the byte hit rate improvement of LFUDA!
593 See replacement_policy below for a discussion of this policy.
934b03fc 594DOC_END
595
d20b1cd0 596NAME: minimum_object_size
597COMMENT: (bytes)
598TYPE: b_size_t
599DEFAULT: 0 KB
600LOC: Config.Store.minObjectSize
601DOC_START
602 Objects smaller than this size will NOT be saved on disk. The
603 value is specified in kilobytes, and the default is 0 KB, which
604 means there is no minimum.
605DOC_END
934b03fc 606
16689110 607NAME: maximum_object_size_in_memory
608COMMENT: (bytes)
609TYPE: b_size_t
610DEFAULT: 8 KB
611LOC: Config.Store.maxInMemObjSize
612DOC_START
613 Objects greater than this size will not be attempted to kept in
614 the memory cache. This should be set high enough to keep objects
615 accessed frequently in memory to improve performance whilst low
616 enough to keep larger objects from hoarding cache_mem .
617DOC_END
618
934b03fc 619NAME: ipcache_size
620COMMENT: (number of entries)
621TYPE: int
622DEFAULT: 1024
623LOC: Config.ipcache.size
624DOC_NONE
625
626NAME: ipcache_low
627COMMENT: (percent)
628TYPE: int
629DEFAULT: 90
630LOC: Config.ipcache.low
631DOC_NONE
632
633NAME: ipcache_high
634COMMENT: (percent)
635TYPE: int
636DEFAULT: 95
637LOC: Config.ipcache.high
638DOC_START
639 The size, low-, and high-water marks for the IP cache.
934b03fc 640DOC_END
641
e55650e3 642NAME: fqdncache_size
643COMMENT: (number of entries)
644TYPE: int
645DEFAULT: 1024
646LOC: Config.fqdncache.size
647DOC_START
648 Maximum number of FQDN cache entries.
e55650e3 649DOC_END
650
6a566b9c 651NAME: cache_replacement_policy
652TYPE: removalpolicy
653LOC: Config.replPolicy
654DEFAULT: lru
655DOC_START
656 The cache replacement policy parameter determines which
657 objects are evicted (replaced) when disk space is needed.
658
659 lru : Squid's original list based LRU policy
660 heap GDSF : Greedy-Dual Size Frequency
661 heap LFUDA: Least Frequently Used with Dynamic Aging
662 heap LRU : LRU policy implemented using a heap
663
664 Applies to any cache_dir lines listed below this.
665
666 The LRU policies keeps recently referenced objects.
667
668 The heap GDSF policy optimizes object hit rate by keeping smaller
669 popular objects in cache so it has a better chance of getting a
670 hit. It achieves a lower byte hit rate than LFUDA though since
671 it evicts larger (possibly popular) objects.
672
673 The heap LFUDA policy keeps popular objects in cache regardless of
674 their size and thus optimizes byte hit rate at the expense of
675 hit rate since one large, popular object will prevent many
676 smaller, slightly less popular objects from being cached.
677
678 Both policies utilize a dynamic aging mechanism that prevents
679 cache pollution that can otherwise occur with frequency-based
680 replacement policies.
681
682 NOTE: if using the LFUDA replacement policy you should increase
683 the value of maximum_object_size above its default of 4096 KB to
96d88dcb 684 to maximize the potential byte hit rate improvement of LFUDA.
6a566b9c 685
686 For more information about the GDSF and LFUDA cache replacement
687 policies see http://www.hpl.hp.com/techreports/1999/HPL-1999-69.html
688 and http://fog.hpl.external.hp.com/techreports/98/HPL-98-173.html.
689DOC_END
690
691NAME: memory_replacement_policy
692TYPE: removalpolicy
693LOC: Config.memPolicy
694DEFAULT: lru
695DOC_START
696 The memory replacement policy parameter determines which
697 objects are purged from memory when memory space is needed.
698
699 See cache_replacement_policy for details.
700DOC_END
701
702
0f74202c 703COMMENT_START
3a278cb8 704 LOGFILE PATHNAMES AND CACHE DIRECTORIES
705 -----------------------------------------------------------------------------
0f74202c 706COMMENT_END
934b03fc 707
708NAME: cache_dir
709TYPE: cachedir
f1dc9b30 710DEFAULT: none
8e8d4f30 711DEFAULT_IF_NONE: ufs @DEFAULT_SWAP_DIR@ 100 16 256
f1dc9b30 712LOC: Config.cacheSwap
934b03fc 713DOC_START
cf5cc17e 714 Usage:
715
8e8d4f30 716 cache_dir Type Directory-Name Fs-specific-data [options]
934b03fc 717
1f7c9178 718 cache_dir diskd Maxobjsize Directory-Name MB L1 L2 Q1 Q2
719
934b03fc 720 You can specify multiple cache_dir lines to spread the
721 cache among different disk partitions.
722
efd900cb 723 Type specifies the kind of storage system to use. Most
724 everyone will want to use "ufs" as the type. If you are using
725 Async I/O (--enable async-io) on Linux or Solaris, then you may
4813a665 726 want to try "aufs" as the type. Async IO support may be
efd900cb 727 buggy, however, so beware.
9bc73deb 728
cf5cc17e 729 'Directory' is a top-level directory where cache swap
730 files will be stored. If you want to use an entire disk
731 for caching, then this can be the mount-point directory.
732 The directory must exist and be writable by the Squid
733 process. Squid will NOT create this directory for you.
734
8e8d4f30 735 The ufs store type:
736
737 "ufs" is the old well-known Squid storage format that has always
738 been there.
739
740 cache_dir ufs Directory-Name Mbytes L1 L2 [options]
cf5cc17e 741
742 'Mbytes' is the amount of disk space (MB) to use under this
743 directory. The default is 100 MB. Change this to suit your
744 configuration.
745
746 'Level-1' is the number of first-level subdirectories which
747 will be created under the 'Directory'. The default is 16.
748
749 'Level-2' is the number of second-level subdirectories which
750 will be created under each first-level directory. The default
751 is 256.
d1595b77 752
8e8d4f30 753 The aufs store type:
754
755 "aufs" uses the same storage format as "ufs", utilizing
756 POSIX-threads to avoid blocking the main Squid process on
757 disk-I/O. This was formerly known in Squid as async-io.
758
759 cache_dir aufs Directory-Name Mbytes L1 L2 [options]
760
761 see argument descriptions under ufs above
762
763 The diskd store type:
764
765 "diskd" uses the same storage format as "ufs", utilizing a
766 separate process to avoid blocking the main Squid process on
767 disk-I/O.
768
769 cache_dir diskd Directory-Name Mbytes L1 L2 [options] [Q1=n] [Q2=n]
770
771 see argument descriptions under ufs above
772
773 Q1 specifies the number of unacknowledged I/O requests when Squid
774 stops opening new files. If this many messages are in the queues,
775 Squid won't open new files. Default is 64
776
d1595b77 777 Q2 specifies the number of unacknowledged messages when Squid
778 starts blocking. If this many messages are in the queues,
8e8d4f30 779 Squid blocks until it recevies some replies. Default is 72
780
781 Common options:
782
783 read-only, this cache_dir is read only.
784
785 max-size=n, refers to the max object size this storedir supports.
786 It is used to initially choose the storedir to dump the object.
787 Note: To make optimal use of the max-size limits you should order
788 the cache_dir lines with the smallest max-size value first and the
789 ones with no max-size specification last.
934b03fc 790DOC_END
791
792
793NAME: cache_access_log
794TYPE: string
d0b98f84 795DEFAULT: @DEFAULT_ACCESS_LOG@
934b03fc 796LOC: Config.Log.access
797DOC_START
798 Logs the client request activity. Contains an entry for
0eb83825 799 every HTTP and ICP queries received. To disable, enter "none".
934b03fc 800DOC_END
801
802
803NAME: cache_log
804TYPE: string
0153d498 805DEFAULT: @DEFAULT_CACHE_LOG@
934b03fc 806LOC: Config.Log.log
807DOC_START
cf5cc17e 808 Cache logging file. This is where general information about
efd900cb 809 your cache's behavior goes. You can increase the amount of data
cf5cc17e 810 logged to this file with the "debug_options" tag below.
934b03fc 811DOC_END
812
813
814NAME: cache_store_log
815TYPE: string
0153d498 816DEFAULT: @DEFAULT_STORE_LOG@
934b03fc 817LOC: Config.Log.store
818DOC_START
819 Logs the activities of the storage manager. Shows which
820 objects are ejected from the cache, and which objects are
cf5cc17e 821 saved and for how long. To disable, enter "none". There are
efd900cb 822 not really utilities to analyze this data, so you can safely
cf5cc17e 823 disable it.
934b03fc 824DOC_END
825
826
827NAME: cache_swap_log
828TYPE: string
829LOC: Config.Log.swap
1273d501 830DEFAULT: none
934b03fc 831DOC_START
d0d3ec94 832 Location for the cache "swap.log." This log file holds the
934b03fc 833 metadata of objects saved on disk. It is used to rebuild the
a80e50c7 834 cache during startup. Normally this file resides in each
934b03fc 835 'cache_dir' directory, but you may specify an alternate
836 pathname here. Note you must give a full filename, not just
cf5cc17e 837 a directory. Since this is the index for the whole object
838 list you CANNOT periodically rotate it!
934b03fc 839
a80e50c7 840 If %s can be used in the file name then it will be replaced with a
841 a representation of the cache_dir name where each / is replaced
842 with '.'. This is needed to allow adding/removing cache_dir
843 lines when cache_swap_log is being used.
96d88dcb 844
a80e50c7 845 If have more than one 'cache_dir', and %s is not used in the name
846 then these swap logs will have names such as:
710df4ca 847
848 cache_swap_log.00
849 cache_swap_log.01
850 cache_swap_log.02
851
852 The numbered extension (which is added automatically)
853 corresponds to the order of the 'cache_dir' lines in this
854 configuration file. If you change the order of the 'cache_dir'
855 lines in this file, then these log files will NOT correspond to
856 the correct 'cache_dir' entry (unless you manually rename
857 them). We recommend that you do NOT use this option. It is
858 better to keep these log files in each 'cache_dir' directory.
934b03fc 859DOC_END
860
861
862NAME: emulate_httpd_log
863COMMENT: on|off
864TYPE: onoff
f1dc9b30 865DEFAULT: off
17a0a4ee 866LOC: Config.onoff.common_log
934b03fc 867DOC_START
868 The Cache can emulate the log file format which many 'httpd'
869 programs use. To disable/enable this emulation, set
870 emulate_httpd_log to 'off' or 'on'. The default
cf5cc17e 871 is to use the native log format since it includes useful
efd900cb 872 information that Squid-specific log analyzers use.
934b03fc 873DOC_END
874
890b0fa8 875NAME: log_ip_on_direct
876COMMENT: on|off
877TYPE: onoff
878DEFAULT: on
879LOC: Config.onoff.log_ip_on_direct
880DOC_START
881 Log the destination IP address in the hierarchy log tag when going
882 direct. Earlier Squid versions logged the hostname here. If you
883 prefer the old way set this to off.
890b0fa8 884DOC_END
934b03fc 885
886NAME: mime_table
f0b19334 887TYPE: string
0153d498 888DEFAULT: @DEFAULT_MIME_TABLE@
934b03fc 889LOC: Config.mimeTablePathname
890DOC_START
cf5cc17e 891 Pathname to Squid's MIME table. You shouldn't need to change
892 this, but the default file contains examples and formatting
893 information if you do.
934b03fc 894DOC_END
895
896
897NAME: log_mime_hdrs
898COMMENT: on|off
899TYPE: onoff
17a0a4ee 900LOC: Config.onoff.log_mime_hdrs
f1dc9b30 901DEFAULT: off
934b03fc 902DOC_START
cf5cc17e 903 The Cache can record both the request and the response MIME
904 headers for each HTTP transaction. The headers are encoded
905 safely and will appear as two bracketed fields at the end of
906 the access log (for either the native or httpd-emulated log
907 formats). To enable this logging set log_mime_hdrs to 'on'.
934b03fc 908DOC_END
909
910
911NAME: useragent_log
912TYPE: string
913LOC: Config.Log.useragent
f1dc9b30 914DEFAULT: none
6b53c392 915IFDEF: USE_USERAGENT_LOG
934b03fc 916DOC_START
6b53c392 917 Squid will write the User-Agent field from HTTP requests
918 to the filename specified here. By default useragent_log
919 is disabled.
934b03fc 920DOC_END
921
922
fd2c5549 923NAME: referer_log
924TYPE: string
925LOC: Config.Log.referer
926DEFAULT: none
b81f1cf3 927IFDEF: USE_REFERER_LOG
fd2c5549 928DOC_START
b81f1cf3 929 Squid will write the Referer field from HTTP requests to the
930 filename specified here. By default referer_log is disabled.
fd2c5549 931DOC_END
932
933
934b03fc 934NAME: pid_filename
935TYPE: string
0153d498 936DEFAULT: @DEFAULT_PID_FILE@
934b03fc 937LOC: Config.pidFilename
938DOC_START
d0d41f07 939 A filename to write the process-id to. To disable, enter "none".
934b03fc 940DOC_END
941
942
943NAME: debug_options
f1dc9b30 944TYPE: eol
934b03fc 945DEFAULT: ALL,1
946LOC: Config.debugOptions
947DOC_START
948 Logging options are set as section,level where each source file
949 is assigned a unique section. Lower levels result in less
950 output, Full debugging (level 9) can result in a very large
951 log file, so be careful. The magic word "ALL" sets debugging
952 levels for all sections. We recommend normally running with
953 "ALL,1".
934b03fc 954DOC_END
955
956
934b03fc 957NAME: log_fqdn
958COMMENT: on|off
959TYPE: onoff
f1dc9b30 960DEFAULT: off
17a0a4ee 961LOC: Config.onoff.log_fqdn
934b03fc 962DOC_START
963 Turn this on if you wish to log fully qualified domain names
cf5cc17e 964 in the access.log. To do this Squid does a DNS lookup of all
965 IP's connecting to it. This can (in some situations) increase
966 latency, which makes your cache seem slower for interactive
96d88dcb 967 browsing.
934b03fc 968DOC_END
969
970
971NAME: client_netmask
972TYPE: address
973LOC: Config.Addrs.client_netmask
f1dc9b30 974DEFAULT: 255.255.255.255
934b03fc 975DOC_START
976 A netmask for client addresses in logfiles and cachemgr output.
977 Change this to protect the privacy of your cache clients.
cf5cc17e 978 A netmask of 255.255.255.0 will log all IP's in that range with
979 the last digit set to '0'.
934b03fc 980DOC_END
981
982
0f74202c 983COMMENT_START
3a278cb8 984 OPTIONS FOR EXTERNAL SUPPORT PROGRAMS
985 -----------------------------------------------------------------------------
0f74202c 986COMMENT_END
934b03fc 987
934b03fc 988NAME: ftp_user
989TYPE: string
cf5cc17e 990DEFAULT: Squid@
934b03fc 991LOC: Config.Ftp.anon_user
992DOC_START
993 If you want the anonymous login password to be more informative
994 (and enable the use of picky ftp servers), set this to something
efd900cb 995 reasonable for your domain, like wwwuser@somewhere.net
934b03fc 996
997 The reason why this is domainless by default is that the
998 request can be made on the behalf of a user in any domain,
999 depending on how the cache is used.
1000 Some ftp server also validate that the email address is valid
1001 (for example perl.com).
934b03fc 1002DOC_END
1003
365cb147 1004NAME: ftp_list_width
1b635117 1005TYPE: size_t
365cb147 1006DEFAULT: 32
1007LOC: Config.Ftp.list_width
1008DOC_START
cf5cc17e 1009 Sets the width of ftp listings. This should be set to fit in
1010 the width of a standard browser. Setting this too small
1011 can cut off long filenames when browsing ftp sites.
365cb147 1012DOC_END
1013
d20b1cd0 1014NAME: ftp_passive
1015TYPE: onoff
1016DEFAULT: on
1017LOC: Config.Ftp.passive
1018DOC_START
1019 If your firewall does not allow Squid to use passive
1020 connections, then turn off this option.
1021DOC_END
1022
934b03fc 1023NAME: cache_dns_program
f0b19334 1024TYPE: string
589c90de 1025IFDEF: USE_DNSSERVERS
0153d498 1026DEFAULT: @DEFAULT_DNSSERVER@
934b03fc 1027LOC: Config.Program.dnsserver
1028DOC_START
1029 Specify the location of the executable for dnslookup process.
934b03fc 1030DOC_END
1031
934b03fc 1032NAME: dns_children
1033TYPE: int
6b53c392 1034IFDEF: USE_DNSSERVERS
934b03fc 1035DEFAULT: 5
1036LOC: Config.dnsChildren
1037DOC_START
1038 The number of processes spawn to service DNS name lookups.
1039 For heavily loaded caches on large servers, you should
1040 probably increase this value to at least 10. The maximum
1041 is 32. The default is 5.
1042
efd900cb 1043 You must have at least one dnsserver process.
934b03fc 1044DOC_END
1045
4fe0e1d0 1046NAME: dns_retransmit_interval
1047TYPE: time_t
1048DEFAULT: 5 seconds
1049LOC: Config.Timeout.idns_retransmit
1050IFDEF: !USE_DNSSERVERS
1051DOC_START
1052 Initial retransmit interval for DNS queries. The interval is
1053 doubled each time all configured DNS servers have been tried.
1054
1055DOC_END
1056
1057NAME: dns_timeout
1058TYPE: time_t
1059DEFAULT: 5 minutes
1060LOC: Config.Timeout.idns_query
1061IFDEF: !USE_DNSSERVERS
1062DOC_START
1063 DNS Query timeout. If no response is received to a DNS query
1064 within this time then all DNS servers for the queried domain
1065 is assumed to be unavailable.
1066DOC_END
934b03fc 1067
1068NAME: dns_defnames
1069COMMENT: on|off
589c90de 1070IFDEF: USE_DNSSERVERS
934b03fc 1071TYPE: onoff
f1dc9b30 1072DEFAULT: off
17a0a4ee 1073LOC: Config.onoff.res_defnames
6b53c392 1074IFDEF: USE_DNSSERVERS
934b03fc 1075DOC_START
1076 Normally the 'dnsserver' disables the RES_DEFNAMES resolver
1077 option (see res_init(3)). This prevents caches in a hierarchy
1078 from interpreting single-component hostnames locally. To allow
1079 dnsserver to handle single-component names, enable this
1080 option.
934b03fc 1081DOC_END
1082
09c483ec 1083NAME: dns_nameservers
1084TYPE: wordlist
1085DEFAULT: none
1086LOC: Config.dns_nameservers
1087DOC_START
1088 Use this if you want to specify a list of DNS name servers
1089 (IP addresses) to use instead of those given in your
1090 /etc/resolv.conf file.
1091
1092 Example: dns_nameservers 10.0.0.1 192.172.0.4
09c483ec 1093DOC_END
1094
0e70aa1e 1095NAME: hosts_file
1096TYPE: string
1097DEFAULT: /etc/hosts
1098LOC: Config.etcHostsPath
1099DOC_START
1100 Location of the host-local IP name-address associations
1101 database. Most Operating Systems have such a file: under
1102 Un*X it's by default in /etc/hosts MS-Windows NT/2000 places
1103 that in %SystemRoot%(by default
1104 c:\winnt)\system32\drivers\etc\hosts, while Windows 9x/ME
1105 places that in %windir%(usually c:\windows)\hosts
1106
1107 The file contains newline-separated definitions, in the
1108 form ip_address_in_dotted_form name [name ...] names are
1109 whitespace-separated. lines beginnng with an hash (#)
1110 character are comments.
1111
1112 The file is checked at startup and upon configuration. If
1113 set to 'none', it won't be checked. If append_domain is
1114 used, that domain will be added to domain-local (i.e. not
1115 containing any dot character) host definitions.
1116DOC_END
934b03fc 1117
be7d89d4 1118NAME: diskd_program
1119TYPE: string
1120DEFAULT: @DEFAULT_DISKD@
1121LOC: Config.Program.diskd
1122DOC_START
1123 Specify the location of the diskd executable.
1124 Note that this is only useful if you have compiled in
1125 diskd as one of the store io modules.
1126DOC_END
1127
934b03fc 1128NAME: unlinkd_program
a3d0a19d 1129IFDEF: USE_UNLINKD
f0b19334 1130TYPE: string
0153d498 1131DEFAULT: @DEFAULT_UNLINKD@
934b03fc 1132LOC: Config.Program.unlinkd
1133DOC_START
1134 Specify the location of the executable for file deletion process.
934b03fc 1135DOC_END
1136
934b03fc 1137NAME: pinger_program
a95856a0 1138TYPE: string
0153d498 1139DEFAULT: @DEFAULT_PINGER@
934b03fc 1140LOC: Config.Program.pinger
6b53c392 1141IFDEF: USE_ICMP
934b03fc 1142DOC_START
1143 Specify the location of the executable for the pinger process.
d20b1cd0 1144 This is only useful if you configured Squid (during compilation)
1145 with the '--enable-icmp' option.
934b03fc 1146DOC_END
1147
1148
1149NAME: redirect_program
c6d5b87b 1150TYPE: wordlist
934b03fc 1151LOC: Config.Program.redirect
62607543 1152DEFAULT: none
934b03fc 1153DOC_START
1154 Specify the location of the executable for the URL redirector.
cf5cc17e 1155 Since they can perform almost any function there isn't one included.
3f94eab9 1156 See the FAQ (section 15) for information on how to write one.
cf5cc17e 1157 By default, a redirector is not used.
934b03fc 1158DOC_END
1159
1160
1161NAME: redirect_children
1162TYPE: int
1163DEFAULT: 5
1164LOC: Config.redirectChildren
1165DOC_START
cf5cc17e 1166 The number of redirector processes to spawn. If you start
1167 too few Squid will have to wait for them to process a backlog of
1168 URLs, slowing it down. If you start too many they will use RAM
1169 and other system resources.
934b03fc 1170DOC_END
1171
c68e9c6b 1172NAME: redirect_rewrites_host_header
1173TYPE: onoff
1174DEFAULT: on
1175LOC: Config.onoff.redir_rewrites_host
1176DOC_START
7e3ce7b9 1177 By default Squid rewrites any Host: header in redirected
1178 requests. If you are running a accelerator then this may
1179 not be a wanted effect of a redirector.
c68e9c6b 1180DOC_END
1181
9bc73deb 1182NAME: redirector_access
1183TYPE: acl_access
1184DEFAULT: none
1185LOC: Config.accessList.redirector
1186DOC_START
1187 If defined, this access list specifies which requests are
1188 sent to the redirector processes. By default all requests
1189 are sent.
1190DOC_END
1191
94439e4e 1192NAME: auth_param
1193TYPE: authparam
1194LOC: Config.authConfig
73e67ee0 1195DEFAULT: none
1196DOC_START
94439e4e 1197 This is used to pass parameters to the various authentication
1198 schemes.
1199 format: auth_param scheme parameter [setting]
1200
1201 auth_param basic program @DEFAULT_PREFIX@/bin/ncsa_auth @DEFAULT_PREFIX@/etc/passwd
1202 would tell the basic authentication scheme it's program parameter.
1203
1204 The order that authentication prompts are presented to the client_agent
1205 is dependant on the order the scheme first appears in config file.
1206 IE has a bug (it's not rfc 2617 compliant) in that it will use the basic
1207 scheme if basic is the first entry presented, even if more secure schemes
1208 are presented. For now use the order in the file below. If other browsers
1209 have difficulties (don't recognise the schemes offered even if you are using
1210 basic) then either put basic first, or disable the other schemes (by commenting
1211 out their program entry).
1212
2d70df72 1213 Once an authentication scheme is fully configured, it can only be shutdown
1214 by shutting squid down and restarting. Changes can be made on the fly and
96d88dcb 1215 activated with a reconfigure. I.E. You can change to a different helper,
2d70df72 1216 but not unconfigure the helper completely.
1217
94439e4e 1218 === Parameters for the basic scheme follow. ===
1219
1220 "program" cmdline
6c20b822 1221 Specify the command for the external authenticator. Such a
1222 program reads a line containing "username password" and replies
1223 "OK" or "ERR" in an endless loop. If you use an authenticator,
1224 make sure you have 1 acl of type proxy_auth. By default, the
94439e4e 1225 authenticate_program is not used.
73e67ee0 1226
6c20b822 1227 If you want to use the traditional proxy authentication,
1228 jump over to the ../auth_modules/NCSA directory and
1229 type:
1230 % make
1231 % make install
73e67ee0 1232
6c20b822 1233 Then, set this line to something like
73e67ee0 1234
94439e4e 1235 auth_param basic program @DEFAULT_PREFIX@/bin/ncsa_auth @DEFAULT_PREFIX@/etc/passwd
73e67ee0 1236
94439e4e 1237 "children" numberofchildren
1238 The number of authenticator processes to spawn (no default). If you
73e67ee0 1239 start too few Squid will have to wait for them to process a backlog
1240 of usercode/password verifications, slowing it down. When password
1241 verifications are done via a (slow) network you are likely to need
1242 lots of authenticator processes.
94439e4e 1243 auth_param basic children 5
1244
1245 "realm" realmstring
1246 Specifies the realm name which is to be reported to the client for
1247 the basic proxy authentication scheme (part of the text the user will
1248 see when prompted their username and password). Their is no default.
1249 auth_param basic realm Squid proxy-caching web server
1250
1251 "credentialsttl" timetolive
1252 Specifies how long squid assumes an externally validated username:password
96d88dcb 1253 pair is valid for - in other words how often the helper program is called
94439e4e 1254 for that user. Set this low to force revalidation with short lived passwords.
1255 Note that setting this high does not impact your susceptability to replay
1256 attacks unless you are using a one-time password system (such as SecureID).
1257 If you are using such a system, you will be vulnerable to replay attacks
1258 unless you also enable the IP ttl is strict option.
1259
2d70df72 1260 === Parameters for the digest scheme follow ===
1261
1262 "program" cmdline
1263 Specify the command for the external authenticator. Such a
1264 program reads a line containing "username":"realm" and replies
1265 with the appropriate H(A1) value base64 encoded. See rfc 2616 for
1266 the definition of H(A1). If you use an authenticator,
96d88dcb 1267 make sure you have 1 acl of type proxy_auth. By default,
2d70df72 1268 authentication is not used.
1269
1270 If you want to use build a authenticator,
96d88dcb 1271 jump over to the ../digest_auth_modules directory and choose the
2d70df72 1272 authenticator to use. It it's directory type
1273 % make
1274 % make install
1275
1276 Then, set this line to something like
1277
1278 auth_param digest program @DEFAULT_PREFIX@/bin/digest_auth_pw @DEFAULT_PREFIX@/etc/digpass
1279
1280
1281 "children" numberofchildren
1282 The number of authenticator processes to spawn (no default). If you
1283 start too few Squid will have to wait for them to process a backlog
1284 of H(A1) calculations, slowing it down. When the H(A1) calculations
96d88dcb 1285 are done via a (slow) network you are likely to need lots of
2d70df72 1286 authenticator processes.
1287 auth_param digest children 5
1288
1289 "realm" realmstring
1290 Specifies the realm name which is to be reported to the client for
1291 the digest proxy authentication scheme (part of the text the user will
1292 see when prompted their username and password). There is no default.
1293 auth_param digest realm Squid proxy-caching web server
1294
1295 "nonce_garbage_interval" timeinterval
1296 Specifies the interval that nonces that have been issued to client_agent's
1297 are checked for validity.
1298
1299 "nonce_max_duration" timeinterval
96d88dcb 1300 Specifies the maximum length of time a given nonce will be valid for.
2d70df72 1301
1302 "nonce_max_count" number
1303 Specifies the maximum number of times a given nonce can be used.
1304
94439e4e 1305 === NTLM scheme options follow ===
1306
1307 "program" cmdline
1308 Specify the command for the external ntlm authenticator. Such a
1309 program reads a line containing the uuencoded NEGOTIATE and replies
1310 with the ntlm CHALLENGE, then waits for the response and answers with
1311 "OK" or "ERR" in an endless loop. If you use an ntlm authenticator,
1312 make sure you have 1 acl of type proxy_auth. By default, the
1313 ntlm authenticator_program is not used.
1314
1315 auth_param ntlm program @DEFAULT_PREFIX@/bin/ntlm_auth
1316
1317 "children" numberofchildren
1318 The number of authenticator processes to spawn (no default). If you
1319 start too few Squid will have to wait for them to process a backlog
1320 of credential verifications, slowing it down. When crendential
1321 verifications are done via a (slow) network you are likely to need
1322 lots of authenticator processes.
1323 auth_param ntlm children 5
1324
1325 "max_challenge_reuses" number
1326 The maximum number of times a challenge given by a ntlm authentication
96d88dcb 1327 helper can be reused. Increasing this number increases your exposure
1328 to replay attacks on your network. 0 means use the challenge only once.
94439e4e 1329 (disable challenge caching)
1330 See max_ntlm_challenge_lifetime for more information.
1331 auth_param ntlm max_challenge_reuses 0
1332
1333 "max_challenge_lifetime" timespan
1334 The maximum time period that a ntlm challenge is reused over.
96d88dcb 1335 The actual period will be the minimum of this time AND the number of
94439e4e 1336 reused challenges.
1337 auth_param ntlm max_challenge_lifetime 2 minutes
1338
1339NOCOMMENT_START
1340#Recommended minimum configuration:
2d70df72 1341#auth_param digest program <uncomment and complete this line>
1342#auth_param digest children 5
1343#auth_param digest realm Squid proxy-caching web server
1344#auth_param digest nonce_garbage_interval 5 minutes
1345#auth_param digest nonce_max_duration 30 minutes
1346#auth_param digest nonce_max_count 50
94439e4e 1347#auth_param ntlm program <uncomment and complete this line to activate>
2d70df72 1348#auth_param ntlm children 5
1349#auth_param ntlm max_challenge_reuses 0
1350#auth_param ntlm max_challenge_lifetime 2 minutes
94439e4e 1351#auth_param basic program <uncomment and complete this line>
1352auth_param basic children 5
1353auth_param basic realm Squid proxy-caching web server
1354auth_param basic credentialsttl 2 hours
1355NOCOMMENT_END
1356DOC_END
1357
1358NAME: authenticate_cache_garbage_interval
1359TYPE: time_t
1360DEFAULT: 1 hour
1361LOC: Config.authenticateGCInterval
1362DOC_START
96d88dcb 1363 The time period between garbage collection across the username cache.
94439e4e 1364 This is a tradeoff between memory utilisation (long intervals - say
1365 2 days) and CPU (short intervals - say 1 minute). Only change if
1366 you have good reason to.
73e67ee0 1367DOC_END
1368
c68e9c6b 1369NAME: authenticate_ttl
70a76033 1370TYPE: time_t
1371DEFAULT: 1 hour
c68e9c6b 1372LOC: Config.authenticateTTL
1373DOC_START
94439e4e 1374 The time a user & their credentials stay in the logged in user cache
1375 since their last request. When the garbage interval passes, all
1376 user credentials that have passed their TTL are removed from memory.
c68e9c6b 1377DOC_END
1378
9bc73deb 1379NAME: authenticate_ip_ttl
70a76033 1380TYPE: time_t
9bc73deb 1381LOC: Config.authenticateIpTTL
70a76033 1382DEFAULT: 0 seconds
9bc73deb 1383DOC_START
1384 With this option you control how long a proxy authentication
1385 will be bound to a specific IP address. If a request using
1386 the same user name is received during this time then access
1387 will be denied and both users are required to reauthenticate
1388 them selves. The idea behind this is to make it annoying
1389 for people to share their password to their friends, but
1390 yet allow a dialup user to reconnect on a different dialup
1391 port.
1392
1393 The default is 0 to disable the check. Recommended value
70a76033 1394 if you have dialup users are no more than 60 seconds to allow
1395 the user to redial without hassle. If all your users are
1396 stationary then higher values may be used.
1397
60d096f4 1398 See also the acl max_user_ip.
9bc73deb 1399DOC_END
1400
0f74202c 1401COMMENT_START
3a278cb8 1402 OPTIONS FOR TUNING THE CACHE
1403 -----------------------------------------------------------------------------
0f74202c 1404COMMENT_END
934b03fc 1405
0153d498 1406NAME: wais_relay_host
1407TYPE: string
1273d501 1408DEFAULT: none
0153d498 1409LOC: Config.Wais.relayHost
1410DOC_NONE
934b03fc 1411
0153d498 1412NAME: wais_relay_port
1413TYPE: ushort
1414DEFAULT: 0
1415LOC: Config.Wais.relayPort
934b03fc 1416DOC_START
1417 Relay WAIS request to host (1st arg) at port (2 arg).
934b03fc 1418DOC_END
1419
1420
0483b991 1421NAME: request_header_max_size
1422COMMENT: (KB)
1423TYPE: b_size_t
1424DEFAULT: 10 KB
1425LOC: Config.maxRequestHeaderSize
1426DOC_START
1427 This specifies the maximum size for HTTP headers in a request.
1428 Request headers are usually relatively small (about 512 bytes).
1429 Placing a limit on the request header size will catch certain
1430 bugs (for example with persistent connections) and possibly
1431 buffer-overflow or denial-of-service attacks.
0483b991 1432DOC_END
1433
1434NAME: request_body_max_size
9906e724 1435COMMENT: (KB)
518da0bd 1436TYPE: b_size_t
1f38f50a 1437DEFAULT: 1 MB
0483b991 1438LOC: Config.maxRequestBodySize
934b03fc 1439DOC_START
0483b991 1440 This specifies the maximum size for an HTTP request body.
1441 In other words, the maximum size of a PUT/POST request.
1442 A user who attempts to send a request with a body larger
1443 than this limit receives an "Invalid Request" error message.
1444 If you set this parameter to a zero, there will be no limit
1445 imposed.
0483b991 1446DOC_END
934b03fc 1447
934b03fc 1448NAME: refresh_pattern
934b03fc 1449TYPE: refreshpattern
f1dc9b30 1450LOC: Config.Refresh
1273d501 1451DEFAULT: none
6b53c392 1452DEFAULT_IF_NONE: ^ftp: 1440 20% 10080
1453DEFAULT_IF_NONE: ^gopher: 1440 0% 1440
1454DEFAULT_IF_NONE: . 0 20% 4320
934b03fc 1455DOC_START
7ddc902f 1456 usage: refresh_pattern [-i] regex min percent max [options]
1457
1458 By default, regular expressions are CASE-SENSITIVE. To make
1459 them case-insensitive, use the -i option.
934b03fc 1460
7e3ce7b9 1461 'Min' is the time (in minutes) an object without an explicit
1462 expiry time should be considered fresh. The recommended
1463 value is 0, any higher values may cause dynamic applications
efd900cb 1464 to be erroneously cached unless the application designer
7e3ce7b9 1465 has taken the appropriate actions.
1466
1467 'Percent' is a percentage of the objects age (time since last
efd900cb 1468 modification age) an object without explicit expiry time
7e3ce7b9 1469 will be considered fresh.
1470
1471 'Max' is an upper limit on how long objects without an explicit
1472 expiry time will be considered fresh.
934b03fc 1473
7e3ce7b9 1474 options: overrsde-expire
1dfa1d81 1475 override-lastmod
cbe3a719 1476 reload-into-ims
1477 ignore-reload
1dfa1d81 1478
1479 override-expire enforces min age even if the server
cbe3a719 1480 sent a Expires: header. Doing this VIOLATES the HTTP
1481 standard. Enabling this feature could make you liable
1482 for problems which it causes.
1dfa1d81 1483
1484 override-lastmod enforces min age even on objects
1485 that was modified recently.
cbe3a719 1486
1487 reload-into-ims changes client no-cache or ``reload''
1488 to If-Modified-Since requests. Doing this VIOLATES the
1489 HTTP standard. Enabling this feature could make you
1490 liable for problems which it causes.
1491
1492 ignore-reload ignores a client no-cache or ``reload''
1493 header. Doing this VIOLATES the HTTP standard. Enabling
1494 this feature could make you liable for problems which
1495 it causes.
1dfa1d81 1496
934b03fc 1497 Please see the file doc/Release-Notes-1.1.txt for a full
1498 description of Squid's refresh algorithm. Basically a
1dfa1d81 1499 cached object is: (the order is changed from 1.1.X)
934b03fc 1500
1dfa1d81 1501 FRESH if expires < now, else STALE
6b8e7481 1502 STALE if age > max
1dfa1d81 1503 FRESH if lm-factor < percent, else STALE
1504 FRESH if age < min
1505 else STALE
934b03fc 1506
1507 The refresh_pattern lines are checked in the order listed here.
1508 The first entry which matches is used. If none of the entries
1509 match, then the default will be used.
1510
6b53c392 1511 Note, you must uncomment all the default lines if you want
1512 to change one. The default setting is only active if none is
1513 used.
934b03fc 1514DOC_END
1515
934b03fc 1516NAME: reference_age
f1dc9b30 1517TYPE: time_t
934b03fc 1518LOC: Config.referenceAge
f1dc9b30 1519DEFAULT: 1 year
934b03fc 1520DOC_START
1521 As a part of normal operation, Squid performs Least Recently
1522 Used removal of cached objects. The LRU age for removal is
1523 computed dynamically, based on the amount of disk space in
6778c757 1524 use. The dynamic value can be seen in the Cache Manager 'info'
1525 output.
1526
1527 The 'reference_age' parameter defines the maximum LRU age. For
1528 example, setting reference_age to '1 week' will cause objects
1529 to be removed if they have not been accessed for a week or
7e3ce7b9 1530 more. The default value is one year.
934b03fc 1531
1532 Specify a number here, followed by units of time. For example:
1533 1 week
1534 3.5 days
1535 4 months
1536 2.2 hours
1537
2b906e48 1538 NOTE: this parameter is not used when using the enhanced
1539 replacement policies, GDSH or LFUDA.
934b03fc 1540DOC_END
1541
1542
0153d498 1543NAME: quick_abort_min
9906e724 1544COMMENT: (KB)
1545TYPE: kb_size_t
c68e9c6b 1546DEFAULT: 16 KB
0153d498 1547LOC: Config.quickAbort.min
1548DOC_NONE
1549
0153d498 1550NAME: quick_abort_max
9906e724 1551COMMENT: (KB)
1552TYPE: kb_size_t
6b53c392 1553DEFAULT: 16 KB
0153d498 1554LOC: Config.quickAbort.max
1b2f5c2f 1555DOC_NONE
1556
1557NAME: quick_abort_pct
1558COMMENT: (percent)
1559TYPE: int
c68e9c6b 1560DEFAULT: 95
1b2f5c2f 1561LOC: Config.quickAbort.pct
934b03fc 1562DOC_START
9923e308 1563 The cache by default continues downloading aborted requests
7a61d612 1564 which are almost completed (less than 16 KB remaining). This
1565 may be undesirable on slow (e.g. SLIP) links and/or very busy
1566 caches. Impatient users may tie up file descriptors and
1567 bandwidth by repeatedly requesting and immediately aborting
1568 downloads.
934b03fc 1569
1570 When the user aborts a request, Squid will check the
1571 quick_abort values to the amount of data transfered until
1572 then.
1573
cf5cc17e 1574 If the transfer has less than 'quick_abort_min' KB remaining,
2bb84b43 1575 it will finish the retrieval.
934b03fc 1576
cf5cc17e 1577 If the transfer has more than 'quick_abort_max' KB remaining,
1578 it will abort the retrieval.
934b03fc 1579
1b2f5c2f 1580 If more than 'quick_abort_pct' of the transfer has completed,
1581 it will finish the retrieval.
2bb84b43 1582
7a61d612 1583 If you do not want any retrieval to continue after the client
2bb84b43 1584 has aborted, set both 'quick_abort_min' and 'quick_abort_max'
1585 to '0 KB'.
1586
9923e308 1587 If you want retrievals to always continue if they are being
2bb84b43 1588 cached then set 'quick_abort_min' to '-1 KB'.
934b03fc 1589DOC_END
1590
1591
1592NAME: negative_ttl
bc0eb004 1593COMMENT: time-units
f1dc9b30 1594TYPE: time_t
934b03fc 1595LOC: Config.negativeTtl
9e975e4e 1596DEFAULT: 5 minutes
934b03fc 1597DOC_START
1598 Time-to-Live (TTL) for failed requests. Certain types of
1599 failures (such as "connection refused" and "404 Not Found") are
cf5cc17e 1600 negatively-cached for a configurable amount of time. The
1601 default is 5 minutes. Note that this is different from
1602 negative caching of DNS lookups.
934b03fc 1603DOC_END
1604
1605
1606NAME: positive_dns_ttl
bc0eb004 1607COMMENT: time-units
f1dc9b30 1608TYPE: time_t
934b03fc 1609LOC: Config.positiveDnsTtl
9e975e4e 1610DEFAULT: 6 hours
934b03fc 1611DOC_START
1612 Time-to-Live (TTL) for positive caching of successful DNS lookups.
1613 Default is 6 hours (360 minutes). If you want to minimize the
1614 use of Squid's ipcache, set this to 1, not 0.
934b03fc 1615DOC_END
1616
1617
1618NAME: negative_dns_ttl
bc0eb004 1619COMMENT: time-units
f1dc9b30 1620TYPE: time_t
934b03fc 1621LOC: Config.negativeDnsTtl
9e975e4e 1622DEFAULT: 5 minutes
934b03fc 1623DOC_START
1624 Time-to-Live (TTL) for negative caching of failed DNS lookups.
934b03fc 1625DOC_END
1626
c68e9c6b 1627NAME: range_offset_limit
1628COMMENT: (bytes)
1629TYPE: b_size_t
1630LOC: Config.rangeOffsetLimit
1631DEFAULT: 0 KB
1632DOC_START
1633 Sets a upper limit on how far into the the file a Range request
1634 may be to cause Squid to prefetch the whole file. If beyond this
1635 limit then Squid forwards the Range request as it is and the result
1636 is NOT cached.
1637
1638 This is to stop a far ahead range request (lets say start at 17MB)
1639 from making Squid fetch the whole object up to that point before
1640 sending anything to the client.
1641
1642 A value of -1 causes Squid to always fetch the object from the
1643 beginning so that it may cache the result. (2.0 style)
1644
6e7dbcbd 1645 A value of 0 causes Squid to never fetch more than the
c68e9c6b 1646 client requested. (default)
c68e9c6b 1647DOC_END
1648
1649
0f74202c 1650COMMENT_START
3a278cb8 1651 TIMEOUTS
1652 -----------------------------------------------------------------------------
0f74202c 1653COMMENT_END
934b03fc 1654
1655NAME: connect_timeout
bc0eb004 1656COMMENT: time-units
f1dc9b30 1657TYPE: time_t
934b03fc 1658LOC: Config.Timeout.connect
9e975e4e 1659DEFAULT: 2 minutes
934b03fc 1660DOC_START
1661 Some systems (notably Linux) can not be relied upon to properly
cf5cc17e 1662 time out connect(2) requests. Therefore the Squid process
934b03fc 1663 enforces its own timeout on server connections. This parameter
1664 specifies how long to wait for the connect to complete. The
1665 default is two minutes (120 seconds).
934b03fc 1666DOC_END
1667
3f62decd 1668NAME: peer_connect_timeout
1669COMMENT: time-units
1670TYPE: time_t
1671LOC: Config.Timeout.peer_connect
1672DEFAULT: 30 seconds
1673DOC_START
1674 This parameter specifies how long to wait for a pending TCP
1675 connection to a peer cache. The default is 30 seconds. You
1676 may also set different timeout values for individual neighbors
1677 with the 'connect-timeout' option on a 'cache_peer' line.
9bc73deb 1678DOC_END
3f62decd 1679
23d92c64 1680NAME: siteselect_timeout
1681COMMENT: time-units
1682TYPE: time_t
1683LOC: Config.Timeout.siteSelect
1684DEFAULT: 4 seconds
1685DOC_START
1686 For URN to multiple URL's URL selection
23d92c64 1687DOC_END
934b03fc 1688
1689NAME: read_timeout
bc0eb004 1690COMMENT: time-units
f1dc9b30 1691TYPE: time_t
934b03fc 1692LOC: Config.Timeout.read
9e975e4e 1693DEFAULT: 15 minutes
934b03fc 1694DOC_START
1695 The read_timeout is applied on server-side connections. After
1696 each successful read(), the timeout will be extended by this
1697 amount. If no data is read again after this amount of time,
1698 the request is aborted and logged with ERR_READ_TIMEOUT. The
1699 default is 15 minutes.
934b03fc 1700DOC_END
1701
1702
934b03fc 1703NAME: request_timeout
f1dc9b30 1704TYPE: time_t
934b03fc 1705LOC: Config.Timeout.request
9e975e4e 1706DEFAULT: 30 seconds
934b03fc 1707DOC_START
1708 How long to wait for an HTTP request after connection
1709 establishment. For persistent connections, wait this long
1710 after the previous request completes.
934b03fc 1711DOC_END
1712
1713
1714NAME: client_lifetime
bc0eb004 1715COMMENT: time-units
f1dc9b30 1716TYPE: time_t
934b03fc 1717LOC: Config.Timeout.lifetime
9e975e4e 1718DEFAULT: 1 day
934b03fc 1719DOC_START
1720 The maximum amount of time that a client (browser) is allowed to
1721 remain connected to the cache process. This protects the Cache
efd900cb 1722 from having a lot of sockets (and hence file descriptors) tied up
934b03fc 1723 in a CLOSE_WAIT state from remote clients that go away without
1724 properly shutting down (either because of a network failure or
1725 because of a poor client implementation). The default is one
1726 day, 1440 minutes.
1727
1728 NOTE: The default value is intended to be much larger than any
1729 client would ever need to be connected to your cache. You
1730 should probably change client_lifetime only as a last resort.
1731 If you seem to have many client connections tying up
1732 filedescriptors, we recommend first tuning the read_timeout,
0fbcf3c7 1733 request_timeout, pconn_timeout and quick_abort values.
934b03fc 1734DOC_END
1735
ea285003 1736NAME: half_closed_clients
1737TYPE: onoff
1738LOC: Config.onoff.half_closed_clients
1739DEFAULT: on
1740DOC_START
1741 Some clients may shutdown the sending side of their TCP
1742 connections, while leaving their receiving sides open. Sometimes,
1743 Squid can not tell the difference between a half-closed and a
1744 fully-closed TCP connection. By default, half-closed client
1745 connections are kept open until a read(2) or write(2) on the
1746 socket returns an error. Change this option to 'off' and Squid
1747 will immediately close client connections when read(2) returns
1748 "no more data to read."
ea285003 1749DOC_END
1750
603a02fd 1751NAME: pconn_timeout
1752TYPE: time_t
1753LOC: Config.Timeout.pconn
1754DEFAULT: 120 seconds
1755DOC_START
1756 Timeout for idle persistent connections to servers and other
1757 proxies.
603a02fd 1758DOC_END
1759
05832ae1 1760NAME: ident_timeout
1761TYPE: time_t
3898f57f 1762IFDEF: USE_IDENT
05832ae1 1763LOC: Config.Timeout.ident
1764DEFAULT: 10 seconds
1765DOC_START
1766 Maximum time to wait for IDENT requests. If this is too high,
1767 and you enabled 'ident_lookup', then you might be susceptible
1768 to denial-of-service by having many ident requests going at
1769 once.
6b8e7481 1770
9bc73deb 1771 Only src type ACL checks are fully supported. A src_domain
1772 ACL might work at times, but it will not always provide
1773 the correct result.
1774
6b8e7481 1775 This option may be disabled by using --disable-ident with
1776 the configure script.
05832ae1 1777DOC_END
1778
934b03fc 1779
1780NAME: shutdown_lifetime
bc0eb004 1781COMMENT: time-units
f1dc9b30 1782TYPE: time_t
934b03fc 1783LOC: Config.shutdownLifetime
9e975e4e 1784DEFAULT: 30 seconds
934b03fc 1785DOC_START
1786 When SIGTERM or SIGHUP is received, the cache is put into
1787 "shutdown pending" mode until all active sockets are closed.
1788 This value is the lifetime to set for all open descriptors
1789 during shutdown mode. Any active clients after this many
1790 seconds will receive a 'timeout' message.
934b03fc 1791DOC_END
1792
0f74202c 1793COMMENT_START
3a278cb8 1794 ACCESS CONTROLS
1795 -----------------------------------------------------------------------------
0f74202c 1796COMMENT_END
934b03fc 1797
1798NAME: acl
1799TYPE: acl
f1dc9b30 1800LOC: Config.aclList
1801DEFAULT: none
934b03fc 1802DOC_START
1803 Defining an Access List
1804
1805 acl aclname acltype string1 ...
1806 acl aclname acltype "file" ...
1807
1808 when using "file", the file should contain one item per line
1809
1810 acltype is one of src dst srcdomain dstdomain url_pattern
1811 urlpath_pattern time port proto method browser user
1812
edd80fbb 1813 By default, regular expressions are CASE-SENSITIVE. To make
1814 them case-insensitive, use the -i option.
1815
934b03fc 1816 acl aclname src ip-address/netmask ... (clients IP address)
1817 acl aclname src addr1-addr2/netmask ... (range of addresses)
1818 acl aclname dst ip-address/netmask ... (URL host's IP address)
ae2c08a2 1819 acl aclname myip ip-address/netmask ... (local socket IP address)
d0d41f07 1820
efd900cb 1821 acl aclname srcdomain .foo.com ... # reverse lookup, client IP
1822 acl aclname dstdomain .foo.com ... # Destination server from URL
edd80fbb 1823 acl aclname srcdom_regex [-i] xxx ... # regex matching client name
1824 acl aclname dstdom_regex [-i] xxx ... # regex matching server
d0d41f07 1825 # For dstdomain and dstdom_regex a reverse lookup is tried if a IP
1826 # based URL is used. The name "none" is used if the reverse lookup
1827 # fails.
1828
934b03fc 1829 acl aclname time [day-abbrevs] [h1:m1-h2:m2]
1830 day-abbrevs:
1831 S - Sunday
1832 M - Monday
1833 T - Tuesday
1834 W - Wednesday
1835 H - Thursday
1836 F - Friday
1837 A - Saturday
1838 h1:m1 must be less than h2:m2
edd80fbb 1839 acl aclname url_regex [-i] ^http:// ... # regex matching on whole URL
1840 acl aclname urlpath_regex [-i] \.gif$ ... # regex matching on URL path
934b03fc 1841 acl aclname port 80 70 21 ...
ec5bba4d 1842 acl aclname port 0-1024 ... # ranges allowed
7e3ce7b9 1843 acl aclname myport 3128 ... # (local socket TCP port)
934b03fc 1844 acl aclname proto HTTP FTP ...
1845 acl aclname method GET POST ...
edd80fbb 1846 acl aclname browser [-i] regexp
1847 # pattern match on User-Agent header
c68e9c6b 1848 acl aclname ident username ...
145cf928 1849 acl aclname ident_regex [-i] pattern ...
c68e9c6b 1850 # string match on ident output.
1851 # use REQUIRED to accept any non-null ident.
96d88dcb 1852 acl aclname src_as number ...
6468fe10 1853 acl aclname dst_as number ...
1854 # Except for access control, AS numbers can be used for
96d88dcb 1855 # routing of requests to specific caches. Here's an
1856 # example for routing all requests for AS#1241 and only
6468fe10 1857 # those to mycache.mydomain.net:
1858 # acl asexample dst_as 1241
d87ebd78 1859 # cache_peer_access mycache.mydomain.net allow asexample
1860 # cache_peer_access mycache_mydomain.net deny all
6468fe10 1861
c68e9c6b 1862 acl aclname proxy_auth username ...
145cf928 1863 acl aclname proxy_auth_regex [-i] pattern ...
c68e9c6b 1864 # list of valid usernames
1865 # use REQUIRED to accept any valid username.
73e67ee0 1866 #
1867 # NOTE: when a Proxy-Authentication header is sent but it is not
1868 # needed during ACL checking the username is NOT logged
1869 # in access.log.
c68e9c6b 1870 #
1871 # NOTE: proxy_auth requires a EXTERNAL authentication program
1872 # to check username/password combinations (see
1873 # authenticate_program).
1874 #
1875 # WARNING: proxy_auth can't be used in a transparent proxy. It
1876 # collides with any authentication done by origin servers. It may
1877 # seem like it works at first, but it doesn't.
934b03fc 1878
dba79ac5 1879 acl aclname snmp_community string ...
08f6b5e0 1880 # A community string to limit access to your SNMP Agent
dba79ac5 1881 # Example:
96d88dcb 1882 #
dba79ac5 1883 # acl snmppublic snmp_community public
1884
9bc73deb 1885 acl aclname maxconn number
1886 # This will be matched when the client's IP address has
1887 # more than <number> HTTP connections established.
1888
60d096f4 1889 acl aclname max_user_ip
96d88dcb 1890 # This will be matched when the user attempts to log in from more
60d096f4 1891 # than <number> different ip address's. The authenticate_ip_ttl
1892 # parameter controls the timeout on the ip entries.
96d88dcb 1893 # NOTE: in acceleration mode, clients may appear to come from
60d096f4 1894 # multiple address's if they are going through proxy farms,
1895 # so a limit of 1 may cause user problems.
1896
1897
fb8ee28e 1898 acl aclname req_mime_type mime-type1 ...
ba2b31a8 1899 # regex match agains the mime type of the request generated
1900 # by the client. Can be used to detect file upload or some
1901 # types HTTP tunelling requests.
1902 # NOTE: This does NOT match the reply. You cannot use this
1903 # to match the returned file type.
c68e9c6b 1904
fb8ee28e 1905 acl aclname rep_mime_type mime-type1 ...
c4ab8329 1906 # regex match against the mime type of the reply recieved by
1907 # squid. Can be used to detect file download or some
1908 # types HTTP tunelling requests.
1909 # NOTE: This has no effect in http_access rules. It only has
1910 # effect in rules that affect the reply data stream such as
1911 # http_reply_access.
1912
1913
c68e9c6b 1914Examples:
1915acl myexample dst_as 1241
aa6956a5 1916acl password proxy_auth REQUIRED
ba2b31a8 1917acl fileupload req_mime_type -i ^multipart/form-data$
c4ab8329 1918acl javascript rep_mime_type -i ^application/x-javascript$
c68e9c6b 1919
c68e9c6b 1920NOCOMMENT_START
6b53c392 1921#Recommended minimum configuration:
c68e9c6b 1922acl all src 0.0.0.0/0.0.0.0
934b03fc 1923acl manager proto cache_object
1924acl localhost src 127.0.0.1/255.255.255.255
934b03fc 1925acl SSL_ports port 443 563
6b53c392 1926acl Safe_ports port 80 # http
1927acl Safe_ports port 21 # ftp
1928acl Safe_ports port 443 563 # https, snews
1929acl Safe_ports port 70 # gopher
1930acl Safe_ports port 210 # wais
1931acl Safe_ports port 1025-65535 # unregistered ports
9bc73deb 1932acl Safe_ports port 280 # http-mgmt
1933acl Safe_ports port 488 # gss-http
1934acl Safe_ports port 591 # filemaker
1935acl Safe_ports port 777 # multiling http
934b03fc 1936acl CONNECT method CONNECT
c68e9c6b 1937NOCOMMENT_END
934b03fc 1938DOC_END
1939
1940NAME: http_access
1941TYPE: acl_access
f1dc9b30 1942LOC: Config.accessList.http
1943DEFAULT: none
da7f354f 1944DEFAULT_IF_NONE: deny all
934b03fc 1945DOC_START
1946 Allowing or Denying access based on defined access lists
1947
1948 Access to the HTTP port:
1949 http_access allow|deny [!]aclname ...
1950
934b03fc 1951 NOTE on default values:
1952
6b53c392 1953 If there are no "access" lines present, the default is to deny
934b03fc 1954 the request.
1955
1956 If none of the "access" lines cause a match, the default is the
1957 opposite of the last line in the list. If the last line was
1958 deny, then the default is allow. Conversely, if the last line
1959 is allow, the default will be deny. For these reasons, it is a
1960 good idea to have an "deny all" or "allow all" entry at the end
1961 of your access lists to avoid potential confusion.
1962
c68e9c6b 1963NOCOMMENT_START
6b53c392 1964#Recommended minimum configuration:
1965#
1966# Only allow cachemgr access from localhost
c68e9c6b 1967http_access allow manager localhost
1968http_access deny manager
6b53c392 1969# Deny requests to unknown ports
499558df 1970http_access deny !Safe_ports
6b53c392 1971# Deny CONNECT to other than SSL ports
c68e9c6b 1972http_access deny CONNECT !SSL_ports
1973#
1974# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
1975#
6b53c392 1976# And finally deny all other access to this proxy
c68e9c6b 1977http_access deny all
1978NOCOMMENT_END
934b03fc 1979DOC_END
1980
c4ab8329 1981NAME: http_reply_access
1982TYPE: acl_access
1983LOC: Config.accessList.reply
1984DEFAULT: none
1985DEFAULT_IF_NONE: allow all
1986DOC_START
1987 Allow replies to client requests. This is complementary to http_access.
1988
1989 http_reply_access allow|deny [!] aclname ...
1990
96d88dcb 1991 NOTE: if there are no access lines present, the default is to allow
c4ab8329 1992 all replies
1993
1994 If none of the access lines cause a match, then the opposite of the
1995 last line will apply. Thus it is good practice to end the rules
1996 with an "allow all" or "deny all" entry.
1997
1998NOCOMMENT_START
1999#Recommended minimum configuration:
2000#
2001# Insert your own rules here.
2002#
2003#
2004# and finally allow by default
2005http_reply_access allow all
2006NOCOMMENT_END
2007DOC_END
2008
934b03fc 2009
2010NAME: icp_access
2011TYPE: acl_access
f1dc9b30 2012LOC: Config.accessList.icp
2013DEFAULT: none
da7f354f 2014DEFAULT_IF_NONE: deny all
934b03fc 2015DOC_START
6b53c392 2016 Allowing or Denying access to the ICP port based on defined
2017 access lists
2018
2019 icp_access allow|deny [!]aclname ...
2020
2021 See http_access for details
934b03fc 2022
c68e9c6b 2023NOCOMMENT_START
6b53c392 2024#Allow ICP queries from eveyone
c68e9c6b 2025icp_access allow all
2026NOCOMMENT_END
934b03fc 2027DOC_END
2028
2029
2030NAME: miss_access
2031TYPE: acl_access
f1dc9b30 2032LOC: Config.accessList.miss
2033DEFAULT: none
934b03fc 2034DOC_START
2035 Use to force your neighbors to use you as a sibling instead of
2036 a parent. For example:
2037
2038 acl localclients src 172.16.0.0/16
2039 miss_access allow localclients
2040 miss_access deny !localclients
2041
2042 This means that only your local clients are allowed to fetch
2043 MISSES and all other clients can only fetch HITS.
2044
2045 By default, allow all clients who passed the http_access rules
2046 to fetch MISSES from us.
6b53c392 2047
c68e9c6b 2048NOCOMMENT_START
6b53c392 2049#Default setting:
2050# miss_access allow all
c68e9c6b 2051NOCOMMENT_END
934b03fc 2052DOC_END
2053
2054
505e35db 2055NAME: cache_peer_access
2056TYPE: peer_access
f1dc9b30 2057DEFAULT: none
2058LOC: none
934b03fc 2059DOC_START
505e35db 2060 Similar to 'cache_peer_domain' but provides more flexibility by
2061 using ACL elements.
934b03fc 2062
505e35db 2063 cache_peer_access cache-host allow|deny [!]aclname ...
934b03fc 2064
505e35db 2065 The syntax is identical to 'http_access' and the other lists of
2066 ACL elements. See the comments for 'http_access' below, or
2b6662ba 2067 the Squid FAQ (http://www.squid-cache.org/FAQ/FAQ-10.html).
934b03fc 2068DOC_END
2069
ec603b25 2070NAME: ident_lookup_access
2071TYPE: acl_access
2072IFDEF: USE_IDENT
2073DEFAULT: none
2074DEFAULT_IF_NONE: deny all
2075LOC: Config.accessList.identLookup
2076DOC_START
2077 A list of ACL elements which, if matched, cause an ident
2078 (RFC 931) lookup to be performed for this request. For
2079 example, you might choose to always perform ident lookups
2080 for your main multi-user Unix boxes, but not for your Macs
2081 and PCs. By default, ident lookups are not performed for
2082 any requests.
2083
2084 To enable ident lookups for specific client addresses, you
2085 can follow this example:
96d88dcb 2086
ec603b25 2087 acl ident_aware_hosts src 198.168.1.0/255.255.255.0
2088 ident_lookup_access allow ident_aware_hosts
2089 ident_lookup_access deny all
2090
2091 This option may be disabled by using --disable-ident with
2092 the configure script.
ec603b25 2093DOC_END
2094
d6827718 2095NAME: tcp_outgoing_tos tcp_outgoing_ds tcp_outgoin_dscp
2096TYPE: acl_tos
2097DEFAULT: none
2098LOC: Config.accessList.outgoing_tos
2099DOC_START
2100 Allows you to select a TOS/Diffserv value to mark outgoing
2101 connections with, based on the username or source address
2102 making the request.
2103
2104 tcp_outgoing_tos ds-field [!]aclname ...
2105
2106 Example where normal_service_net uses the TOS value 0x00
2107 and normal_service_net uses 0x20
2108
2109 acl normal_service_net src 10.0.0.0/255.255.255.0
2110 acl good_service_net src 10.0.1.0/255.255.255.0
2111 tcp_outgoing_tos 0x00 normal_service_net 0x00
2112 tcp_outgoing_tos 0x20 good_service_net
2113
2114 TOS/DSCP values really only have local significance - so you should
2115 know what you're specifying. For more, see RFC 2474
2116
2117 The TOS/DSCP byte must be exactly that - a byte, value 0 - 255, or
2118 "default" to use whatever default your host has.
2119
2120 Processing proceeds in the order specified, and stops at first fully
2121 matching line.
2122DOC_END
2123
2124NAME: tcp_outgoing_address
2125TYPE: acl_address
2126DEFAULT: none
2127LOC: Config.accessList.outgoing_address
2128DOC_START
2129 Allows you to map requests to different outgoing IP addresses
2130 based on the username or sourceaddress of the user making
2131 the request.
2132
2133 tcp_outgoing_address ipaddr [[!]aclname] ...
2134
2135 Example where requests from 10.0.0.0/24 will be forwareded
2136 with source address 10.1.0.1, 10.0.2.0/24 forwarded with
2137 source address 10.1.0.2 and the rest will be forwarded with
2138 source address 10.1.0.3.
2139
2140 acl normal_service_net src 10.0.0.0/255.255.255.0
2141 acl good_service_net src 10.0.1.0/255.255.255.0
2142 tcp_outgoing_address 10.0.0.1 normal_service_net
2143 tcp_outgoing_address 10.0.0.2 good_service_net
2144 tcp_outgoing_address 10.0.0.3
2145
2146 Processing proceeds in the order specified, and stops at first fully
2147 matching line.
2148DOC_END
ec603b25 2149
a560ee93 2150NAME: reply_body_max_size
2151COMMENT: bytes allow|deny acl acl...
2152TYPE: body_size_t
2153DEFAULT: none
2154DEFAULT_IF_NONE: 0 allow all
2155LOC: Config.ReplyBodySize
2156DOC_START
2157 This option specifies the maximum size of a reply body. It
2158 can be used to prevent users from downloading very large files,
2159 such as MP3's and movies. When the reply headers are recieved,
2160 the reply_body_max_size lines are processed, and the first line with
2161 a result of "allow" is used as the maximum body size for this reply.
2162 This size is then checked twice. First when we get the reply headers,
2163 we check the content-length value. If the content length value exists
2164 and is larger than the allowed size, the request is denied and the
2165 user receives an error message that says "the request or reply
2166 is too large." If there is no content-length, and the reply
2167 size exceeds this limit, the client's connection is just closed
2168 and they will receive a partial reply.
2169
2170 WARNING: downstream caches probably can not detect a partial reply
2171 if there is no content-length header, so they will cache
2172 partial responses and give them out as hits. You should NOT
2173 use this option if you have downstream caches.
2174
96d88dcb 2175 WARNING: A maximum size larger than the size of squid's error messages
a560ee93 2176 will cause an infinite loop and crash squid. Ensure that the smallest
2177 non-zero value you use is greater that the maximum header size plus
2178 the size of your largest error page.
2179
2180 If you set this parameter to zero (the default), there will be
2181 no limit imposed.
2182DOC_END
2183
0f74202c 2184COMMENT_START
3a278cb8 2185 ADMINISTRATIVE PARAMETERS
2186 -----------------------------------------------------------------------------
0f74202c 2187COMMENT_END
934b03fc 2188
2189NAME: cache_mgr
2190TYPE: string
2191DEFAULT: webmaster
2192LOC: Config.adminEmail
2193DOC_START
2194 Email-address of local cache manager who will receive
2195 mail if the cache dies. The default is "webmaster."
934b03fc 2196DOC_END
2197
2198
2199NAME: cache_effective_user
0153d498 2200TYPE: string
a95856a0 2201DEFAULT: nobody
0153d498 2202LOC: Config.effectiveUser
2203DOC_NONE
2204
2205NAME: cache_effective_group
2206TYPE: string
8749fa47 2207DEFAULT: none
0153d498 2208LOC: Config.effectiveGroup
934b03fc 2209DOC_START
5a3f6538 2210
934b03fc 2211 If the cache is run as root, it will change its effective/real
5a3f6538 2212 UID/GID to the UID/GID specified below. The default is to
8749fa47 2213 change to UID to nobody and GID to the default group of nobody.
5a3f6538 2214
2215 If Squid is not started as root, the default is to keep the
8749fa47 2216 current UID/GID, and only the GID can be changed to any of
2217 the groups the user starting Squid is member of. Note that if
2218 Squid is not started as root then you cannot set http_port to
2219 a value lower than 1024.
934b03fc 2220DOC_END
2221
2222
2223NAME: visible_hostname
2224TYPE: string
2225LOC: Config.visibleHostname
f1dc9b30 2226DEFAULT: none
934b03fc 2227DOC_START
2228 If you want to present a special hostname in error messages, etc,
2229 then define this. Otherwise, the return value of gethostname()
cf5cc17e 2230 will be used. If you have multiple caches in a cluster and
2231 get errors about IP-forwarding you must set them to have individual
2232 names with this setting.
934b03fc 2233DOC_END
2234
98829f69 2235
2236NAME: unique_hostname
2237TYPE: string
2238LOC: Config.uniqueHostname
2239DEFAULT: none
2240DOC_START
2241 If you want to have multiple machines with the same
2242 'visible_hostname' then you must give each machine a different
2243 'unique_hostname' so that forwarding loops can be detected.
98829f69 2244DOC_END
2245
1f38f50a 2246
2247NAME: hostname_aliases
2248TYPE: wordlist
2249LOC: Config.hostnameAliases
2250DEFAULT: none
2251DOC_START
2252 A list of other DNS names that your cache has.
2253DOC_END
2254
0f74202c 2255COMMENT_START
3a278cb8 2256 OPTIONS FOR THE CACHE REGISTRATION SERVICE
2257 -----------------------------------------------------------------------------
934b03fc 2258
3a278cb8 2259 This section contains parameters for the (optional) cache
2260 announcement service. This service is provided to help
2261 cache administrators locate one another in order to join or
2262 create cache hierarchies.
934b03fc 2263
3a278cb8 2264 An 'announcement' message is sent (via UDP) to the registration
efd900cb 2265 service by Squid. By default, the announcement message is NOT
d2d631ce 2266 SENT unless you enable it with 'announce_period' below.
3a278cb8 2267
2268 The announcement message includes your hostname, plus the
2269 following information from this configuration file:
934b03fc 2270
3a278cb8 2271 http_port
2272 icp_port
2273 cache_mgr
2274
2275 All current information is processed regularly and made
2b6662ba 2276 available on the Web at http://www.ircache.net/Cache/Tracker/.
0f74202c 2277COMMENT_END
934b03fc 2278
f1dc9b30 2279NAME: announce_period
2280TYPE: time_t
2281LOC: Config.Announce.period
d2d631ce 2282DEFAULT: 0
934b03fc 2283DOC_START
d2d631ce 2284 This is how frequently to send cache announcements. The
2285 default is `0' which disables sending the announcement
2286 messages.
934b03fc 2287
cd748f27 2288 To enable announcing your cache, just uncomment the line
2289 below.
2290
6b53c392 2291NOCOMMENT_START
2292#To enable announcing your cache, just uncomment the line below.
2293#announce_period 1 day
2294NOCOMMENT_END
934b03fc 2295DOC_END
2296
2297
f1dc9b30 2298NAME: announce_host
2299TYPE: string
61735fcf 2300DEFAULT: tracker.ircache.net
f1dc9b30 2301LOC: Config.Announce.host
2302DOC_NONE
2303
cf5cc17e 2304NAME: announce_file
2305TYPE: string
61735fcf 2306DEFAULT: none
cf5cc17e 2307LOC: Config.Announce.file
2308DOC_NONE
2309
f1dc9b30 2310NAME: announce_port
2311TYPE: ushort
2312DEFAULT: 3131
2313LOC: Config.Announce.port
934b03fc 2314DOC_START
d2d631ce 2315 announce_host and announce_port set the hostname and port
2316 number where the registration message will be sent.
934b03fc 2317
d2d631ce 2318 Hostname will default to 'tracker.ircache.net' and port will
2319 default default to 3131. If the 'filename' argument is given,
2320 the contents of that file will be included in the announce
2321 message.
934b03fc 2322DOC_END
2323
0f74202c 2324COMMENT_START
3a278cb8 2325 HTTPD-ACCELERATOR OPTIONS
2326 -----------------------------------------------------------------------------
0f74202c 2327COMMENT_END
934b03fc 2328
f1dc9b30 2329NAME: httpd_accel_host
2330TYPE: string
2331LOC: Config.Accel.host
2332DEFAULT: none
2333DOC_NONE
2334
2335NAME: httpd_accel_port
2336TYPE: ushort
2337LOC: Config.Accel.port
5b68a4d3 2338DEFAULT: 80
934b03fc 2339DOC_START
cf5cc17e 2340 If you want to run Squid as an httpd accelerator, define the
934b03fc 2341 host name and port number where the real HTTP server is.
2342
2343 If you want virtual host support then specify the hostname
2344 as "virtual".
2345
42b51993 2346 If you want virtual port support then specify the port as "0".
2347
839491ad 2348 NOTE: enabling httpd_accel_host disables proxy-caching and
2349 ICP. If you want these features enabled also, then set
2350 the 'httpd_accel_with_proxy' option.
934b03fc 2351DOC_END
2352
13c7936a 2353NAME: httpd_accel_single_host
2354COMMENT: on|off
2355TYPE: onoff
2356LOC: Config.Accel.single_host
b0a9b5f2 2357DEFAULT: off
13c7936a 2358DOC_START
2359 If you are running Squid as a accelerator and have a single backend
2360 server then set this to on. This causes Squid to forward the request
2361 to this server irregardles of what any redirectors or Host headers
2362 says.
2363
b0a9b5f2 2364 Leave this at off if you have multiple backend servers, and use a
2365 redirector (or host table or private DNS) to map the requests to the
13c7936a 2366 appropriate backend servers. Note that the mapping needs to be a
2367 1-1 mapping between requested and backend (from redirector) domain
2368 names or caching will fail, as cacing is performed using the
2369 URL returned from the redirector.
2370
2371 See also redirect_rewrites_host_header.
2372DOC_END
934b03fc 2373
2374NAME: httpd_accel_with_proxy
2375COMMENT: on|off
2376TYPE: onoff
f1dc9b30 2377DEFAULT: off
17a0a4ee 2378LOC: Config.onoff.accel_with_proxy
934b03fc 2379DOC_START
cf5cc17e 2380 If you want to use Squid as both a local httpd accelerator
6b53c392 2381 and as a proxy, change this to 'on'. Note however that your
2382 proxy users may have trouble to reach the accelerated domains
2383 unless their browsers are configured not to use this proxy for
2384 those domains (for example via the no_proxy browser configuration
2385 setting)
934b03fc 2386DOC_END
2387
934b03fc 2388NAME: httpd_accel_uses_host_header
2389COMMENT: on|off
2390TYPE: onoff
f1dc9b30 2391DEFAULT: off
934b03fc 2392LOC: opt_accel_uses_host
2393DOC_START
2394 HTTP/1.1 requests include a Host: header which is basically the
2395 hostname from the URL. Squid can be an accelerator for
2396 different HTTP servers by looking at this header. However,
2397 Squid does NOT check the value of the Host header, so it opens
2398 a big security hole. We recommend that this option remain
2399 disabled unless you are sure of what you are doing.
2400
04f6f348 2401 However, you will need to enable this option if you run Squid
2402 as a transparent proxy. Otherwise, virtual servers which
2403 require the Host: header will not be properly cached.
934b03fc 2404DOC_END
2405
0f74202c 2406COMMENT_START
3a278cb8 2407 MISCELLANEOUS
2408 -----------------------------------------------------------------------------
0f74202c 2409COMMENT_END
934b03fc 2410
2411NAME: dns_testnames
2412TYPE: wordlist
2413LOC: Config.dns_testname_list
f1dc9b30 2414DEFAULT: none
6b53c392 2415DEFAULT_IF_NONE: netscape.com internic.net nlanr.net microsoft.com
934b03fc 2416DOC_START
2417 The DNS tests exit as soon as the first site is successfully looked up
2418
6b53c392 2419 This test can be disabled with the -D command line option.
934b03fc 2420DOC_END
2421
2422
2423NAME: logfile_rotate
2424TYPE: int
2425DEFAULT: 10
2426LOC: Config.Log.rotateNumber
2427DOC_START
5a3f6538 2428 Specifies the number of logfile rotations to make when you
2429 type 'squid -k rotate'. The default is 10, which will rotate
cf5cc17e 2430 with extensions 0 through 9. Setting logfile_rotate to 0 will
934b03fc 2431 disable the rotation, but the logfiles are still closed and
cf5cc17e 2432 re-opened. This will enable you to rename the logfiles
5a3f6538 2433 yourself just before sending the rotate signal.
2434
2435 Note, the 'squid -k rotate' command normally sends a USR1
2436 signal to the running squid process. In certain situations
2437 (e.g. on Linux with Async I/O), USR1 is used for other
2438 purposes, so -k rotate uses another signal. It is best to get
2439 in the habit of using 'squid -k rotate' instead of 'kill -USR1
2440 <pid>'.
934b03fc 2441DOC_END
2442
2443
2444NAME: append_domain
f1dc9b30 2445TYPE: string
2446LOC: Config.appendDomain
2447DEFAULT: none
934b03fc 2448DOC_START
cf5cc17e 2449 Appends local domain name to hostnames without any dots in
2450 them. append_domain must begin with a period.
934b03fc 2451
cd98395a 2452 Be warned that there today is Internet names with no dots in
2453 them using only top-domain names, so setting this may
2454 cause some Internet sites to become unavailable.
2455
6b53c392 2456Example:
2457 append_domain .yourdomain.com
934b03fc 2458DOC_END
2459
2460
2461NAME: tcp_recv_bufsize
89de058c 2462COMMENT: (bytes)
1b635117 2463TYPE: b_size_t
89de058c 2464DEFAULT: 0 bytes
934b03fc 2465LOC: Config.tcpRcvBufsz
2466DOC_START
2467 Size of receive buffer to set for TCP sockets. Probably just
2468 as easy to change your kernel's default. Set to zero to use
2469 the default buffer size.
934b03fc 2470DOC_END
2471
934b03fc 2472NAME: err_html_text
f1dc9b30 2473TYPE: eol
2474LOC: Config.errHtmlText
2475DEFAULT: none
934b03fc 2476DOC_START
2477 HTML text to include in error messages. Make this a "mailto"
2478 URL to your admin address, or maybe just a link to your
2479 organizations Web page.
2480
ab1e6b8a 2481 To include this in your error messages, you must rewrite
2482 the error template files (found in the "errors" directory).
2483 Wherever you want the 'err_html_text' line to appear,
2484 insert a %L tag in the error template file.
934b03fc 2485DOC_END
2486
2487
2488NAME: deny_info
2489TYPE: denyinfo
2490LOC: Config.denyInfoList
f1dc9b30 2491DEFAULT: none
934b03fc 2492DOC_START
02922e76 2493 Usage: deny_info err_page_name acl
2494 Example: deny_info ERR_CUSTOM_ACCESS_DENIED bad_guys
934b03fc 2495
02922e76 2496 This can be used to return a ERR_ page for requests which
934b03fc 2497 do not pass the 'http_access' rules. A single ACL will cause
2498 the http_access check to fail. If a 'deny_info' line exists
02922e76 2499 for that ACL then Squid returns a corresponding error page.
cf5cc17e 2500
02922e76 2501 You may use ERR_ pages that come with Squid or create your own pages
2502 and put them into the configured errors/ directory.
934b03fc 2503DOC_END
2504
934b03fc 2505NAME: memory_pools
2506COMMENT: on|off
2507TYPE: onoff
f1dc9b30 2508DEFAULT: on
3f6c0fb2 2509LOC: Config.onoff.mem_pools
934b03fc 2510DOC_START
2511 If set, Squid will keep pools of allocated (but unused) memory
2512 available for future use. If memory is a premium on your
96d88dcb 2513 system and you believe your malloc library outperforms Squid
d0d41f07 2514 routines, disable this.
934b03fc 2515DOC_END
2516
7021844c 2517NAME: memory_pools_limit
2518COMMENT: (bytes)
2519TYPE: b_size_t
2520DEFAULT: none
f12c295b 2521LOC: Config.MemPools.limit
7021844c 2522DOC_START
f12c295b 2523 Used only with memory_pools on:
2524 memory_pools_limit 50 MB
7021844c 2525
f12c295b 2526 If set to a non-zero value, Squid will keep at most the specified
2527 limit of allocated (but unused) memory in memory pools. All free()
2528 requests that exceed this limit will be handled by your malloc
2529 library. Squid does not pre-allocate any memory, just safe-keeps
2530 objects that otherwise would be free()d. Thus, it is safe to set
7021844c 2531 memory_pools_limit to a reasonably high value even if your
f12c295b 2532 configuration will use less memory.
2533
2534 If not set (default) or set to zero, Squid will keep all memory it
2535 can. That is, there will be no limit on the total amount of memory
2536 used for safe-keeping.
7021844c 2537
2538 To disable memory allocation optimization, do not set
2539 memory_pools_limit to 0. Set memory_pools to "off" instead.
2540
f12c295b 2541 An overhead for maintaining memory pools is not taken into account
2542 when the limit is checked. This overhead is close to four bytes per
2543 object kept. However, pools may actually _save_ memory because of
2544 reduced memory thrashing in your malloc library.
7021844c 2545DOC_END
2546
934b03fc 2547NAME: forwarded_for
2548COMMENT: on|off
2549TYPE: onoff
f1dc9b30 2550DEFAULT: on
934b03fc 2551LOC: opt_forwarded_for
2552DOC_START
2553 If set, Squid will include your system's IP address or name
2554 in the HTTP requests it forwards. By default it looks like
2555 this:
2556
2557 X-Forwarded-For: 192.1.2.3
2558
2559 If you disable this, it will appear as
2560
2561 X-Forwarded-For: unknown
934b03fc 2562DOC_END
2563
2564NAME: log_icp_queries
2565COMMENT: on|off
2566TYPE: onoff
f1dc9b30 2567DEFAULT: on
17a0a4ee 2568LOC: Config.onoff.log_udp
934b03fc 2569DOC_START
cf5cc17e 2570 If set, ICP queries are logged to access.log. You may wish
2571 do disable this if your ICP load is VERY high to speed things
2572 up or to simplify log analysis.
934b03fc 2573DOC_END
2574
88738790 2575NAME: icp_hit_stale
2576COMMENT: on|off
2577TYPE: onoff
2578DEFAULT: off
17a0a4ee 2579LOC: Config.onoff.icp_hit_stale
88738790 2580DOC_START
2581 If you want to return ICP_HIT for stale cache objects, set this
2582 option to 'on'. If you have sibling relationships with caches
2583 in other administrative domains, this should be 'off'. If you only
2584 have sibling relationships with caches under your control, then
2585 it is probably okay to set this to 'on'.
88738790 2586DOC_END
2587
934b03fc 2588
2589NAME: minimum_direct_hops
2590TYPE: int
2591DEFAULT: 4
2592LOC: Config.minDirectHops
2593DOC_START
2594 If using the ICMP pinging stuff, do direct fetches for sites
2595 which are no more than this many hops away.
934b03fc 2596DOC_END
2597
5f84d830 2598NAME: minimum_direct_rtt
2599TYPE: int
2600DEFAULT: 400
2601LOC: Config.minDirectRtt
2602DOC_START
2603 If using the ICMP pinging stuff, do direct fetches for sites
2604 which are no more than this many rtt milliseconds away.
2605DOC_END
934b03fc 2606
2607NAME: cachemgr_passwd
2608TYPE: cachemgrpasswd
86101e40 2609DEFAULT: none
f1dc9b30 2610LOC: Config.passwd_list
934b03fc 2611DOC_START
2612 Specify passwords for cachemgr operations.
2613
2614 Usage: cachemgr_passwd password action action ...
2615
064a674d 2616 Some valid actions are (see cache manager menu for a full list):
2617 5min
2618 60min
2619 asndb
2620 authenticator
2621 cbdata
2622 client_list
2623 comm_incoming
2624 config *
2625 counters
2626 delay
2627 digest_stats
cf5cc17e 2628 dns
064a674d 2629 events
cf5cc17e 2630 filedescriptors
064a674d 2631 fqdncache
2632 histograms
2633 http_headers
2634 info
2635 io
2636 ipcache
2637 mem
2638 menu
cf5cc17e 2639 netdb
064a674d 2640 non_peers
2641 objects
2642 pconn
2643 peer_select
2644 redirector
2645 refresh
934b03fc 2646 server_list
064a674d 2647 shutdown *
2648 store_digest
2649 storedir
2650 utilization
2651 via_headers
2652 vm_objects
934b03fc 2653
2654 * Indicates actions which will not be performed without a
2655 valid password, others can be performed if not listed here.
2656
2657 To disable an action, set the password to "disable".
2658 To allow performing an action without a password, set the
2659 password to "none".
2660
2661 Use the keyword "all" to set the same password for all actions.
2662
6b53c392 2663Example:
2664 cachemgr_passwd secret shutdown
2665 cachemgr_passwd lesssssssecret info stats/objects
2666 cachemgr_passwd disable all
934b03fc 2667DOC_END
2668
934b03fc 2669NAME: store_avg_object_size
86101e40 2670COMMENT: (kbytes)
2671TYPE: kb_size_t
2bf99296 2672DEFAULT: 13 KB
934b03fc 2673LOC: Config.Store.avgObjectSize
2674DOC_START
2675 Average object size, used to estimate number of objects your
2676 cache can hold. See doc/Release-Notes-1.1.txt. The default is
2bf99296 2677 13 KB.
934b03fc 2678DOC_END
2679
2680NAME: store_objects_per_bucket
2681TYPE: int
baf144ad 2682DEFAULT: 20
934b03fc 2683LOC: Config.Store.objectsPerBucket
2684DOC_START
2685 Target number of objects per bucket in the store hash table.
2686 Lowering this value increases the total number of buckets and
7e3ce7b9 2687 also the storage maintenance rate. The default is 50.
934b03fc 2688DOC_END
2689
934b03fc 2690NAME: client_db
2691COMMENT: on|off
2692TYPE: onoff
f1dc9b30 2693DEFAULT: on
17a0a4ee 2694LOC: Config.onoff.client_db
934b03fc 2695DOC_START
2696 If you want to disable collecting per-client statistics, then
2697 turn off client_db here.
934b03fc 2698DOC_END
2699
2700
2701NAME: netdb_low
2702TYPE: int
2703DEFAULT: 900
2704LOC: Config.Netdb.low
2705DOC_NONE
2706
2707NAME: netdb_high
2708TYPE: int
2709DEFAULT: 1000
2710LOC: Config.Netdb.high
2711DOC_START
2712 The low and high water marks for the ICMP measurement
2713 database. These are counts, not percents. The defaults are
2714 900 and 1000. When the high water mark is reached, database
2715 entries will be deleted until the low mark is reached.
934b03fc 2716DOC_END
2717
2718
2719NAME: netdb_ping_period
f1dc9b30 2720TYPE: time_t
934b03fc 2721LOC: Config.Netdb.period
9e975e4e 2722DEFAULT: 5 minutes
934b03fc 2723DOC_START
2724 The minimum period for measuring a site. There will be at
2725 least this much delay between successive pings to the same
2726 network. The default is five minutes.
934b03fc 2727DOC_END
2728
2729
2730NAME: query_icmp
2731COMMENT: on|off
2732TYPE: onoff
f1dc9b30 2733DEFAULT: off
17a0a4ee 2734LOC: Config.onoff.query_icmp
934b03fc 2735DOC_START
2736 If you want to ask your peers to include ICMP data in their ICP
2737 replies, enable this option.
2738
cf5cc17e 2739 If your peer has configured Squid (during compilation) with
2740 '--enable-icmp' then that peer will send ICMP pings to origin server
2741 sites of the URLs it receives. If you enable this option then the
2742 ICP replies from that peer will include the ICMP data (if available).
2743 Then, when choosing a parent cache, Squid will choose the parent with
934b03fc 2744 the minimal RTT to the origin server. When this happens, the
2745 hierarchy field of the access.log will be
2746 "CLOSEST_PARENT_MISS". This option is off by default.
934b03fc 2747DOC_END
2748
88500f96 2749NAME: test_reachability
194dd3b8 2750COMMENT: on|off
2751TYPE: onoff
2752DEFAULT: off
2753LOC: Config.onoff.test_reachability
2754DOC_START
2755 When this is 'on', ICP MISS replies will be ICP_MISS_NOFETCH
2756 instead of ICP_MISS if the target host is NOT in the ICMP
2757 database, or has a zero RTT.
194dd3b8 2758DOC_END
2759
78f1250a 2760NAME: buffered_logs
2761COMMENT: on|off
2762TYPE: onoff
2763DEFAULT: off
17a0a4ee 2764LOC: Config.onoff.buffered_logs
78f1250a 2765DOC_START
2766 Some log files (cache.log, useragent.log) are written with
2767 stdio functions, and as such they can be buffered or
cf5cc17e 2768 unbuffered. By default they will be unbuffered. Buffering them
2769 can speed up the writing slightly (though you are unlikely to
2770 need to worry).
78f1250a 2771DOC_END
2772
465dc415 2773NAME: reload_into_ims
9f60cfdf 2774IFDEF: HTTP_VIOLATIONS
465dc415 2775COMMENT: on|off
2776TYPE: onoff
2777DEFAULT: off
2778LOC: Config.onoff.reload_into_ims
2779DOC_START
2780 When you enable this option, client no-cache or ``reload''
2781 requests will be changed to If-Modified-Since requests.
2782 Doing this VIOLATES the HTTP standard. Enabling this
2783 feature could make you liable for problems which it
2784 causes.
cbe3a719 2785
2786 see also refresh_pattern for a more selective approach.
2787
6b8e7481 2788 This option may be disabled by using --disable-http-violations
2789 with the configure script.
465dc415 2790DOC_END
2791
934b03fc 2792NAME: always_direct
2793TYPE: acl_access
2794LOC: Config.accessList.AlwaysDirect
f1dc9b30 2795DEFAULT: none
934b03fc 2796DOC_START
2a78fa67 2797 Usage: always_direct allow|deny [!]aclname ...
2798
2799 Here you can use ACL elements to specify requests which should
3445a83a 2800 ALWAYS be forwarded directly to origin servers. For example,
2801 to always directly forward requests for local servers use
2a78fa67 2802 something like:
2803
2804 acl local-servers dstdomain my.domain.net
2805 always_direct allow local-servers
2806
2807 To always forward FTP requests directly, use
2808
2809 acl FTP proto FTP
2810 always_direct allow FTP
2811
2812 NOTE: There is a similar, but opposite option named
2813 'never_direct'. You need to be aware that "always_direct deny
2814 foo" is NOT the same thing as "never_direct allow foo". You
2815 may need to use a deny rule to exclude a more-specific case of
2816 some other rule. Example:
2817
2818 acl local-external dstdomain external.foo.net
2819 acl local-servers dstdomain foo.net
2820 always_direct deny local-external
2821 always_direct allow local-servers
3445a83a 2822
2823 This option replaces some v1.1 options such as local_domain
2824 and local_ip.
934b03fc 2825DOC_END
2826
2827NAME: never_direct
2828TYPE: acl_access
2829LOC: Config.accessList.NeverDirect
f1dc9b30 2830DEFAULT: none
934b03fc 2831DOC_START
d0d41f07 2832 Usage: never_direct allow|deny [!]aclname ...
2a78fa67 2833
2834 never_direct is the opposite of always_direct. Please read
2835 the description for always_direct if you have not already.
934b03fc 2836
2a78fa67 2837 With 'never_direct' you can use ACL elements to specify
2838 requests which should NEVER be forwarded directly to origin
3445a83a 2839 servers. For example, to force the use of a proxy for all
2840 requests, except those in your local domain use something like:
2a78fa67 2841
3445a83a 2842 acl local-servers dstdomain foo.net
2a78fa67 2843 acl all src 0.0.0.0/0.0.0.0
d0d41f07 2844 never_direct deny local-servers
2845 never_direct allow all
3445a83a 2846
2847 or if squid is inside a firewall and there is local intranet
2848 servers inside the firewall then use something like:
2849
2850 acl local-intranet dstdomain foo.net
2851 acl local-external dstdomain external.foo.net
2852 always_direct deny local-external
2853 always_direct allow local-intranet
2854 never_direct allow all
2855
2856 This option replaces some v1.1 options such as inside_firewall
2857 and firewall_ip.
2a78fa67 2858DOC_END
934b03fc 2859
6bccf575 2860NAME: header_access
2861TYPE: http_header_access[]
2862LOC: Config.header_access
97474590 2863DEFAULT: none
2864DOC_START
6bccf575 2865 Usage: header_access header_name allow|deny [!]aclname ...
96d88dcb 2866
6bccf575 2867 This option replaces the old 'anonymize_headers' and the
2868 older 'http_anonymizer' option with something that is much
2869 more configurable. This new method creates a list of ACLs
2870 for each header, allowing you very fine-tuned header
2871 mangling.
2872
2873 You can only specify known headers for the header name.
2874 Other headers are reclassified as 'Other'. You can also
2875 refer to all the headers with 'All'.
96d88dcb 2876
6bccf575 2877 For example, to achieve the same behaviour as the old
5bcad01d 2878 'http_anonymizer standard' option, you should use:
96d88dcb 2879
6bccf575 2880 header_access From deny all
2881 header_access Referer deny all
2882 header_access Server deny all
2883 header_access User-Agent deny all
2884 header_access WWW-Authenticate deny all
2885 header_access Link deny all
97474590 2886
5bcad01d 2887 Or, to reproduce the old 'http_anonymizer paranoid' feature
2888 you should use:
96d88dcb 2889
6bccf575 2890 header_access Allow allow all
2891 header_access Authorization allow all
2892 header_access Cache-Control allow all
2893 header_access Content-Encoding allow all
2894 header_access Content-Length allow all
2895 header_access Content-Type allow all
2896 header_access Date allow all
2897 header_access Expires allow all
2898 header_access Host allow all
2899 header_access If-Modified-Since allow all
2900 header_access Last-Modified allow all
2901 header_access Location allow all
2902 header_access Pragma allow all
2903 header_access Accept allow all
2904 header_access Charset allow all
2905 header_access Accept-Encoding allow all
2906 header_access Accept-Language allow all
2907 header_access Content-Language allow all
2908 header_access Mime-Version allow all
2909 header_access Retry-After allow all
2910 header_access Title allow all
2911 header_access Connection allow all
2912 header_access Proxy-Connection allow all
2913 header_access All deny all
96d88dcb 2914
5bcad01d 2915 By default, all headers are allowed (no anonymizing is
2916 performed).
97474590 2917DOC_END
2918
6bccf575 2919NAME: header_replace
2920TYPE: http_header_replace[]
2921LOC: Config.header_access
88738790 2922DEFAULT: none
2923DOC_START
6bccf575 2924 Usage: header_replace header_name message
2925 Example: header_replace User-Agent Nutscrape/1.0 (CP/M; 8-bit)
96d88dcb 2926
6bccf575 2927 This option allows you to change the contents of headers
2928 denied with header_access above, by replacing them with
2929 some fixed string. This replaces the old fake_user_agent
2930 option.
96d88dcb 2931
6bccf575 2932 By default, headers are removed if denied.
88738790 2933DOC_END
2934
365cb147 2935NAME: icon_directory
f0b19334 2936TYPE: string
365cb147 2937LOC: Config.icons.directory
2938DEFAULT: @DEFAULT_ICON_DIR@
2939DOC_START
cf5cc17e 2940 Where the icons are stored. These are normally kept in
2941 @DEFAULT_ICON_DIR@
365cb147 2942DOC_END
2943
cf5cc17e 2944NAME: error_directory
365cb147 2945TYPE: string
cf5cc17e 2946LOC: Config.errorDirectory
2947DEFAULT: @DEFAULT_ERROR_DIR@
365cb147 2948DOC_START
cf5cc17e 2949 If you wish to create your own versions of the default
efd900cb 2950 (English) error files, either to customize them to suit your
2951 language or company copy the template English files to another
cf5cc17e 2952 directory and point this tag at them.
365cb147 2953DOC_END
88738790 2954
22c653cd 2955NAME: minimum_retry_timeout
2956COMMENT: (seconds)
2957TYPE: time_t
2958LOC: Config.retry.timeout
2959DEFAULT: 5 seconds
2960DOC_START
2961 This specifies the minimum connect timeout, for when the
2962 connect timeout is reduced to compensate for the availability
2963 of multiple IP addresses.
2964
cf5cc17e 2965 When a connection to a host is initiated, and that host has
2966 several IP addresses, the default connection timeout is reduced
2967 by dividing it by the number of addresses. So, a site with 15
2968 addresses would then have a timeout of 8 seconds for each
2969 address attempted. To avoid having the timeout reduced to the
2970 point where even a working host would not have a chance to
2971 respond, this setting is provided. The default, and the
2972 minimum value, is five seconds, and the maximum value is sixty
2973 seconds, or half of connect_timeout, whichever is greater and
2974 less than connect_timeout.
22c653cd 2975DOC_END
2976
2977NAME: maximum_single_addr_tries
2978TYPE: int
2979LOC: Config.retry.maxtries
2980DEFAULT: 3
2981DOC_START
2982 This sets the maximum number of connection attempts for a
2983 host that only has one address (for multiple-address hosts,
2984 each address is tried once).
2985
2986 The default value is three tries, the (not recommended)
2987 maximum is 255 tries. A warning message will be generated
2988 if it is set to a value greater than ten.
22c653cd 2989DOC_END
6d1c0d53 2990
a97cfa48 2991NAME: snmp_port
2992TYPE: ushort
2993LOC: Config.Port.snmp
2994DEFAULT: 3401
1df370e3 2995IFDEF: SQUID_SNMP
a97cfa48 2996DOC_START
cf5cc17e 2997 Squid can now serve statistics and status information via SNMP.
2998 By default it listens to port 3401 on the machine. If you don't
9bc73deb 2999 wish to use SNMP, set this to "0".
cf5cc17e 3000
3001 NOTE: SNMP support requires use the --enable-snmp configure
3002 command line option.
a97cfa48 3003DOC_END
3004
dba79ac5 3005NAME: snmp_access
3006TYPE: acl_access
3007LOC: Config.accessList.snmp
a97cfa48 3008DEFAULT: none
6502682e 3009DEFAULT_IF_NONE: deny all
1df370e3 3010IFDEF: SQUID_SNMP
a97cfa48 3011DOC_START
dba79ac5 3012 Allowing or denying access to the SNMP port.
08f6b5e0 3013
3014 All access to the agent is denied by default.
dba79ac5 3015 usage:
4feb7b2e 3016
dba79ac5 3017 snmp_access allow|deny [!]aclname ...
08f6b5e0 3018
3019Example:
6b53c392 3020 snmp_access allow snmppublic localhost
3021 snmp_access deny all
bdf18524 3022DOC_END
3023
15dcc168 3024NAME: snmp_incoming_address
3025TYPE: address
1ecaa0a0 3026LOC: Config.Addrs.snmp_incoming
15dcc168 3027DEFAULT: 0.0.0.0
3028IFDEF: SQUID_SNMP
3029DOC_NONE
3030NAME: snmp_outgoing_address
3031TYPE: address
3032LOC: Config.Addrs.snmp_outgoing
3033DEFAULT: 255.255.255.255
3034IFDEF: SQUID_SNMP
3035DOC_START
3036 Just like 'udp_incoming_address' above, but for the SNMP port.
3037
3038 snmp_incoming_address is used for the SNMP socket receiving
3039 messages from SNMP agents.
3040 snmp_outgoing_address is used for SNMP packets returned to SNMP
3041 agents.
3042
6b53c392 3043 The default snmp_incoming_address (0.0.0.0) is to listen on all
3044 available network interfaces.
15dcc168 3045
6b53c392 3046 If snmp_outgoing_address is set to 255.255.255.255 (the default)
3047 then it will use the same socket as snmp_incoming_address. Only
3048 change this if you want to have SNMP replies sent using another
3049 address than where this Squid listens for SNMP queries.
15dcc168 3050
6b53c392 3051 NOTE, snmp_incoming_address and snmp_outgoing_address can not have
3052 the same value since they both use port 3401.
15dcc168 3053DOC_END
bdf18524 3054
53ad48e6 3055NAME: as_whois_server
3056TYPE: string
3057LOC: Config.as_whois_server
3058DEFAULT: whois.ra.net
3059DEFAULT_IF_NONE: whois.ra.net
3060DOC_START
cf5cc17e 3061 WHOIS server to query for AS numbers. NOTE: AS numbers are
3062 queried only when Squid starts up, not for every request.
53ad48e6 3063DOC_END
95e36d02 3064
320e9f36 3065NAME: wccp_router
3066TYPE: address
3067LOC: Config.Wccp.router
3068DEFAULT: 0.0.0.0
eb824054 3069IFDEF: USE_WCCP
320e9f36 3070DOC_START
efd900cb 3071 Use this option to define your WCCP ``home'' router for
3072 Squid. Setting the 'wccp_router' to 0.0.0.0 (the default)
3073 disables WCCP.
320e9f36 3074DOC_END
3075
d20b1cd0 3076NAME: wccp_version
3077TYPE: int
3078LOC: Config.Wccp.version
3079DEFAULT: 4
3080IFDEF: USE_WCCP
3081DOC_START
3082 According to some users, Cisco IOS 11.2 only supports WCCP
3083 version 3. If you're using that version of IOS, change
3084 this value to 3.
3085DOC_END
3086
320e9f36 3087NAME: wccp_incoming_address
3088TYPE: address
eb824054 3089LOC: Config.Wccp.incoming
320e9f36 3090DEFAULT: 0.0.0.0
eb824054 3091IFDEF: USE_WCCP
320e9f36 3092DOC_NONE
3093NAME: wccp_outgoing_address
3094TYPE: address
eb824054 3095LOC: Config.Wccp.outgoing
320e9f36 3096DEFAULT: 255.255.255.255
eb824054 3097IFDEF: USE_WCCP
320e9f36 3098DOC_START
efd900cb 3099 wccp_incoming_address Use this option if you require WCCP
3100 messages to be received on only one
3101 interface. Do NOT use this option if
3102 you're unsure how many interfaces you
3103 have, or if you know you have only one
3104 interface.
320e9f36 3105
efd900cb 3106 wccp_outgoing_address Use this option if you require WCCP
3107 messages to be sent out on only one
3108 interface. Do NOT use this option if
3109 you're unsure how many interfaces you
3110 have, or if you know you have only one
3111 interface.
320e9f36 3112
efd900cb 3113 The default behavior is to not bind to any specific address.
320e9f36 3114
3115 NOTE, wccp_incoming_address and wccp_outgoing_address can not have
3116 the same value since they both use port 2048.
320e9f36 3117DOC_END
3118
3119
95e36d02 3120COMMENT_START
3121 DELAY POOL PARAMETERS (all require DELAY_POOLS compilation option)
3122 -----------------------------------------------------------------------------
95e36d02 3123COMMENT_END
3124
59715b38 3125NAME: delay_pools
3126TYPE: delay_pool_count
3127DEFAULT: 0
95e36d02 3128IFDEF: DELAY_POOLS
59715b38 3129LOC: Config.Delay
95e36d02 3130DOC_START
59715b38 3131 This represents the number of delay pools to be used. For example,
3132 if you have one class 2 delay pool and one class 3 delays pool, you
3133 have a total of 2 delay pools.
3134
6b8e7481 3135 To enable this option, you must use --enable-delay-pools with the
3136 configure script.
95e36d02 3137DOC_END
3138
59715b38 3139NAME: delay_class
3140TYPE: delay_pool_class
95e36d02 3141DEFAULT: none
3142IFDEF: DELAY_POOLS
59715b38 3143LOC: Config.Delay
95e36d02 3144DOC_START
59715b38 3145 This defines the class of each delay pool. There must be exactly one
3146 delay_class line for each delay pool. For example, to define two
3147 delay pools, one of class 2 and one of class 3, the settings above
3148 and here would be:
3149
6b53c392 3150Example:
3151 delay_pools 2 # 2 delay pools
3152 delay_class 1 2 # pool 1 is a class 2 pool
3153 delay_class 2 3 # pool 2 is a class 3 pool
59715b38 3154
3155 The delay pool classes are:
3156
3157 class 1 Everything is limited by a single aggregate
3158 bucket.
3159
3160 class 2 Everything is limited by a single aggregate
3161 bucket as well as an "individual" bucket chosen
3162 from bits 25 through 32 of the IP address.
3163
3164 class 3 Everything is limited by a single aggregate
3165 bucket as well as a "network" bucket chosen
3166 from bits 17 through 24 of the IP address and a
3167 "individual" bucket chosen from bits 17 through
3168 32 of the IP address.
3169
3170 NOTE: If an IP address is a.b.c.d
3171 -> bits 25 through 32 are "d"
3172 -> bits 17 through 24 are "c"
3173 -> bits 17 through 32 are "c * 256 + d"
95e36d02 3174DOC_END
3175
59715b38 3176NAME: delay_access
3177TYPE: delay_pool_access
95e36d02 3178DEFAULT: none
3179IFDEF: DELAY_POOLS
59715b38 3180LOC: Config.Delay
95e36d02 3181DOC_START
59715b38 3182 This is used to determine which delay pool a request falls into.
efd900cb 3183 The first matched delay pool is always used, i.e., if a request falls
59715b38 3184 into delay pool number one, no more delay are checked, otherwise the
3185 rest are checked in order of their delay pool number until they have
3186 all been checked. For example, if you want some_big_clients in delay
3187 pool 1 and lotsa_little_clients in delay pool 2:
95e36d02 3188
6b53c392 3189Example:
3190 delay_access 1 allow some_big_clients
3191 delay_access 1 deny all
3192 delay_access 2 allow lotsa_little_clients
3193 delay_access 2 deny all
95e36d02 3194DOC_END
3195
59715b38 3196NAME: delay_parameters
3197TYPE: delay_pool_rates
3198DEFAULT: none
95e36d02 3199IFDEF: DELAY_POOLS
59715b38 3200LOC: Config.Delay
95e36d02 3201DOC_START
59715b38 3202 This defines the parameters for a delay pool. Each delay pool has
3203 a number of "buckets" associated with it, as explained in the
3204 description of delay_class. For a class 1 delay pool, the syntax is:
95e36d02 3205
59715b38 3206delay_parameters pool aggregate
95e36d02 3207
59715b38 3208 For a class 2 delay pool:
95e36d02 3209
59715b38 3210delay_parameters pool aggregate individual
95e36d02 3211
59715b38 3212 For a class 3 delay pool:
95e36d02 3213
59715b38 3214delay_parameters pool aggregate network individual
95e36d02 3215
59715b38 3216 The variables here are:
95e36d02 3217
59715b38 3218 pool a pool number - ie, a number between 1 and the
3219 number specified in delay_pools as used in
3220 delay_class lines.
95e36d02 3221
59715b38 3222 aggregate the "delay parameters" for the aggregate bucket
3223 (class 1, 2, 3).
95e36d02 3224
59715b38 3225 individual the "delay parameters" for the individual
3226 buckets (class 2, 3).
3227
3228 network the "delay parameters" for the network buckets
3229 (class 3).
3230
3231 A pair of delay parameters is written restore/maximum, where restore is
3232 the number of bytes (not bits - modem and network speeds are usually
3233 quoted in bits) per second placed into the bucket, and maximum is the
3234 maximum number of bytes which can be in the bucket at any time.
3235
3236 For example, if delay pool number 1 is a class 2 delay pool as in the
3237 above example, and is being used to strictly limit each host to 64kbps
3238 (plus overheads), with no overall limit, the line is:
3239
3240delay_parameters 1 -1/-1 8000/8000
3241
3242 Note that the figure -1 is used to represent "unlimited".
3243
3244 And, if delay pool number 2 is a class 3 delay pool as in the above
3245 example, and you want to limit it to a total of 256kbps (strict limit)
3246 with each 8-bit network permitted 64kbps (strict limit) and each
3247 individual host permitted 4800bps with a bucket maximum size of 64kb
3248 to permit a decent web page to be downloaded at a decent speed
3249 (if the network is not being limited due to overuse) but slow down
3250 large downloads more significantly:
3251
3252delay_parameters 2 32000/32000 8000/8000 600/64000
3253
3254 There must be one delay_parameters line for each delay pool.
95e36d02 3255DOC_END
3256
59715b38 3257NAME: delay_initial_bucket_level
3258COMMENT: (percent, 0-100)
3259TYPE: ushort
3260DEFAULT: 50
95e36d02 3261IFDEF: DELAY_POOLS
59715b38 3262LOC: Config.Delay.initial
95e36d02 3263DOC_START
59715b38 3264 The initial bucket percentage is used to determine how much is put
3265 in each bucket when squid starts, is reconfigured, or first notices
3266 a host accessing it (in class 2 and class 3, individual hosts and
3267 networks only have buckets associated with them once they have been
3268 "seen" by squid).
95e36d02 3269DOC_END
6be2389e 3270
9cd6c6fb 3271NAME: incoming_icp_average
6be2389e 3272TYPE: int
3273DEFAULT: 6
3274LOC: Config.comm_incoming.icp_average
3275DOC_NONE
3276
9cd6c6fb 3277NAME: incoming_http_average
6be2389e 3278TYPE: int
3279DEFAULT: 4
3280LOC: Config.comm_incoming.http_average
3281DOC_NONE
3282
afc28c12 3283NAME: incoming_dns_average
3284TYPE: int
3285DEFAULT: 4
3286LOC: Config.comm_incoming.dns_average
3287DOC_NONE
3288
9cd6c6fb 3289NAME: min_icp_poll_cnt
6be2389e 3290TYPE: int
3291DEFAULT: 8
3292LOC: Config.comm_incoming.icp_min_poll
3293DOC_NONE
3294
afc28c12 3295NAME: min_dns_poll_cnt
3296TYPE: int
3297DEFAULT: 8
3298LOC: Config.comm_incoming.dns_min_poll
3299DOC_NONE
3300
9cd6c6fb 3301NAME: min_http_poll_cnt
6be2389e 3302TYPE: int
3303DEFAULT: 8
3304LOC: Config.comm_incoming.http_min_poll
3305DOC_START
b6a2f15e 3306 Heavy voodoo here. I can't even believe you are reading this.
6be2389e 3307 Are you crazy? Don't even think about adjusting these unless
3308 you understand the algorithms in comm_select.c first!
3309DOC_END
2b4283e4 3310
c5f627c2 3311NAME: max_open_disk_fds
3312TYPE: int
3313LOC: Config.max_open_disk_fds
3314DEFAULT: 0
6b53c392 3315DOC_START
3316 To avoid having disk as the I/O bottleneck Squid can optionally
3317 bypass the on-disk cache if more than this amount of disk file
3318 descriptors are open.
3319
3320 A value of 0 indicates no limit.
3321DOC_END
c5f627c2 3322
b540e168 3323NAME: offline_mode
3324TYPE: onoff
3325LOC: Config.onoff.offline
3326DEFAULT: off
3327DOC_START
3328 Enable this option and Squid will never try to validate cached
3329 objects.
3330DOC_END
3331
d548ee64 3332NAME: uri_whitespace
3333TYPE: uri_whitespace
3334LOC: Config.uri_whitespace
7e3ce7b9 3335DEFAULT: strip
d548ee64 3336DOC_START
3337 What to do with requests that have whitespace characters in the
3338 URI. Options:
3339
7e3ce7b9 3340 strip: The whitespace characters are stripped out of the URL.
3341 This is the behavior recommended by RFC2616.
d548ee64 3342 deny: The request is denied. The user receives an "Invalid
3343 Request" message.
3344 allow: The request is allowed and the URI is not changed. The
3345 whitespace characters remain in the URI. Note the
3346 whitespace is passed to redirector processes if they
3347 are in use.
3348 encode: The request is allowed and the whitespace characters are
3349 encoded according to RFC1738. This could be considered
3350 a violation of the HTTP/1.1
3351 RFC because proxies are not allowed to rewrite URI's.
3352 chop: The request is allowed and the URI is chopped at the
3353 first whitespace. This might also be considered a
3354 violation.
d548ee64 3355DOC_END
3356
376bb137 3357NAME: broken_posts
3358TYPE: acl_access
3359DEFAULT: none
3360LOC: Config.accessList.brokenPosts
c68e9c6b 3361DOC_START
376bb137 3362 A list of ACL elements which, if matched, causes Squid to send
3363 a extra CRLF pair after the body of a PUT/POST request.
3364
3365 Some HTTP servers has broken implementations of PUT/POST,
3366 and rely on a extra CRLF pair sent by some WWW clients.
3367
3368 Quote from RFC 2068 section 4.1 on this matter:
3369
3370 Note: certain buggy HTTP/1.0 client implementations generate an
3371 extra CRLF's after a POST request. To restate what is explicitly
3372 forbidden by the BNF, an HTTP/1.1 client must not preface or follow
3373 a request with an extra CRLF.
3374
6b53c392 3375Example:
3376 acl buggy_server url_regex ^http://....
3377 broken_posts allow buggy_server
c68e9c6b 3378DOC_END
9b094667 3379
e66d7923 3380NAME: mcast_miss_addr
3381IFDEF: MULTICAST_MISS_STREAM
3382TYPE: address
3383LOC: Config.mcast_miss.addr
3384DEFAULT: 255.255.255.255
b6a2f15e 3385DOC_START
3386 If you enable this option, every "cache miss" URL will
3387 be sent out on the specified multicast address.
3388
3389 Do not enable this option unless you are are absolutely
3390 certain you understand what you are doing.
3391DOC_END
e66d7923 3392
7e3ce7b9 3393NAME: mcast_miss_ttl
3394IFDEF: MULTICAST_MISS_TTL
3395TYPE: ushort
3396LOC: Config.mcast_miss.ttl
3397DEFAULT: 16
3398DOC_START
3399 This is the time-to-live value for packets multicasted
3400 when multicasting off cache miss URLs is enabled. By
3401 default this is set to 'site scope', i.e. 16.
3402DOC_END
3403
e66d7923 3404NAME: mcast_miss_port
3405IFDEF: MULTICAST_MISS_STREAM
3406TYPE: ushort
3407LOC: Config.mcast_miss.port
3408DEFAULT: 3135
b6a2f15e 3409DOC_START
efd900cb 3410 This is the port number to be used in conjunction with
b6a2f15e 3411 'mcast_miss_addr'.
3412DOC_END
e66d7923 3413
3414NAME: mcast_miss_encode_key
3415IFDEF: MULTICAST_MISS_STREAM
3416TYPE: string
3417LOC: Config.mcast_miss.encode_key
3418DEFAULT: XXXXXXXXXXXXXXXX
b6a2f15e 3419DOC_START
3420 The URLs that are sent in the multicast miss stream are
3421 encrypted. This is the encryption key.
3422DOC_END
e66d7923 3423
168dfda9 3424NAME: nonhierarchical_direct
3425TYPE: onoff
3426LOC: Config.onoff.nonhierarchical_direct
3427DEFAULT: on
3428DOC_START
3429 By default, Squid will send any non-hierarchical requests
3430 (matching hierarchy_stoplist or not cachable request type) direct
3431 to origin servers.
3432
3433 If you set this to off, then Squid will prefer to send these
3434 requests to parents.
3435
3436 Note that in most configurations, by turning this off you will only
3437 add latency to these request without any improvement in global hit
3438 ratio.
3439
3440 If you are inside an firewall then see never_direct instead of
3441 this directive.
168dfda9 3442DOC_END
3443
9b094667 3444NAME: prefer_direct
3445TYPE: onoff
3446LOC: Config.onoff.prefer_direct
168dfda9 3447DEFAULT: off
9b094667 3448DOC_START
168dfda9 3449 Normally Squid tries to use parents for most requests. If you by some
3450 reason like it to first try going direct and only use a parent if
3451 going direct fails then set this to off.
3452
3453 By combining nonhierarchical_direct off and prefer_direct on you
3454 can set up Squid to use a parent as a backup path if going direct
3455 fails.
9b094667 3456DOC_END
4d62b0af 3457
bcbc11b0 3458NAME: strip_query_terms
3459TYPE: onoff
3460LOC: Config.onoff.strip_query_terms
3461DEFAULT: on
3462DOC_START
3463 By default, Squid strips query terms from requested URLs before
3464 logging. This protects your user's privacy.
bcbc11b0 3465DOC_END
3466
b6a2f15e 3467NAME: coredump_dir
3468TYPE: string
3469LOC: Config.coredump_dir
3470DEFAULT: none
5ff76111 3471DEFAULT_IF_NONE: none
b6a2f15e 3472DOC_START
5ff76111 3473 By default Squid leaves core files in the directory from where
3474 it was started. If you set 'coredump_dir' to a directory
b6a2f15e 3475 that exists, Squid will chdir() to that directory at startup
3476 and coredump files will be left there.
5ff76111 3477
3478NOCOMMENT_START
3479# Leave coredumps in the first cache dir
3480coredump_dir @DEFAULT_SWAP_DIR@
3481NOCOMMENT_END
b6a2f15e 3482DOC_END
3483
07476a7f 3484NAME: redirector_bypass
3485TYPE: onoff
3486LOC: Config.onoff.redirector_bypass
3487DEFAULT: off
3488DOC_START
3489 When this is 'on', a request will not go through the
3490 redirector if all redirectors are busy. If this is 'off'
3491 and the redirector queue grows too large, Squid will exit
29de1a20 3492 with a FATAL error and ask you to increase the number of
07476a7f 3493 redirectors. You should only enable this if the redirectors
3494 are not critical to your caching system. If you use
3495 redirectors for access control, and you enable this option,
3496 then users may have access to pages that they should not
3497 be allowed to request.
3498DOC_END
3499
9bc73deb 3500NAME: ignore_unknown_nameservers
3501TYPE: onoff
3502LOC: Config.onoff.ignore_unknown_nameservers
3503DEFAULT: on
3504DOC_START
3505 By default Squid checks that DNS responses are received
3506 from the same IP addresses that they are sent to. If they
3507 don't match, Squid ignores the response and writes a warning
3508 message to cache.log. You can allow responses from unknown
3509 nameservers by setting this option to 'off'.
9bc73deb 3510DOC_END
3511
7e3ce7b9 3512NAME: digest_generation
3513IFDEF: USE_CACHE_DIGESTS
3514TYPE: onoff
3515LOC: Config.onoff.digest_generation
3516DEFAULT: on
3517DOC_START
3518 This controls whether the server will generate a Cache Digest
3519 of its contents. By default, Cache Digest generation is
3520 enabled if Squid is compiled with USE_CACHE_DIGESTS defined.
7e3ce7b9 3521DOC_END
3522
3523NAME: digest_bits_per_entry
3524IFDEF: USE_CACHE_DIGESTS
3525TYPE: int
3526LOC: Config.digest.bits_per_entry
3527DEFAULT: 5
3528DOC_START
3529 This is the number of bits of the server's Cache Digest which
3530 will be associated with the Digest entry for a given HTTP
3531 Method and URL (public key) combination. The default is 5.
7e3ce7b9 3532DOC_END
3533
3534NAME: digest_rebuild_period
3535IFDEF: USE_CACHE_DIGESTS
efd900cb 3536COMMENT: (seconds)
3537TYPE: time_t
7e3ce7b9 3538LOC: Config.digest.rebuild_period
efd900cb 3539DEFAULT: 1 hour
7e3ce7b9 3540DOC_START
3541 This is the number of seconds between Cache Digest rebuilds.
7e3ce7b9 3542DOC_END
3543
3544NAME: digest_rewrite_period
efd900cb 3545COMMENT: (seconds)
7e3ce7b9 3546IFDEF: USE_CACHE_DIGESTS
efd900cb 3547TYPE: time_t
7e3ce7b9 3548LOC: Config.digest.rewrite_period
efd900cb 3549DEFAULT: 1 hour
7e3ce7b9 3550DOC_START
3551 This is the number of seconds between Cache Digest writes to
6b53c392 3552 disk.
7e3ce7b9 3553DOC_END
3554
3555NAME: digest_swapout_chunk_size
efd900cb 3556COMMENT: (bytes)
3557TYPE: b_size_t
7e3ce7b9 3558IFDEF: USE_CACHE_DIGESTS
7e3ce7b9 3559LOC: Config.digest.swapout_chunk_size
efd900cb 3560DEFAULT: 4096 bytes
7e3ce7b9 3561DOC_START
3562 This is the number of bytes of the Cache Digest to write to
efd900cb 3563 disk at a time. It defaults to 4096 bytes (4KB), the Squid
3564 default swap page.
7e3ce7b9 3565DOC_END
3566
3567NAME: digest_rebuild_chunk_percentage
efd900cb 3568COMMENT: (percent, 0-100)
7e3ce7b9 3569IFDEF: USE_CACHE_DIGESTS
3570TYPE: int
3571LOC: Config.digest.rebuild_chunk_percentage
3572DEFAULT: 10
3573DOC_START
efd900cb 3574 This is the percentage of the Cache Digest to be scanned at a
3575 time. By default it is set to 10% of the Cache Digest.
7e3ce7b9 3576DOC_END
3577
efd900cb 3578NAME: chroot
3579TYPE: string
3580LOC: Config.chroot_dir
3581DEFAULT: none
3582DOC_START
3583 Use this to have Squid do a chroot() while initializing. This
3584 also causes Squid to fully drop root privileges after
3585 initializing. This means, for example, that if you use a HTTP
3586 port less than 1024 and try to reconfigure, you will get an
3587 error.
3588DOC_END
efd900cb 3589
3590NAME: client_persistent_connections
3591TYPE: onoff
3592LOC: Config.onoff.client_pconns
3593DEFAULT: on
3594DOC_NONE
3595
3596NAME: server_persistent_connections
3597TYPE: onoff
3598LOC: Config.onoff.server_pconns
3599DEFAULT: on
3600DOC_START
3601 Persistent connection support for clients and servers. By
3602 default, Squid uses persistent connections (when allowed)
3603 with its clients and servers. You can use these options to
3604 disable persistent connections with clients and/or servers.
efd900cb 3605DOC_END
9d24d603 3606
3d15e2d7 3607NAME: pipeline_prefetch
3608TYPE: onoff
3609LOC: Config.onoff.pipeline_prefetch
3610DEFAULT: on
3611DOC_START
3612 To boost the performance of pipelined requests to closer
3613 match that of a non-proxied environment Squid tries to fetch
3614 up to two requests in parallell from a pipeline.
3615DOC_END
3616
56fe752e 3617NAME: extension_methods
3618TYPE: wordlist
3619LOC: Config.ext_methods
3620DEFAULT: none
3621DOC_START
3622 Squid only knows about standardized HTTP request methods.
3623 You can add up to 20 additional "extension" methods here.
3624DOC_END
3625
b8a46de0 3626NAME: high_response_time_warning
3627TYPE: int
3628COMMENT: (msec)
3629LOC: Config.warnings.high_rptm
3630DEFAULT: 0
3631DOC_START
3632 If the one-minute median response time exceeds this value,
3633 Squid prints a WARNING with debug level 0 to get the
3634 administrators attention. The value is in milliseconds.
3635DOC_END
3636
3637NAME: high_page_fault_warning
3638TYPE: int
3639LOC: Config.warnings.high_pf
3640DEFAULT: 0
3641DOC_START
3642 If the one-minute average page fault rate exceeds this
3643 value, Squid prints a WARNING with debug level 0 to get
3644 the administrators attention. The value is in page faults
3645 per second.
3646DOC_END
3647
3648NAME: high_memory_warning
3649TYPE: b_size_t
3650LOC: Config.warnings.high_memory
3651DEFAULT: 0
3652DOC_START
3653 If the memory usage (as determined by mallinfo) exceeds
3654 value, Squid prints a WARNING with debug level 0 to get
3655 the administrators attention.
3656DOC_END
3657
65a53c8e 3658NAME: store_dir_select_algorithm
3659TYPE: string
3660LOC: Config.store_dir_select_algorithm
3661DEFAULT: least-load
3662DOC_START
3663 Set this to 'round-robin' as an alternative.
3664DOC_END
3665
225644d7 3666NAME: forward_log
3667IFDEF: WIP_FWD_LOG
3668TYPE: string
3669DEFAULT: none
3670LOC: Config.Log.forward
3671DOC_START
3672 Logs the server-side requests.
3673
3674 This is currently work in progress.
3675DOC_END
3676
7613d09c 3677NAME: ie_refresh
3678COMMENT: on|off
3679TYPE: onoff
3680LOC: Config.onoff.ie_refresh
3681DEFAULT: off
3682DOC_START
3683 Microsoft Internet Explorer up until version 5.5 Service
3684 Pack 1 has an issue with transparent proxies, wherein it
3685 is impossible to force a refresh. Turning this on provides
3686 a partial fix to the problem, by causing all IMS-REFRESH
3687 requests from older IE versions to check the origin server
3688 for fresh content. This reduces hit ratio by some amount
3689 (~10% in my experience), but allows users to actually get
3690 fresh content when they want it. Note that because Squid
3691 cannot tell if the user is using 5.5 or 5.5SP1, the behavior
3692 of 5.5 is unchanged from old versions of Squid (i.e. a
3693 forced refresh is impossible). Newer versions of IE will,
3694 hopefully, continue to have the new behavior and will be
3695 handled based on that assumption. This option defaults to
3696 the old Squid behavior, which is better for hit ratios but
3697 worse for clients using IE, if they need to be able to
3698 force fresh content.
3699DOC_END
3700
f66a9ef4 3701NAME: vary_ignore_expire
3702COMMENT: on|off
3703TYPE: onoff
3704LOC: Config.onoff.vary_ignore_expire
3705DEFAULT: off
3706DOC_START
3707 Many HTTP servers supporting Vary gives such objects
3708 immediate expiry time with no cache-control header
3709 when requested by a HTTP/1.0 client. This option
3710 enables Squid to ignore such expiry times until
3711 HTTP/1.1 is fully implemented.
3712 WARNING: This may eventually cause some varying
3713 objects not intended for caching to get cached.
3714DOC_END
3715
d1ec12c7 3716NAME: sleep_after_fork
3717COMMENT: (microseconds)
3718TYPE: int
3719LOC: Config.sleep_after_fork
3720DEFAULT: 0
3721DOC_START
96d88dcb 3722 When this is set to a non-zero value, the main Squid process
3723 sleeps the specified number of microseconds after a fork()
3724 system call. This sleep may help the situation where your
3725 system reports fork() failures due to lack of (virtual)
3726 memory. Note, however, that if you have a lot of child
3727 processes, then these sleep delays will add up and your
3728 Squid will not service requests for some amount of time
3729 until all the child processes have been started.
d1ec12c7 3730DOC_END
1fbbdcb0 3731
2b4283e4 3732EOF