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