]> git.ipfire.org Git - thirdparty/squid.git/blob - doc/release-notes/release-3.0.sgml
Some overlooked cleanup
[thirdparty/squid.git] / doc / release-notes / release-3.0.sgml
1 <!doctype linuxdoc system>
2 <article>
3 <title>Squid 3.0.PRE4 release notes</title>
4 <author>Squid Developers</author>
5 <date>$Id: release-3.0.sgml,v 1.21 2006/06/19 22:52:58 hno Exp $</date>
6
7 <abstract>
8 This document contains the release notes for version 3.0 of Squid.
9 Squid is a WWW Cache application developed by the National Laboratory
10 for Applied Network Research and members of the Web Caching community.
11 </abstract>
12
13 <toc>
14
15 <sect>Notice
16 <p>
17 The Squid Team are pleased to announce the release of Squid-3.0.PRE4 for pre-release testing.
18
19 This new release is available for download from <url url="http://www.squid-cache.org/Versions/v3/3.0/"> or the <url url="http://www.squid-cache.org/Mirrors/http-mirrors.html" name="mirrors">.
20
21 This is the first PRE release since August 2003, and marks a renewed effort to push Squid-3.0 through to STABLE.
22
23 While this release is not deemed ready for production use, we believe it is ready for wider testing by the community
24
25 We welcome feedback and bug reports. If you find a bug, please see <url url="http://www.squid-cache.org/Doc/FAQ/FAQ-11.html#ss11.19"> for how to submit a report with a stack trace.
26
27
28 <sect>Known issues
29 <p>
30 Although this release is deemed good enough for testing in many setups, please note the existence of <url url="http://www.squid-cache.org/bugs/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;target_milestone=3.0&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailtype1=substring&amp;email1=&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=bugs.bug_severity&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=" name="open bugs against Squid-3.0">.
31
32 In particular, ESI may still be too buggy for meaningful testing at this stage.
33
34
35 <sect>Changes since Squid-2.5.STABLE14
36 <sect1>Major new features
37 <p>
38 Squid 3.0 represents a major rewrite of Squid 2.5 and has a large number of new features.
39
40 The most important of these are:
41
42 <itemize>
43 <item>Edge Side Include implementation (www.esi.org)
44 <item>ICAP implementation (www.i-cap.org)
45 <item>Better support for reverse proxy setups. The httpd_accel_* directives are now gone, replaced by http(s)_port options and cache_peer based request forwarding
46 <item>Better support for SSL
47 <item>Better support for external ACLs
48 <item>Finer control over cacheability (refresh_pattern)
49 <item>Custom log formats and the ability to log different requests to different log files
50 </itemize>
51
52 Most user-facing changes are reflected in squid.conf (see below).
53
54 <sect1>Logging changes
55 <sect2>access.log
56 <p>The TCP_REFRESH_HIT and TCP_REFRESH_MISS log types have been replaced because they were misleading (all refreshes need to query the origin server, so they could never be hits). The following log types have been introduced to replace them:
57
58 <descrip>
59 <tag>TCP_REFRESH_UNMODIFIED</tag>
60 <p>The requested object was cached but STALE. The IMS query for the object resulted in "304 not modified".
61 <tag>TCP_REFRESH_MODIFIED</tag>
62 <p>The requested object was cached but STALE. The IMS query returned the new content.
63 </descrip>
64 <p>See <url url="http://www.squid-cache.org/Doc/FAQ/FAQ-6.html#ss6.7"> for a definition of all log types.
65
66
67
68
69 <sect1>Changes to squid.conf
70 <p>
71 There have been many changes to Squid's configuration file since Squid-2.5.
72
73 This section gives a thorough account of those changes in three categories:
74
75 <itemize>
76 <item><ref id="newtags" name="New tags">
77 <item><ref id="modifiedtags" name="Changes to existing tags">
78 <item><ref id="removedtags" name="Removed tags">
79 </itemize>
80
81 <p>
82
83
84
85 <sect2>New tags<label id="newtags">
86
87 <p>
88 <descrip>
89 <tag>ssl_engine</tag>
90 <verb>
91 Default: none
92
93 The openssl engine to use. You will need to set this if you
94 would like to use hardware SSL acceleration for example.
95 </verb>
96 <tag>sslproxy_client_certificate</tag>
97 <verb>
98 Default: none
99
100 Client SSL Certificate to use when proxying https:// URLs
101 </verb>
102 <tag>sslproxy_client_key</tag>
103 <verb>
104 Default: none
105
106 Client SSL Key to use when proxying https:// URLs
107 </verb>
108 <tag>sslproxy_version</tag>
109 <verb>
110 Default: 1
111
112 SSL version level to use when proxying https:// URLs
113 </verb>
114 <tag>sslproxy_options</tag>
115 <verb>
116 Default: none
117
118 SSL engine options to use when proxying https:// URLs
119 </verb>
120 <tag>sslproxy_cipher</tag>
121 <verb>
122 Default: none
123
124 SSL cipher list to use when proxying https:// URLs
125 </verb>
126 <tag>sslproxy_cafile</tag>
127 <verb>
128 Default: none
129
130 file containing CA certificates to use when verifying server
131 certificates while proxying https:// URLs
132 </verb>
133 <tag>sslproxy_capath</tag>
134 <verb>
135 Default: none
136
137 directory containing CA certificates to use when verifying
138 server certificates while proxying https:// URLs
139 </verb>
140 <tag>sslproxy_flags</tag>
141 <verb>
142 Default: none
143
144 Various flags modifying the use of SSL while proxying https:// URLs:
145 DONT_VERIFY_PEER Accept certificates even if they fail to
146 verify.
147 NO_DEFAULT_CA Don't use the default CA list built in
148 to OpenSSL.
149 </verb>
150 <tag>sslpassword_program</tag>
151 <verb>
152 Default: none
153
154 Specify a program used for entering SSL key passphrases
155 when using encrypted SSL certificate keys. If not specified
156 keys must either be unencrypted, or Squid started with the -N
157 option to allow it to query interactively for the passphrase.
158 </verb>
159 <tag>minimum_icp_query_timeout (msec)</tag>
160 <verb>
161 Default: 5
162
163 Normally the ICP query timeout is determined dynamically. But
164 sometimes it can lead to very small timeouts, even lower than
165 the normal latency variance on your link due to traffic.
166 Use this option to put an lower limit on the dynamic timeout
167 value. Do NOT use this option to always use a fixed (instead
168 of a dynamic) timeout value. To set a fixed timeout see the
169 'icp_query_timeout' directive.
170 </verb>
171 <tag>background_ping_rate</tag>
172 <verb>
173 Default: 10 seconds
174
175 Controls how often the ICP pings are sent to siblings that
176 have background-ping set.
177 </verb>
178 <tag>logformat</tag>
179 <verb>
180 Default: none
181
182 Usage:
183
184 logformat <name> <format specification>
185
186 Defines an access log format.
187
188 The <format specification> is a string with embedded % format codes
189
190 % format codes all follow the same basic structure where all but
191 the formatcode is optional. Output strings are automatically escaped
192 as required according to their context and the output format
193 modifiers are usually not needed, but can be specified if an explicit
194 output format is desired.
195
196 % ["|[|'|#] [-] [[0]width] [{argument}] formatcode
197
198 " output in quoted string format
199 [ output in squid text log format as used by log_mime_hdrs
200 # output in URL quoted format
201 ' output as-is
202
203 - left aligned
204 width field width. If starting with 0 the
205 output is zero padded
206 {arg} argument such as header name etc
207
208 Format codes:
209
210 >a Client source IP address
211 >A Client FQDN
212 <A Server IP address or peer name
213 la Local IP address (http_port)
214 lp Local port number (http_port)
215 ts Seconds since epoch
216 tu subsecond time (milliseconds)
217 tl Local time. Optional strftime format argument
218 default %d/%b/%Y:%H:%M:S %z
219 tg GMT time. Optional strftime format argument
220 default %d/%b/%Y:%H:%M:S %z
221 tr Response time (milliseconds)
222 >h Request header. Optional header name argument
223 on the format header[:[separator]element]
224 <h Reply header. Optional header name argument
225 as for >h
226 un User name
227 ul User login
228 ui User ident
229 ue User from external acl
230 Hs HTTP status code
231 Ss Squid request status (TCP_MISS etc)
232 Sh Squid hierarchy status (DEFAULT_PARENT etc)
233 mt MIME content type
234 rm Request method (GET/POST etc)
235 ru Request URL
236 rv Request protocol version
237 et Tag returned by external acl
238 ea Log string returned by external acl
239 <st Reply size including HTTP headers
240 <sH Reply high offset sent
241 <sS Upstream object size
242 % a literal % character
243
244 logformat squid %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt
245 logformat squidmime %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt [%>h] [%<h]
246 logformat common %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st %Ss:%Sh
247 logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh
248 </verb>
249 <tag>check_hostnames on|off</tag>
250 <verb>
251 Default: on
252
253 For security and stability reasons Squid by default checks
254 hostnames for Internet standard RFC compliance. If you do not want
255 Squid to perform these checks turn this directive off.
256 </verb>
257 <tag>url_rewrite_concurrency redirect_concurrency</tag>
258 <verb>
259 Default: 0
260
261 The number of requests each redirector helper can handle in
262 parallell. Defaults to 0 which indicates the redirector
263 is a old-style singlethreaded redirector.
264 </verb>
265 <tag>read_ahead_gap</tag>
266 <verb>
267 Default: 16 KB
268
269 The amount of data the cache will buffer ahead of what has been
270 sent to the client when retrieving an object from another server.
271 </verb>
272 <tag>log_access allow|deny acl acl...</tag>
273 <verb>
274 Default: none
275
276 This options allows you to control which requests gets logged
277 to access.log (see access_log directive). Requests denied for
278 logging will also not be accounted for in performance counters.
279 </verb>
280 <tag>httpd_suppress_version_string on|off</tag>
281 <verb>
282 Default: off
283
284 Suppress Squid version string info in HTTP headers and HTML error pages.
285 </verb>
286 <tag>httpd_accel_surrogate_id</tag>
287 <verb>
288 Default: unset
289
290 Surrogates (http://www.esi.org/architecture_spec_1.0.html)
291 need an identification token to allow control targeting. Because
292 a farm of surrogates may all perform the same tasks, they may share
293 an identification token.
294 </verb>
295 <tag>http_accel_surrogate_remote on|off</tag>
296 <verb>
297 Default: off
298
299 Remote surrogates (such as those in a CDN) honour Surrogate-Control: no-store-remote.
300 Set this to on to have squid behave as a remote surrogate.
301 </verb>
302 <tag>esi_parser libxml2|expat|custom</tag>
303 <verb>
304 Default: custom
305
306 ESI markup is not strictly XML compatible. The custom ESI parser
307 will give higher performance, but cannot handle non ASCII character
308 encodings.
309 </verb>
310 <tag>email_err_data on|off</tag>
311 <verb>
312 Default: on
313
314 If enabled, information about the occurred error will be
315 included in the mailto links of the ERR pages (if %W is set)
316 so that the email body contains the data.
317 Syntax is &lt;A HREF="mailto:%w%W"&gt;%w&lt;/A&gt;
318 </verb>
319 <tag>via on|off</tag>
320 <verb>
321 Default: on
322
323 If set (default), Squid will include a Via header in requests and
324 replies as required by RFC2616.
325 </verb>
326 <tag>refresh_all_ims on|off</tag>
327 <verb>
328 Default: off
329
330 When you enable this option, squid will always check
331 the origin server for an update when a client sends an
332 If-Modified-Since request. Many browsers use IMS
333 requests when the user requests a reload, and this
334 ensures those clients receive the latest version.
335
336 By default (off), squid may return a Not Modified response
337 based on the age of the cached version.
338 </verb>
339 <tag>request_header_access</tag>
340 <verb>
341 Default: none
342
343 Usage: request_header_access header_name allow|deny [!]aclname ...
344
345 WARNING: Doing this VIOLATES the HTTP standard. Enabling
346 this feature could make you liable for problems which it
347 causes.
348
349 This option replaces the old 'anonymize_headers' and the
350 older 'http_anonymizer' option with something that is much
351 more configurable. This new method creates a list of ACLs
352 for each header, allowing you very fine-tuned header
353 mangling.
354
355 This option only applies to request headers, i.e., from the
356 client to the server.
357
358 You can only specify known headers for the header name.
359 Other headers are reclassified as 'Other'. You can also
360 refer to all the headers with 'All'.
361
362 For example, to achieve the same behavior as the old
363 'http_anonymizer standard' option, you should use:
364
365 request_header_access From deny all
366 request_header_access Referer deny all
367 request_header_access Server deny all
368 request_header_access User-Agent deny all
369 request_header_access WWW-Authenticate deny all
370 request_header_access Link deny all
371
372 Or, to reproduce the old 'http_anonymizer paranoid' feature
373 you should use:
374
375 request_header_access Allow allow all
376 request_header_access Authorization allow all
377 request_header_access WWW-Authenticate allow all
378 request_header_access Proxy-Authorization allow all
379 request_header_access Proxy-Authenticate allow all
380 request_header_access Cache-Control allow all
381 request_header_access Content-Encoding allow all
382 request_header_access Content-Length allow all
383 request_header_access Content-Type allow all
384 request_header_access Date allow all
385 request_header_access Expires allow all
386 request_header_access Host allow all
387 request_header_access If-Modified-Since allow all
388 request_header_access Last-Modified allow all
389 request_header_access Location allow all
390 request_header_access Pragma allow all
391 request_header_access Accept allow all
392 request_header_access Accept-Charset allow all
393 request_header_access Accept-Encoding allow all
394 request_header_access Accept-Language allow all
395 request_header_access Content-Language allow all
396 request_header_access Mime-Version allow all
397 request_header_access Retry-After allow all
398 request_header_access Title allow all
399 request_header_access Connection allow all
400 request_header_access Proxy-Connection allow all
401 request_header_access All deny all
402
403 although many of those are HTTP reply headers, and so should be
404 controlled with the reply_header_access directive.
405
406 By default, all headers are allowed (no anonymizing is
407 performed).
408 </verb>
409 <tag>reply_header_access</tag>
410 <verb>
411 Default: none
412
413 Usage: reply_header_access header_name allow|deny [!]aclname ...
414
415 WARNING: Doing this VIOLATES the HTTP standard. Enabling
416 this feature could make you liable for problems which it
417 causes.
418
419 This option only applies to reply headers, i.e., from the
420 server to the client.
421
422 This is the same as request_header_access, but in the other
423 direction.
424
425 This option replaces the old 'anonymize_headers' and the
426 older 'http_anonymizer' option with something that is much
427 more configurable. This new method creates a list of ACLs
428 for each header, allowing you very fine-tuned header
429 mangling.
430
431 You can only specify known headers for the header name.
432 Other headers are reclassified as 'Other'. You can also
433 refer to all the headers with 'All'.
434
435 For example, to achieve the same behavior as the old
436 'http_anonymizer standard' option, you should use:
437
438 reply_header_access From deny all
439 reply_header_access Referer deny all
440 reply_header_access Server deny all
441 reply_header_access User-Agent deny all
442 reply_header_access WWW-Authenticate deny all
443 reply_header_access Link deny all
444
445 Or, to reproduce the old 'http_anonymizer paranoid' feature
446 you should use:
447
448 reply_header_access Allow allow all
449 reply_header_access Authorization allow all
450 reply_header_access WWW-Authenticate allow all
451 reply_header_access Proxy-Authorization allow all
452 reply_header_access Proxy-Authenticate allow all
453 reply_header_access Cache-Control allow all
454 reply_header_access Content-Encoding allow all
455 reply_header_access Content-Length allow all
456 reply_header_access Content-Type allow all
457 reply_header_access Date allow all
458 reply_header_access Expires allow all
459 reply_header_access Host allow all
460 reply_header_access If-Modified-Since allow all
461 reply_header_access Last-Modified allow all
462 reply_header_access Location allow all
463 reply_header_access Pragma allow all
464 reply_header_access Accept allow all
465 reply_header_access Accept-Charset allow all
466 reply_header_access Accept-Encoding allow all
467 reply_header_access Accept-Language allow all
468 reply_header_access Content-Language allow all
469 reply_header_access Mime-Version allow all
470 reply_header_access Retry-After allow all
471 reply_header_access Title allow all
472 reply_header_access Connection allow all
473 reply_header_access Proxy-Connection allow all
474 reply_header_access All deny all
475
476 although the HTTP request headers won't be usefully controlled
477 by this directive -- see request_header_access for details.
478
479 By default, all headers are allowed (no anonymizing is
480 performed).
481 </verb>
482 <tag>minimum_expiry_time</tag>
483 <verb>
484 Default: 60 seconds
485
486 The minimum caching time according to (Expires - Date)
487 Headers Squid honors if the object can't be revalidated
488 defaults to 60 seconds. In reverse proxy enorinments it
489 might be desirable to honor shorter object lifetimes. It
490 is most likely better to make your server return a
491 meaningful Last-Modified header however. In ESI environments
492 where page fragments often have short lifetimes, this will
493 often be best set to 0.
494 </verb>
495 <tag>icap_enable on|off</tag>
496 <verb>
497 Default: off
498
499 If you want to enable the ICAP module support, set this to on.
500 </verb>
501 <tag>icap_preview_enable on|off</tag>
502 <verb>
503 Default: off
504
505 Set this to 'on' if you want to enable the ICAP preview
506 feature in Squid.
507 </verb>
508 <tag>icap_preview_size</tag>
509 <verb>
510 Default: -1
511
512 The default size of preview data to be sent to the ICAP server.
513 -1 means no preview. This value might be overwritten on a per server
514 basis by OPTIONS requests.
515 </verb>
516 <tag>icap_default_options_ttl (seconds)</tag>
517 <verb>
518 Default: 60
519
520 The default TTL value for ICAP OPTIONS responses that don't have
521 an Options-TTL header.
522 </verb>
523 <tag>icap_persistent_connections on|off</tag>
524 <verb>
525 Default: on
526
527 Whether or not Squid should use persistent connections to
528 an ICAP server.
529 </verb>
530 <tag>icap_send_client_ip on|off</tag>
531 <verb>
532 Default: off
533
534 This adds the header "X-Client-IP" to ICAP requests.
535 </verb>
536 <tag>icap_send_client_username on|off</tag>
537 <verb>
538 Default: off
539
540 This adds the header "X-Client-Username" to ICAP requests
541 if proxy access is authentified.
542 </verb>
543 <tag>icap_service</tag>
544 <verb>
545 Default: none
546
547 Defines a single ICAP service
548
549 icap_service servicename vectoring_point bypass service_url
550
551 vectoring_point = reqmod_precache|reqmod_postcache|respmod_precache|respmod_postcache
552 This specifies at which point of request processing the ICAP
553 service should be plugged in.
554 bypass = 1|0
555 If set to 1 and the ICAP server cannot be reached, the request will go
556 through without being processed by an ICAP server
557 service_url = icap://servername:port/service
558
559 Note: reqmod_precache and respmod_postcache is not yet implemented
560
561 Example:
562 icap_service service_1 reqmod_precache 0 icap://icap1.mydomain.net:1344/reqmod
563 icap_service service_2 respmod_precache 0 icap://icap2.mydomain.net:1344/respmod
564 </verb>
565 <tag>icap_class</tag>
566 <verb>
567 Default: none
568
569 Defines an ICAP service chain. If there are multiple services per
570 vectoring point, they are processed in the specified order.
571
572 icap_class classname servicename...
573
574 Example:
575 icap_class class_1 service_1 service_2
576 icap class class_2 service_1 service_3
577 </verb>
578 <tag>icap_access</tag>
579 <verb>
580 Default: none
581
582 Redirects a request through an ICAP service class, depending
583 on given acls
584
585 icap_access classname allow|deny [!]aclname...
586
587 The icap_access statements are processed in the order they appear in
588 this configuration file. If an access list matches, the processing stops.
589 For an "allow" rule, the specified class is used for the request. A "deny"
590 rule simply stops processing without using the class. You can also use the
591 special classname "None".
592
593 For backward compatibility, it is also possible to use services
594 directly here.
595
596 Example:
597 icap_access class_1 allow all
598 </verb>
599 </descrip>
600
601
602 <sect2>Changes to existing tags<label id="modifiedtags">
603 <p>
604 <descrip>
605 <tag>http_port</tag>
606 <p>New options:
607 <verb>
608 transparent Support for transparent proxies
609
610 accel Accelerator mode. Also set implicit by the other accelerator directives
611
612 vhost Accelerator mode using Host header for virtual domain support
613
614 vport Accelerator with IP based virtual host support
615
616 vport=NN As above, but uses specified port number rather
617 than the http_port number
618
619 defaultsite= Main web site name for accelerators
620
621 protocol= Protocol to reconstruct accelerated requests with.
622 Defaults to http
623
624 disable-pmtu-discovery=
625 Control Path-MTU discovery usage:
626 off lets OS decide on what to do (default).
627 transparent disable PMTU discovery when transparent support is enabled.
628 always disable always PMTU discovery.
629
630 In many setups of transparently intercepting proxies Path-MTU
631 discovery can not work on traffic towards the clients. This is
632 the case when the intercepting device does not fully track
633 connections and fails to forward ICMP must fragment messages
634 to the cache server. If you have such setup and experience that
635 certain clients sporadically hang or never complete requests set
636 disable-pmtu-discovery option to 'transparent'.
637 </verb>
638 <tag> https_port</tag>
639 <p>New options:
640 <verb>
641 defaultsite= The name of the https site presented on this port
642
643 protocol= Protocol to reconstruct accelerated requests
644 with. Defaults to https
645
646 options= Various SSL engine options. The most important
647 being:
648 NO_SSLv2 Disallow the use of SSLv2
649 NO_SSLv3 Disallow the use of SSLv3
650 NO_TLSv1 Disallow the use of TLSv1
651 SINGLE_DH_USE Always create a new key when using
652 temporary/ephemeral DH key exchanges
653 See src/ssl_support.c or OpenSSL SSL_CTX_set_options
654 documentation for a complete list of options
655
656 clientca= File containing the list of CAs to use when
657 requesting a client certificate
658
659 cafile= File containing additional CA certificates to
660 use when verifying client certificates. If unset
661 clientca will be used
662
663 capath= Directory containing additional CA certificates
664 and CRL lists to use when verifying client certificates
665
666 crlfile= File of additional CRL lists to use when verifying
667 the client certificate, in addition to CRLs stored in
668 the capath. Implies VERIFY_CRL flag below.
669
670 dhparams= File containing DH parameters for temporary/ephemeral
671 DH key exchanges
672
673 sslflags= Various flags modifying the use of SSL:
674 DELAYED_AUTH
675 Don't request client certificates
676 immediately, but wait until acl processing
677 requires a certificate (not yet implemented)
678 NO_DEFAULT_CA
679 Don't use the default CA lists built in
680 to OpenSSL
681 NO_SESSION_REUSE
682 Don't allow for session reuse. Each connection
683 will result in a new SSL session.
684 VERIFY_CRL
685 Verify CRL lists when accepting client
686 certificates
687 VERIFY_CRL_ALL
688 Verify CRL lists for all certificates in the
689 client certificate chain
690
691 sslcontext= SSL session ID context identifier.
692
693 accelAccelerator mode. Also set implicit by the other
694 accelerator directives
695
696 vhostAccelerator mode using Host header for virtual
697 domain support
698
699 vportAccelerator with IP based virtual host support
700
701 vport=NN As above, but uses specified port number rather
702 than the https_port number
703 </verb>
704 <tag>cache_peer</tag>
705 <p>New options:
706 <verb>
707 basetime=n
708 background-ping
709 weighted-round-robin
710 carp
711 htcp-oldsquid
712 originserver
713 name=xxx
714 forceddomain=name
715 ssl
716 sslcert=/path/to/ssl/certificate
717 sslkey=/path/to/ssl/key
718 sslversion=1|2|3|4
719 sslcipher=...
720 ssloptions=...
721 front-end-https[=on|auto]
722
723
724 use 'basetime=n' to specify a base amount to
725 be subtracted from round trip times of parents.
726 It is subtracted before division by weight in calculating
727 which parent to fectch from. If the rtt is less than the
728 base time the rtt is set to a minimal value.
729
730 use 'background-ping' to only send ICP queries to this
731 neighbor infrequently. This is used to keep the neighbor
732 round trip time updated and is usually used in
733 conjunction with weighted-round-robin.
734
735 use 'weighted-round-robin' to define a set of parents
736 which should be used in a round-robin fashion with the
737 frequency of each parent being based on the round trip
738 time. Closer parents are used more often.
739 Usually used for background-ping parents.
740
741 use 'carp' to define a set of parents which should
742 be used as a CARP array. The requests will be
743 distributed among the parents based on the CARP load
744 balancing hash function based on their weigth.
745
746 use 'htcp-oldsquid' to send HTCP to old Squid versions
747
748 'originserver' causes this parent peer to be contacted as
749 a origin server. Meant to be used in accelerator setups.
750
751 use 'name=xxx' if you have multiple peers on the same
752 host but different ports. This name can be used to
753 differentiate the peers in cache_peer_access and similar
754 directives.
755
756 use 'forceddomain=name' to forcibly set the Host header
757 of requests forwarded to this peer. Useful in accelerator
758 setups where the server (peer) expects a certain domain
759 name and using redirectors to feed this domainname
760 is not feasible.
761
762 use 'ssl' to indicate connections to this peer should
763 bs SSL/TLS encrypted.
764
765 use 'sslcert=/path/to/ssl/certificate' to specify a client
766 SSL certificate to use when connecting to this peer.
767
768 use 'sslkey=/path/to/ssl/key' to specify the private SSL
769 key corresponding to sslcert above. If 'sslkey' is not
770 specified 'sslcert' is assumed to reference a
771 combined file containing both the certificate and the key.
772
773 use sslversion=1|2|3|4 to specify the SSL version to use
774 when connecting to this peer
775 1 = automatic (default)
776 2 = SSL v2 only
777 3 = SSL v3 only
778 4 = TLS v1 only
779
780 use sslcipher=... to specify the list of valid SSL chipers
781 to use when connecting to this peer
782
783 use ssloptions=... to specify various SSL engine options:
784 NO_SSLv2 Disallow the use of SSLv2
785 NO_SSLv3 Disallow the use of SSLv3
786 NO_TLSv1 Disallow the use of TLSv1
787 See src/ssl_support.c or the OpenSSL documentation for
788 a more complete list.
789
790 use cafile=... to specify a file containing additional
791 CA certificates to use when verifying the peer certificate
792
793 use capath=... to specify a directory containing additional
794 CA certificates to use when verifying the peer certificate
795
796 use sslflags=... to specify various flags modifying the
797 SSL implementation:
798 DONT_VERIFY_PEER
799 Accept certificates even if they fail to
800 verify.
801 NO_DEFAULT_CA
802 Don't use the default CA list built in
803 to OpenSSL.
804 DONT_VERIFY_DOMAIN
805 Don't verify the peer certificate
806 matches the server name
807
808 use sslname= to specify the peer name as advertised
809 in it's certificate. Used for verifying the correctness
810 of the received peer certificate. If not specified the
811 peer hostname will be used.
812
813 use front-end-https to enable the "Front-End-Https: On"
814 header needed when using Squid as a SSL frontend infront
815 of Microsoft OWA. See MS KB document Q307347 for details
816 on this header. If set to auto the header will
817 only be added if the request is forwarded as a https://
818 URL.
819 </verb>
820 <p>Removed options:
821 <verb>
822 carp-load-factor
823 </verb>
824 <tag>cache_dir</tag>
825 <p>COSS stripe file:
826 <verb>
827 The coss file store has changed from 2.5. Now it uses a file
828 called 'stripe' in the directory names in the config - and
829 this will be created by squid -z.
830 </verb>
831 <tag>access_log cache_access_log</tag>
832 <p>Takes an optional log format:
833 <verb>
834 These files log client request activities. Has a line every HTTP or
835 ICP request. The format is:
836 access_log <filepath> [<logformat name> [acl acl ...]]
837 access_log none [acl acl ...]]
838
839 Will log to the specified file using the specified format (which
840 must be defined in a logformat directive) those entries which match
841 ALL the acl's specified (which must be defined in acl clauses).
842 If no acl is specified, all requests will be logged to this file.
843
844 To disable logging of a request use the filepath "none", in which case
845 a logformat name should not be specified.
846
847 To log the request via syslog specify a filepath of "syslog":
848
849 access_log syslog[:facility|priority] [format [acl1 [acl2 ....]]]
850 where facility could be any of:
851 LOG_AUTHPRIV, LOG_DAEMON, LOG_LOCAL0 .. LOG_LOCAL7 or LOG_USER.
852
853 And priority could be any of:
854 LOG_ERR, LOG_WARNING, LOG_NOTICE, LOG_INFO, LOG_DEBUG.
855 </verb>
856 <tag>redirect_program</tag>
857 <p>New alias: 'url_rewrite_program'
858 <tag>redirect_children</tag>
859 <p>New alias: 'url_rewrite_children'
860 <tag>redirect_host_header</tag>
861 <p>New alias: 'url_rewrite_host_header'
862 <tag>auth_param</tag>
863 <p>New option for basic scheme:
864 <verb>
865 "concurrency" concurrency
866 The number of concurrent requests the helper can process.
867 The default of 0 is used for helpers who only supports
868 one request at a time.
869 auth_param basic concurrency 0
870 </verb>
871 <p>Removed NTLM options:
872 <verb>
873 "max_challenge_reuses" number
874 The maximum number of times a challenge given by a ntlm authentication
875 helper can be reused. Increasing this number increases your exposure
876 to replay attacks on your network. 0 (the default) means use the
877 challenge is used only once. See also the max_ntlm_challenge_lifetime
878 directive if enabling challenge reuses.
879 auth_param ntlm max_challenge_reuses 0
880
881 "max_challenge_lifetime" timespan
882 The maximum time period a ntlm challenge is reused over. The
883 actual period will be the minimum of this time AND the number of
884 reused challenges.
885 auth_param ntlm max_challenge_lifetime 2 minutes
886
887 "use_ntlm_negotiate" on|off
888 Enables support for NTLM NEGOTIATE packet exchanges with the helper.
889 The configured ntlm authenticator must be able to handle NTLM
890 NEGOTIATE packet. See the authenticator programs documentation if
891 unsure. ntlm_auth from Samba-3.0.2 or later supports the use of this
892 option.
893 The NEGOTIATE packet is required to support NTLMv2 and a
894 number of other negotiable NTLMSSP options, and also makes it
895 more likely the negotiation is successful. Enabling this parameter
896 will also solve problems encountered when NT domain policies
897 restrict users to access only certain workstations. When this is off,
898 all users must be allowed to log on the proxy servers too, or they'll
899 get "invalid workstation" errors - and access denied - when trying to
900 use Squid's services.
901 Use of ntlm NEGOTIATE is incompatible with challenge reuse, so
902 enabling this parameter will OVERRIDE the max_challenge_reuses and
903 max_challenge_lifetime parameters and set them to 0.
904 auth_param ntlm use_ntlm_negotiate off
905 </verb>
906 <p>New NTLM option:
907 <verb>
908 "keep_alive" on|off
909 If you experience problems with PUT/POST requests when using the
910 Negotiate authentication scheme then you can try setting this to
911 off. This will cause Squid to forcibly close the connection on
912 the initial requests where the browser asks which schemes are
913 supported by the proxy.
914 </verb>
915 <tag>external_acl_type</tag>
916 <p>New options:
917 <verb>
918 concurrency=n concurrency level per process. Use 0 for old style
919 helpers who can only process a single request at a time.
920
921 grace=n Percentage remaining of TTL where a refresh of a
922 cached entry should be initiated without needing to
923 wait for a new reply. (default 0 for no grace period)
924 protocol=2.5 Compatibility mode for Squid-2.5 external acl helpers
925 </verb>
926 <p>New format specifications:
927 <verb>
928 %EXT_USER Username from external acl
929 %SRCPORT Client source port
930 %PATH Requested URL path
931 %METHOD Request method
932 %MYADDR Squid interface address
933 %MYPORT Squid http_port number
934 %USER_CERT SSL User certificate in PEM format
935 %USER_CERTCHAIN SSL User certificate chain in PEM format
936 %USER_CERT_xx SSL User certificate subject attribute xx
937 %USER_CA_xx SSL User certificate issuer attribute xx
938 </verb>
939 <p>New keywords:
940 <verb>
941 user= The users name (login)
942 password= The users password (for login= cache_peer option)
943 message= Message describing the reason. Available as %o
944 in error pages
945 tag= Apply a tag to a request (for both ERR and OK results)
946 Only sets a tag, does not alter existing tags.
947 log= String to be logged in access.log. Available as
948 %ea in logformat specifications
949
950 Keyword values need to be URL escaped if they may contain
951 contain whitespace or quotes.
952
953 In Squid-2.5 compatibility mode quoting using " and \ is used
954 instead of URL escaping.
955 </verb>
956 <p>Removed option:
957 <verb>
958 protocol=3.0 Use URL-escaped strings instead of quoting
959 </verb>
960 <tag>refresh_pattern</tag>
961 <p>New options:
962 <verb>
963 ignore-no-cache
964 ignore-no-store
965 ignore-private
966 ignore-auth
967 refresh-ims
968
969 ignore-no-cache ignores any ``Pragma: no-cache'' and
970 ``Cache-control: no-cache'' headers received from a server.
971 The HTTP RFC never allows the use of this (Pragma) header
972 from a server, only a client, though plenty of servers
973 send it anyway.
974
975 ignore-no-store ignores any ``Cache-control: no-store''
976 headers received from a server. Doing this VIOLATES
977 the HTTP standard. Enabling this feature could make you
978 liable for problems which it causes.
979
980 ignore-private ignores any ``Cache-control: private''
981 headers received from a server. Doing this VIOLATES
982 the HTTP standard. Enabling this feature could make you
983 liable for problems which it causes.
984
985 ignore-auth caches responses to requests with authorization,
986 irrespective of ``Cache-control'' headers received from
987 a server. Doing this VIOLATES the HTTP standard. Enabling
988 this feature could make you liable for problems which
989 it causes.
990
991 refresh-ims causes squid to contact the origin server
992 when a client issues an If-Modified-Since request. This
993 ensures that the client will receive an updated version
994 if one is available.
995 </verb>
996 <tag>negative_dns_ttl</tag>
997 <p>New default:
998 <verb>
999 Default: 5 minutes
1000 (Old default: 1 minute)
1001 </verb>
1002 <tag>acl</tag>
1003 <p>New types:
1004 <verb>
1005 acl aclname http_status 200 301 500- 400-403 ... # status code in reply
1006
1007 acl aclname user_cert attribute values...
1008 # match against attributes in a user SSL certificate
1009 # attribute is one of DN/C/O/CN/L/ST
1010
1011 acl aclname ca_cert attribute values...
1012 # match against attributes a users issuing CA SSL certificate
1013 # attribute is one of DN/C/O/CN/L/ST
1014
1015 acl aclname ext_user username ...
1016 acl aclname ext_user_regex [-i] pattern ...
1017 # string match on username returned by external acl processing
1018 # use REQUIRED to accept any non-null user name.
1019 </verb>
1020 <p>Removed types:
1021 <verb>
1022 acl aclname urllogin [-i] [^a-zA-Z0-9] ... # regex matching on URL login field
1023
1024 acl aclname req_header header-name [-i] any\.regex\.here
1025 # regex match against any of the known request headers. May be
1026 # thought of as a superset of "browser", "referer" and "mime-type"
1027 # ACLs.
1028
1029 acl aclname rep_header header-name [-i] any\.regex\.here
1030 # regex match against any of the known response headers.
1031 # Example:
1032 #
1033 # acl many_spaces rep_header Content-Disposition -i [[:space:]]{3,}
1034 </verb>
1035 <tag>short_icon_urls</tag>
1036 <p>New default:
1037 <verb>
1038 Default: on
1039 (Old default: off)
1040 </verb>
1041 <tag>delay_class</tag>
1042 <p>New delay classes:
1043 <verb>
1044 class 4 Everything in a class 3 delay pool, with an
1045 additional limit on a per user basis. This
1046 only takes effect if the username is established
1047 in advance - by forcing authentication in your
1048 http_access rules.
1049
1050 class 5 Requests are grouped according their tag (see
1051 external_acl's tag= reply).
1052 </verb>
1053 </descrip>
1054
1055
1056
1057
1058 <sect2>Removed tags<label id="removedtags">
1059 <p>
1060 <descrip>
1061 <tag>httpd_accel_host</tag>
1062 Replaced by the defaultsite= or vport=0 (in case of virtual) http_port options
1063 <tag>httpd_accel_port</tag>
1064 Replaced by vport http(s)_port option
1065 <tag>httpd_accel_single_host on|off</tag>
1066 Replaced by cache_peer originserver based request forwarding
1067 making this option obsolete.
1068 <tag>httpd_accel_with_proxy on|off</tag>
1069 Obsolete, no longer needed.
1070 <tag>httpd_accel_uses_host_header on|off</tag>
1071 This has been replaced by the vhost http(s)_port option
1072 <tag>httpd_accel_no_pmtu_disc on|off</tag>
1073 This has been replaced by the disable-pmtu-discovery=.. http_port option
1074 <tag>header_access</tag>
1075 <p>This has been replaced by request_header_access and reply_header_access
1076 </descrip>
1077
1078
1079 </article>
1080