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