]> git.ipfire.org Git - thirdparty/squid.git/blob - doc/release-notes/release-3.0.man
Cleanup: zap CVS Id tags
[thirdparty/squid.git] / doc / release-notes / release-3.0.man
1 Squid 3.0.RC1 release notesSquid Developers$Id$
2 Squid is a WWW Cache application developed by the National Laboratory
3 for Applied Network Research and members of the Web Caching community.Notice
4
5 .Pp
6 The Squid Team are pleased to announce the release of Squid-3.0.RC1 for pre-release testing.
7 .Pp
8 This new release is available for download from or the \&.
9 .Pp
10 A large number of the show-stopper bugs have been fixed along with general improvements to the ICAP support.
11 While this release is not deemed ready for production use, we believe it is ready for wider testing by the community.
12 .Pp
13 We welcome feedback and bug reports. If you find a bug, please see for how to submit a report with a stack trace.
14 .Pp
15 Known issues
16
17 .Pp
18 Although this release is deemed good enough for testing in many setups, please note the existence of \&.
19 .Pp
20 Changes since earlier PRE releases of Squid-3.0
21
22 .Pp
23 The 3.0 change history can be \&.
24 .Pp
25 Changes since Squid-2.6
26
27 .SH Major new features
28
29 .Pp
30 Squid 3.0 represents a major rewrite of Squid and has a number of new features.
31 .Pp
32 The most important of these are:
33 .Pp
34 .nr ll +1
35 .nr t\n(ll 0
36 .if \n(ll>1 .RS
37 .nr bi 1
38 .Pp
39 Code converted to C++, with significant internal restructuring and rewrites.
40 .nr bi 1
41 .Pp
42 ICAP implementation (RFC 3507 and www.icap-forum.org)
43 .nr bi 1
44 .Pp
45 Edge Side Includes (ESI) implementation (www.esi.org)
46 .if \n(ll>1 .RE
47 .nr ll -1
48 .Pp
49 Most user-facing changes are reflected in squid.conf (see below).
50 .Pp
51 Internet Content Adaptation Protocol (ICAP)
52
53 .Pp
54 Squid 3.0 supports ICAP/1.0. To enable ICAP support, use the --enable-icap-client ./configure option and icap_enable squid.conf option. You will also need to configure ICAP services in your squid.conf using icap_service, icap_class, and icap_access options. The following example instructs Squid to talk to two ICAP services, one for request and one for response adaptation:
55 .Pp
56 .DS
57 .sp
58 .ft RR
59 .nf
60 icap_enable on
61 icap_service service_req reqmod_precache 1 icap://127.0.0.1:1344/request
62 icap_service service_resp respmod_precache 0 icap://127.0.0.1:1344/response
63 icap_class class_req service_req
64 icap_class class_resp service_resp
65 icap_access class_req allow all
66 icap_access class_resp allow all
67 .DE
68 .fi
69 .ec
70 .ft P
71 .sp
72 .Pp
73 .Pp
74 Please see squid.conf.default for more details about these and many other icap_* options.
75 .Pp
76 .Pp
77 Squid supports pre-cache request and pre-cache response vectoring points. The following ICAP features are supported: message preview, 204 responses outside of preview, request satisfaction, X-Transfer-* negotiation, persistent ICAP connections, client IP/credentials sharing, and optional bypass of certain service failures.
78 .Pp
79 .Pp
80 No more than one ICAP service can be applied to an HTTP message. In other words, chaining or load balancing multiple services is not yet supported.
81 .Pp
82 .Pp
83 Proxy-directed data trickling and patience pages are not supported yet.
84 .Pp
85 .Pp
86 Following ICAP requirements, Squid never performs HTTP message adaptation without a successful and fresh ICAP OPTIONS response on file. A REQMOD or RESPMOD request will not be sent to a configured ICAP service until Squid receives a valid OPTIONS response from that service. If a service malfunctions or goes down, Squid may stop talking to the service for a while. Several squid.conf options can be used to tune the failure bypass algorithm (e.g., icap_service_failure_limit and icap_service_revival_delay).
87 .Pp
88 .Pp
89 The bypass parameter of the icap_service squid.conf option determines whether Squid will try to bypass service failures. Most connectivity and preview-stage failures can be bypassed.
90 .Pp
91 .Pp
92 More information about ICAP can be found from the ICAP-forum website
93 .Pp
94 Edge Side Includes (ESI)
95
96 .Pp
97 ESI is an open specification of an markup language enabling reverse proxies
98 to perform some simple XML based processing, offloading the final page assembly from the webserver and similar tasks.
99 .Pp
100 .Pp
101 More information about ESI can be found from the ESI website
102 .Pp
103 .SH 2.6 features not found in Squid-3.0
104
105 .Pp
106 Some of the features found in Squid-2.6 is not available in Squid-3.
107 Some has been dropped as they are not needed. Some has not yet been forward-ported to Squid-3 and may appear in a later release.
108 .Pp
109 .nr ll +1
110 .nr t\n(ll 0
111 .if \n(ll>1 .RS
112 .nr bi 1
113 .Pp
114 refresh_stale_hit option. Not yet ported.
115 .nr bi 1
116 .Pp
117 ability to follow X-Forwarded-For. Not yet ported.
118 .nr bi 1
119 .Pp
120 Full caching of Vary/ETag using If-None-Match. Only basic Vary cache supported. Not yet ported.
121 .nr bi 1
122 .Pp
123 Mapping of server error messages. Not yet ported.
124 .nr bi 1
125 .Pp
126 http_access2 access directive. Not yet ported.
127 .nr bi 1
128 .Pp
129 Location header rewrites. Not yet ported.
130 .nr bi 1
131 .Pp
132 umask directive. Not yet ported.
133 .nr bi 1
134 .Pp
135 wais_relay. Feature dropped as it's equivalent to cache_peer + cache_peer_access.
136 .nr bi 1
137 .Pp
138 urlgroup. Not yet ported.
139 .nr bi 1
140 .Pp
141 collapsed forwarding. Not yet ported.
142 .nr bi 1
143 .Pp
144 stable Windows support. Irregularly maintained.
145 .if \n(ll>1 .RE
146 .nr ll -1
147 .Pp
148 .SH Logging changes
149
150 access.log
151
152 .Pp
153 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:
154 .Pp
155 .nr ll +1
156 .nr t\n(ll 2
157 .if \n(ll>1 .RS
158 .IP "TCP_REFRESH_UNMODIFIED"
159 .nr bi 1
160 .Pp
161 The requested object was cached but STALE. The IMS query for the object resulted in \&"304 not modified\&".
162 .IP "TCP_REFRESH_MODIFIED"
163 .nr bi 1
164 .Pp
165 The requested object was cached but STALE. The IMS query returned the new content.
166 .if \n(ll>1 .RE
167 .nr ll -1
168 .Pp
169 See for a definition of all log types.
170 .Pp
171 .Pp
172 .Pp
173 .Pp
174 .SH Changes to squid.conf
175
176 .Pp
177 There have been many changes to Squid's configuration file since Squid-2.6.
178 .Pp
179 This section gives a thorough account of those changes in three categories:
180 .Pp
181 .nr ll +1
182 .nr t\n(ll 0
183 .if \n(ll>1 .RS
184 .nr bi 1
185 .Pp
186 .nr bi 1
187 .Pp
188 .nr bi 1
189 .Pp
190 .if \n(ll>1 .RE
191 .nr ll -1
192 .Pp
193 .Pp
194 .Pp
195 .Pp
196 .Pp
197 New tags
198
199 .Pp
200 .nr ll +1
201 .nr t\n(ll 2
202 .if \n(ll>1 .RS
203 .IP "minimum_icp_query_timeout (msec)"
204 .nr bi 1
205 .Pp
206 .DS
207 .sp
208 .ft RR
209 .nf
210 Default: 5
211
212 Normally the ICP query timeout is determined dynamically. But
213 sometimes it can lead to very small timeouts, even lower than
214 the normal latency variance on your link due to traffic.
215 Use this option to put an lower limit on the dynamic timeout
216 value. Do NOT use this option to always use a fixed (instead
217 of a dynamic) timeout value. To set a fixed timeout see the
218 \&'icp_query_timeout' directive.
219
220 .DE
221 .fi
222 .ec
223 .ft P
224 .sp
225 .IP "background_ping_rate"
226 .nr bi 1
227 .Pp
228 .DS
229 .sp
230 .ft RR
231 .nf
232 Default: 10 seconds
233
234 Controls how often the ICP pings are sent to siblings that
235 have background-ping set.
236
237 .DE
238 .fi
239 .ec
240 .ft P
241 .sp
242 .Pp
243 .IP "httpd_accel_surrogate_id"
244 .nr bi 1
245 .Pp
246 .DS
247 .sp
248 .ft RR
249 .nf
250 Default: unset
251
252 Surrogates (http://www.esi.org/architecture_spec_1.0.html)
253 need an identification token to allow control targeting. Because
254 a farm of surrogates may all perform the same tasks, they may share
255 an identification token.
256
257 .DE
258 .fi
259 .ec
260 .ft P
261 .sp
262 .Pp
263 .IP "http_accel_surrogate_remote on\(broff"
264 .nr bi 1
265 .Pp
266 .DS
267 .sp
268 .ft RR
269 .nf
270 Default: off
271
272 Remote surrogates (such as those in a CDN) honour Surrogate-Control: no-store-remote.
273 Set this to on to have squid behave as a remote surrogate.
274
275 .DE
276 .fi
277 .ec
278 .ft P
279 .sp
280 .Pp
281 .IP "esi_parser libxml2\(brexpat\(brcustom"
282 .nr bi 1
283 .Pp
284 .DS
285 .sp
286 .ft RR
287 .nf
288 Default: custom
289
290 ESI markup is not strictly XML compatible. The custom ESI parser
291 will give higher performance, but cannot handle non ASCII character
292 encodings.
293
294 .DE
295 .fi
296 .ec
297 .ft P
298 .sp
299 .Pp
300 .IP "email_err_data on\(broff"
301 .nr bi 1
302 .Pp
303 .DS
304 .sp
305 .ft RR
306 .nf
307 Default: on
308
309 If enabled, information about the occurred error will be
310 included in the mailto links of the ERR pages (if %W is set)
311 so that the email body contains the data.
312 Syntax is <A HREF=\&"mailto:%w%W\&">%w</A>
313
314 .DE
315 .fi
316 .ec
317 .ft P
318 .sp
319 .Pp
320 .IP "refresh_all_ims on\(broff"
321 .nr bi 1
322 .Pp
323 .DS
324 .sp
325 .ft RR
326 .nf
327 Default: off
328
329 When you enable this option, squid will always check
330 the origin server for an update when a client sends an
331 If-Modified-Since request. Many browsers use IMS
332 requests when the user requests a reload, and this
333 ensures those clients receive the latest version.
334
335 By default (off), squid may return a Not Modified response
336 based on the age of the cached version.
337
338 .DE
339 .fi
340 .ec
341 .ft P
342 .sp
343 .IP "request_header_access"
344 .nr bi 1
345 .Pp
346 Replaces the header_access directive of Squid-2.6 and earlier, but applies to requests only.
347 .IP "reply_header_access"
348 .nr bi 1
349 .Pp
350 Replaces the header_access directive of Squid-2.6 and earlier, but applies to replies only.
351 .Pp
352 .IP "icap_enable on\(broff"
353 .nr bi 1
354 .Pp
355 .DS
356 .sp
357 .ft RR
358 .nf
359 Default: off
360
361 If you want to enable the ICAP module support, set this to on.
362
363 .DE
364 .fi
365 .ec
366 .ft P
367 .sp
368 .IP "icap_preview_enable on\(broff"
369 .nr bi 1
370 .Pp
371 .DS
372 .sp
373 .ft RR
374 .nf
375 Default: off
376
377 Set this to 'on' if you want to enable the ICAP preview
378 feature in Squid.
379
380 .DE
381 .fi
382 .ec
383 .ft P
384 .sp
385 .IP "icap_preview_size"
386 .nr bi 1
387 .Pp
388 .DS
389 .sp
390 .ft RR
391 .nf
392 Default: -1
393
394 The default size of preview data to be sent to the ICAP server.
395 -1 means no preview. This value might be overwritten on a per server
396 basis by OPTIONS requests.
397
398 .DE
399 .fi
400 .ec
401 .ft P
402 .sp
403 .IP "icap_default_options_ttl (seconds)"
404 .nr bi 1
405 .Pp
406 .DS
407 .sp
408 .ft RR
409 .nf
410 Default: 60
411
412 The default TTL value for ICAP OPTIONS responses that don't have
413 an Options-TTL header.
414
415 .DE
416 .fi
417 .ec
418 .ft P
419 .sp
420 .IP "icap_persistent_connections on\(broff"
421 .nr bi 1
422 .Pp
423 .DS
424 .sp
425 .ft RR
426 .nf
427 Default: on
428
429 Whether or not Squid should use persistent connections to
430 an ICAP server.
431
432 .DE
433 .fi
434 .ec
435 .ft P
436 .sp
437 .IP "icap_send_client_ip on\(broff"
438 .nr bi 1
439 .Pp
440 .DS
441 .sp
442 .ft RR
443 .nf
444 Default: off
445
446 This adds the header \&"X-Client-IP\&" to ICAP requests.
447
448 .DE
449 .fi
450 .ec
451 .ft P
452 .sp
453 .IP "icap_send_client_username on\(broff"
454 .nr bi 1
455 .Pp
456 .DS
457 .sp
458 .ft RR
459 .nf
460 Default: off
461
462 This adds the header \&"X-Client-Username\&" to ICAP requests
463 if proxy access is authentified.
464
465 .DE
466 .fi
467 .ec
468 .ft P
469 .sp
470 .IP "icap_service"
471 .nr bi 1
472 .Pp
473 .DS
474 .sp
475 .ft RR
476 .nf
477 Default: none
478
479 Defines a single ICAP service
480
481 icap_service servicename vectoring_point bypass service_url
482
483 vectoring_point = reqmod_precache|reqmod_postcache|respmod_precache|respmod_postcache
484 This specifies at which point of request processing the ICAP
485 service should be plugged in.
486 bypass = 1|0
487 If set to 1 and the ICAP server cannot be reached, the request will go
488 through without being processed by an ICAP server
489 service_url = icap://servername:port/service
490
491 Note: reqmod_precache and respmod_postcache is not yet implemented
492
493 Example:
494 icap_service service_1 reqmod_precache 0 icap://icap1.mydomain.net:1344/reqmod
495 icap_service service_2 respmod_precache 0 icap://icap2.mydomain.net:1344/respmod
496
497 .DE
498 .fi
499 .ec
500 .ft P
501 .sp
502 .IP "icap_class"
503 .nr bi 1
504 .Pp
505 .DS
506 .sp
507 .ft RR
508 .nf
509 Default: none
510
511 Defines an ICAP service chain. If there are multiple services per
512 vectoring point, they are processed in the specified order.
513
514 icap_class classname servicename...
515
516 Example:
517 icap_class class_1 service_1 service_2
518 icap class class_2 service_1 service_3
519
520 .DE
521 .fi
522 .ec
523 .ft P
524 .sp
525 .IP "icap_access"
526 .nr bi 1
527 .Pp
528 .DS
529 .sp
530 .ft RR
531 .nf
532 Default: none
533
534 Redirects a request through an ICAP service class, depending
535 on given acls
536
537 icap_access classname allow|deny [!]aclname...
538
539 The icap_access statements are processed in the order they appear in
540 this configuration file. If an access list matches, the processing stops.
541 For an \&"allow\&" rule, the specified class is used for the request. A \&"deny\&"
542 rule simply stops processing without using the class. You can also use the
543 special classname \&"None\&".
544
545 For backward compatibility, it is also possible to use services
546 directly here.
547
548 Example:
549 icap_access class_1 allow all
550
551 .DE
552 .fi
553 .ec
554 .ft P
555 .sp
556 .Pp
557 .IP "accept_filter"
558 .nr bi 1
559 .Pp
560 .DS
561 .sp
562 .ft RR
563 .nf
564 The name of an accept(2) filter to install on Squid's
565 listen socket(s). This feature is perhaps specific to
566 FreeBSD and requires support in the kernel.
567
568 The 'httpready' filter delays delivering new connections
569 to Squid until a full HTTP request has been received.
570 See the accf_http(9) man page.
571
572 .DE
573 .fi
574 .ec
575 .ft P
576 .sp
577 .if \n(ll>1 .RE
578 .nr ll -1
579 .Pp
580 .Pp
581 Changes to existing tags
582
583 .Pp
584 .nr ll +1
585 .nr t\n(ll 2
586 .if \n(ll>1 .RS
587 .IP "http_port"
588 .nr bi 1
589 .Pp
590 New options:
591 .DS
592 .sp
593 .ft RR
594 .nf
595 disable-pmtu-discovery=
596 Control Path-MTU discovery usage:
597 off lets OS decide on what to do (default).
598 transparent disable PMTU discovery when transparent support is enabled.
599 always disable always PMTU discovery.
600
601 In many setups of transparently intercepting proxies Path-MTU
602 discovery can not work on traffic towards the clients. This is
603 the case when the intercepting device does not fully track
604 connections and fails to forward ICMP must fragment messages
605 to the cache server. If you have such setup and experience that
606 certain clients sporadically hang or never complete requests set
607 disable-pmtu-discovery option to 'transparent'.
608
609 .DE
610 .fi
611 .ec
612 .ft P
613 .sp
614 .Pp
615 Removed options:
616 .DS
617 .sp
618 .ft RR
619 .nf
620 urlgroup=, not yet ported to Squid-3.
621
622 no-connection-auth, not yet ported to Squid-3.
623
624 .DE
625 .fi
626 .ec
627 .ft P
628 .sp
629
630 .IP " https_port"
631 .nr bi 1
632 .Pp
633 Removed options:
634 .DS
635 .sp
636 .ft RR
637 .nf
638 urlgroup=, not yet ported to Squid-3.
639
640 .DE
641 .fi
642 .ec
643 .ft P
644 .sp
645 .IP "cache_peer"
646 .nr bi 1
647 .Pp
648 New options:
649 .DS
650 .sp
651 .ft RR
652 .nf
653 basetime=n
654
655 background-ping
656
657 weighted-round-robin
658
659 use 'basetime=n' to specify a base amount to
660 be subtracted from round trip times of parents.
661 It is subtracted before division by weight in calculating
662 which parent to fectch from. If the rtt is less than the
663 base time the rtt is set to a minimal value.
664
665 use 'background-ping' to only send ICP queries to this
666 neighbor infrequently. This is used to keep the neighbor
667 round trip time updated and is usually used in
668 conjunction with weighted-round-robin.
669
670 use 'weighted-round-robin' to define a set of parents
671 which should be used in a round-robin fashion with the
672 frequency of each parent being based on the round trip
673 time. Closer parents are used more often.
674 Usually used for background-ping parents.
675
676
677 .DE
678 .fi
679 .ec
680 .ft P
681 .sp
682 .Pp
683 Removed options:
684 .DS
685 .sp
686 .ft RR
687 .nf
688 userhash, not yet ported to Squid-3
689
690 sourcehash, not yet ported to Squid-2
691
692 monitorurl, monitorsize etc, not yet ported to Squid-3
693
694 connection-auth=, not yet ported to Squid-3
695
696 .DE
697 .fi
698 .ec
699 .ft P
700 .sp
701 .IP "cache_dir"
702 .nr bi 1
703 .Pp
704 Common options
705 .DS
706 .sp
707 .ft RR
708 .nf
709 no-store, replaces the older read-only option
710
711 min-size, not yet portedto Squid-3
712
713 .DE
714 .fi
715 .ec
716 .ft P
717 .sp
718 .Pp
719 COSS file system:
720 .DS
721 .sp
722 .ft RR
723 .nf
724 The coss file store is experimental, and still lacks much
725 of the functionality found in 2.6.
726
727 overwrite-percent=n, not yet ported to Squid-3.
728
729 max-stripe-waste=n, not yet ported to Squid-3.
730
731 membufs=n, not yet ported to Squid-3.
732
733 maxfullbufs=n, not yet ported to Squid-3.
734
735 .DE
736 .fi
737 .ec
738 .ft P
739 .sp
740 .IP "auth_param"
741 .nr bi 1
742 .Pp
743 Removed Basic auth option
744 .DS
745 .sp
746 .ft RR
747 .nf
748 blankpasswor, not yet ported to squid-3.
749 auth_param basic concurrency 0
750
751 .DE
752 .fi
753 .ec
754 .ft P
755 .sp
756 .Pp
757 Removed digest options:
758 .DS
759 .sp
760 .ft RR
761 .nf
762 concurrency, not yet ported to Squid-3.
763
764 .DE
765 .fi
766 .ec
767 .ft P
768 .sp
769 .Pp
770 .IP "external_acl_type"
771 .nr bi 1
772 .Pp
773 New format specifications:
774 .DS
775 .sp
776 .ft RR
777 .nf
778 %URI Requested URI
779
780 %PATH Requested URL path
781
782 .DE
783 .fi
784 .ec
785 .ft P
786 .sp
787 .Pp
788 Removed format specifications:
789 .DS
790 .sp
791 .ft RR
792 .nf
793 %ACL, not yet ported to Squid-3
794
795 %DATA, not yet ported to Squid-3
796
797 .DE
798 .fi
799 .ec
800 .ft P
801 .sp
802 .Pp
803 New result keywords:
804 .DS
805 .sp
806 .ft RR
807 .nf
808 tag= Apply a tag to a request (for both ERR and OK results)
809 Only sets a tag, does not alter existing tags.
810
811 .DE
812 .fi
813 .ec
814 .ft P
815 .sp
816 .Pp
817 .IP "refresh_pattern"
818 .nr bi 1
819 .Pp
820 New options:
821 .DS
822 .sp
823 .ft RR
824 .nf
825 ignore-no-store
826 refresh-ims
827
828 ignore-no-store ignores any ``Cache-control: no-store''
829 headers received from a server. Doing this VIOLATES
830 the HTTP standard. Enabling this feature could make you
831 liable for problems which it causes.
832
833 refresh-ims causes squid to contact the origin server
834 when a client issues an If-Modified-Since request. This
835 ensures that the client will receive an updated version
836 if one is available.
837
838 .DE
839 .fi
840 .ec
841 .ft P
842 .sp
843 .IP "acl"
844 .nr bi 1
845 .Pp
846 New types:
847 .DS
848 .sp
849 .ft RR
850 .nf
851 acl aclname http_status 200 301 500- 400-403 ... # status code in reply
852
853
854 .DE
855 .fi
856 .ec
857 .ft P
858 .sp
859 .Pp
860 Removed types:
861 .DS
862 .sp
863 .ft RR
864 .nf
865 acl aclname urllogin [-i] [^a-zA-Z0-9] ... # regex matching on URL login field
866
867 acl urlgroup group1 ...
868 # match against the urlgroup as indicated by redirectors
869
870
871 .DE
872 .fi
873 .ec
874 .ft P
875 .sp
876 .IP "short_icon_urls"
877 .nr bi 1
878 .Pp
879 New default:
880 .DS
881 .sp
882 .ft RR
883 .nf
884 Default: on
885 (Old default: off)
886
887 .DE
888 .fi
889 .ec
890 .ft P
891 .sp
892 .IP "delay_class"
893 .nr bi 1
894 .Pp
895 New delay classes:
896 .DS
897 .sp
898 .ft RR
899 .nf
900 class 4 Everything in a class 3 delay pool, with an
901 additional limit on a per user basis. This
902 only takes effect if the username is established
903 in advance - by forcing authentication in your
904 http_access rules.
905
906 class 5 Requests are grouped according their tag (see
907 external_acl's tag= reply).
908
909 .DE
910 .fi
911 .ec
912 .ft P
913 .sp
914 .Pp
915 .IP "htcp_port"
916 .nr bi 1
917 .Pp
918 New default to require the feature to be enabled in squid.conf:
919 .DS
920 .sp
921 .ft RR
922 .nf
923 Default: 0 (disabled)
924 (Old default: 4827)
925
926 .DE
927 .fi
928 .ec
929 .ft P
930 .sp
931 .Pp
932 .IP "icp_port"
933 .nr bi 1
934 .Pp
935 New default to require the feature to be enabled in squid.conf:
936 .DS
937 .sp
938 .ft RR
939 .nf
940 Default: 0 (disabled)
941 (Old default: 3130)
942
943 .DE
944 .fi
945 .ec
946 .ft P
947 .sp
948 .Pp
949 .IP "snmp_port"
950 .nr bi 1
951 .Pp
952 New default to require the feature to be enabled in squid.conf:
953 .DS
954 .sp
955 .ft RR
956 .nf
957 Default: 0 (disabled)
958 (Old default: 3401)
959
960 .DE
961 .fi
962 .ec
963 .ft P
964 .sp
965 .Pp
966 .IP "logformat"
967 .nr bi 1
968 .Pp
969 New format tags:
970 .DS
971 .sp
972 .ft RR
973 .nf
974 rp Request URL-Path excluding hostname
975
976 et Tag returned by external acl
977
978 <sH Reply high offset sent
979
980 <sS Upstream object size
981
982 .DE
983 .fi
984 .ec
985 .ft P
986 .sp
987 .Pp
988 .Pp
989 Removed format tags:
990 .DS
991 .sp
992 .ft RR
993 .nf
994 >st Request size including HTTP headers, not yet ported to Squid-3.
995
996 st Request+Reply size including HTTP headers, not yet ported to Squid-3.
997
998 .DE
999 .fi
1000 .ec
1001 .ft P
1002 .sp
1003 .Pp
1004 .IP "reply_body_max_size"
1005 .nr bi 1
1006 .Pp
1007 Syntax changed:
1008 .DS
1009 .sp
1010 .ft RR
1011 .nf
1012 reply_body_max_size size [acl acl...]
1013
1014 .DE
1015 .fi
1016 .ec
1017 .ft P
1018 .sp
1019 .Pp
1020 allow/deny no longer used.
1021 .Pp
1022 .IP "url_rewrite_program"
1023 .nr bi 1
1024 .Pp
1025 No urlgroup support in either requests or responese
1026 .if \n(ll>1 .RE
1027 .nr ll -1
1028 .Pp
1029 .Pp
1030 .Pp
1031 .Pp
1032 Removed tags
1033
1034 .Pp
1035 .nr ll +1
1036 .nr t\n(ll 2
1037 .if \n(ll>1 .RS
1038 .IP "broken_vary_encoding"
1039 .nr bi 1
1040 .Pp
1041 Not yet ported to Squid-3.
1042 .IP "cache_vary"
1043 .nr bi 1
1044 .Pp
1045 Not yet ported to Squid-3.
1046 .IP "collapsed_forwarding"
1047 .nr bi 1
1048 .Pp
1049 Not yet ported to Squid-3.
1050 .IP "follow_x_forwarded_for"
1051 .nr bi 1
1052 .Pp
1053 Not yet ported to Squid-3.
1054 .IP "*_uses_indirect_client"
1055 .nr bi 1
1056 .Pp
1057 Not yet ported to Squid-3.
1058 .IP "error_map"
1059 .nr bi 1
1060 .Pp
1061 Not yet ported to Squid-3.
1062 .IP "header_access"
1063 .nr bi 1
1064 .Pp
1065 This has been replaced by request_header_access and reply_header_access
1066 .IP "http_access2"
1067 .nr bi 1
1068 .Pp
1069 Not yet ported to Squid-3.
1070 .IP "httpd_accel_no_pmtu_disc"
1071 .nr bi 1
1072 .Pp
1073 Replaced by disable-pmtu-discovery http_port option
1074 .IP "location_rewrite_*"
1075 .nr bi 1
1076 .Pp
1077 Not yet ported to Squid-3.
1078 .IP "refresh_stale_hit"
1079 .nr bi 1
1080 .Pp
1081 Not yet ported to Squid-3.
1082 .IP "umask"
1083 .nr bi 1
1084 .Pp
1085 Not yet ported to Squid-3.
1086 .IP "wais_relay_*"
1087 .nr bi 1
1088 .Pp
1089 equivalent to cache_peer + cache_peer_access.
1090 .if \n(ll>1 .RE
1091 .nr ll -1
1092 .Pp
1093 .Pp
1094 .SH Changes to ./configure Options
1095
1096 .Pp
1097 There have been some changes to Squid's build configuration since Squid-2.6.
1098 .Pp
1099 This section gives an account of those changes in three categories:
1100 .Pp
1101 .nr ll +1
1102 .nr t\n(ll 0
1103 .if \n(ll>1 .RS
1104 .nr bi 1
1105 .Pp
1106 .nr bi 1
1107 .Pp
1108 .nr bi 1
1109 .Pp
1110 .nr bi 1
1111 .Pp
1112 .if \n(ll>1 .RE
1113 .nr ll -1
1114 .Pp
1115 .Pp
1116 .Pp
1117 New options
1118
1119 .Pp
1120 .nr ll +1
1121 .nr t\n(ll 2
1122 .if \n(ll>1 .RS
1123 .IP "--enable-shared[=PKGS]"
1124 .nr bi 1
1125 .Pp
1126 Build shared libraries. The default is to build without.
1127 .Pp
1128 .IP "--enable-static[=PKGS]"
1129 .nr bi 1
1130 .Pp
1131 Build static libraries. The default is on.
1132 .Pp
1133 .IP "--enable-fast-install[=PKGS]"
1134 .nr bi 1
1135 .Pp
1136 .DS
1137 .sp
1138 .ft RR
1139 .nf
1140 Optimize for fast installation
1141 default: yes
1142 .DE
1143 .fi
1144 .ec
1145 .ft P
1146 .sp
1147 .Pp
1148 .IP "--disable-libtool-lock"
1149 .nr bi 1
1150 .Pp
1151 Avoid locking (might break parallel builds)
1152 .Pp
1153 .IP "--disable-optimizations"
1154 .nr bi 1
1155 .Pp
1156 Don't compile Squid with compiler optimizations enabled.
1157 Optimization is good for production builds, but not
1158 good for debugging. During development, use
1159 --disable-optimizations to reduce compilation times
1160 and allow easier debugging. This option implicitly
1161 also enables --disable-inline
1162 .Pp
1163 .IP "--disable-inline"
1164 .nr bi 1
1165 .Pp
1166 Don't compile trivial methods as inline. Squid
1167 is coded with much of the code able to be inlined.
1168 Inlining is good for production builds, but not
1169 good for development. During development, use
1170 --disable-inline to reduce compilation times and
1171 allow incremental builds to be quick. For
1172 production builds, or load tests, use
1173 --enable-inline to have squid make all trivial
1174 methods inlinable by the compiler.
1175 .Pp
1176 .IP "--enable-debug-cbdata"
1177 .nr bi 1
1178 .Pp
1179 Provide some debug information in cbdata
1180 .Pp
1181 .IP "--enable-disk-io=\e\&"list of modules\e\&""
1182 .nr bi 1
1183 .Pp
1184 Build support for the list of disk I/O modules.
1185 The default is only to build the \&"Blocking\&" module.
1186 See src/DiskIO for a list of available modules, or
1187 Programmers Guide for details on how to build your
1188 custom disk module.
1189 .Pp
1190 .IP "--enable-esi"
1191 .nr bi 1
1192 .Pp
1193 Enable ESI for accelerators. Requires libexpat.
1194 Enabling ESI will cause squid to follow the Edge
1195 Acceleration Specification (www.esi.org). This
1196 causes squid to IGNORE client Cache-Control headers.
1197 .Pp
1198 \fIDO NOT\fP use this in a squid configured as a web
1199 proxy, ONLY use it in a squid configured for
1200 webserver acceleration.
1201 .Pp
1202 .IP "--enable-icap-client"
1203 .nr bi 1
1204 .Pp
1205 Enable the ICAP client.
1206 .Pp
1207 .IP "--disable-snmp"
1208 .nr bi 1
1209 .Pp
1210 Disable SNMP monitoring support which is now built by default.
1211 .Pp
1212 .IP "--disable-htcp"
1213 .nr bi 1
1214 .Pp
1215 Disable HTCP protocol support which is now built by default.
1216 .Pp
1217 .IP "--enable-kqueue"
1218 .nr bi 1
1219 .Pp
1220 Enable kqueue() support. Marked as experimental in 3.0.
1221 .Pp
1222 .IP "--enable-ipfw-transparent"
1223 .nr bi 1
1224 .Pp
1225 Enable Transparent Proxy support for systems
1226 using FreeBSD IPFW style redirection.
1227 .Pp
1228 .IP "--disable-mempools"
1229 .nr bi 1
1230 .Pp
1231 Disable memPools. Note that this option now simply sets the
1232 default behaviour. Specific classes can override this at runtime, and
1233 only lib/MemPool.c needs to be altered to change the squid-wide
1234 default for all classes.
1235 .Pp
1236 .IP "--enable-cpu-profiling"
1237 .nr bi 1
1238 .Pp
1239 This option allows you to see which internal functions
1240 in Squid are consuming how much CPU. Compiles in probes
1241 that measure time spent in probed functions. Needs
1242 source modifications to add new probes. This is meant
1243 for developers to assist in performance optimisations
1244 of Squid internal functions.
1245 .Pp
1246 If you are not developer and not interested in the stats
1247 you shouldn't enable this, as overhead added, although
1248 small, is still overhead. See lib/Profiler.c for more.
1249 .Pp
1250 .IP "--with-gnu-ld"
1251 .nr bi 1
1252 .Pp
1253 Assume the C compiler uses GNU ld. The default is to auto-detect.
1254 .Pp
1255 .IP "--with-pic"
1256 .nr bi 1
1257 .Pp
1258 Try to use only PIC/non-PIC objects. The default is to use both.
1259 .Pp
1260 .IP "--with-tags[=TAGS]"
1261 .nr bi 1
1262 .Pp
1263 Include additional configurations. The default is automatic.
1264 .Pp
1265 .IP "--with-default-user=USER"
1266 .nr bi 1
1267 .Pp
1268 Sets the default System User account for squid permissions.
1269 The default is 'nobody' as in other releases of squid.
1270 .Pp
1271 .IP "--with-cppunit-basedir=[PATH]"
1272 .nr bi 1
1273 .Pp
1274 Path where the cppunit headers and libraries are found
1275 for unit testing. The default is automatic detection.
1276 .Pp
1277 NOTE: Since 3.0-PRE6 and 2.6STABLE14 squid no longer comes
1278 bundled with CPPUnit. Compile-time validation will be disabled
1279 if it is not installed on your system.
1280 .Pp
1281 .if \n(ll>1 .RE
1282 .nr ll -1
1283 Changes to existing options
1284
1285 .Pp
1286 .nr ll +1
1287 .nr t\n(ll 2
1288 .if \n(ll>1 .RS
1289 .IP "--enable-carp"
1290 .nr bi 1
1291 .Pp
1292 CARP support is now built by default.
1293 --disable-carp can be used to build without it.
1294 .Pp
1295 .IP "--enable-htcp"
1296 .nr bi 1
1297 .Pp
1298 HTCP protocol support is now built by default.
1299 Use --disable-htcp to build without it.
1300 .Pp
1301 .IP "--enable-snmp"
1302 .nr bi 1
1303 .Pp
1304 SNMP monitoring is now build by default.
1305 Use --disable-snmp to build without it.
1306 .Pp
1307 .IP "--enable-heap-replacement"
1308 .nr bi 1
1309 .Pp
1310 Please use --enable-removal-policies directive instead.
1311 .Pp
1312 .IP "--with-maxfd=N"
1313 .nr bi 1
1314 .Pp
1315 Replaced by --with-filedescriptors=N
1316 .Pp
1317 Override maximum number of filedescriptors. Useful
1318 if you build as another user who is not privileged
1319 to use the number of filedescriptors you want the
1320 resulting binary to support
1321 .Pp
1322 .IP "--enable-select"
1323 .nr bi 1
1324 .Pp
1325 Deprecated.
1326 Automatic checks will enable best I/O loop method available.
1327 .Pp
1328 .IP "--enable-epoll"
1329 .nr bi 1
1330 .Pp
1331 Deprecated.
1332 Automatic checks will enable best I/O loop method available.
1333 .Pp
1334 .IP "--enable-poll"
1335 .nr bi 1
1336 .Pp
1337 Deprecated.
1338 Automatic checks will enable best I/O loop method available.
1339 .Pp
1340 .IP "--enable-kqueue"
1341 .nr bi 1
1342 .Pp
1343 kqueue support is marked Experimental in Squid 3.0. Known to have some issues under load.
1344 .Pp
1345 .if \n(ll>1 .RE
1346 .nr ll -1
1347 Not yet available options
1348
1349 .Pp
1350 These configure options have not yet been ported to Squid-3. If you need something to do then
1351 porting one of these from Squid-2 to Squid-3 is most welcome.
1352 .Pp
1353 .nr ll +1
1354 .nr t\n(ll 2
1355 .if \n(ll>1 .RS
1356 .IP "--enable-devpoll"
1357 .nr bi 1
1358 .Pp
1359 Support for Solaris /dev/poll
1360 .Pp
1361 .IP "--enable-select-simple"
1362 .nr bi 1
1363 .Pp
1364 Basic POSIX select() loop without any binary fd_set optimizations.
1365 .Pp
1366 .IP "--enable-follow-x-forwarded-for"
1367 .nr bi 1
1368 .Pp
1369 Support following the X-Forwarded-For HTTP header for determining the
1370 client IP address
1371 .if \n(ll>1 .RE
1372 .nr ll -1
1373 .Pp
1374 Removed options
1375
1376 .Pp
1377 The following configure options have been removed.
1378 .Pp
1379 .nr ll +1
1380 .nr t\n(ll 2
1381 .if \n(ll>1 .RS
1382 .IP "--enable-dlmalloc"
1383 .nr bi 1
1384 .Pp
1385 Most OS:es have good malloc implementations these days, and the version we used to ship with Squid was very very old..
1386 .IP "--enable-mempool-debug"
1387 .nr bi 1
1388 .Pp
1389 Debug option, not needed and therefore removed.
1390 .IP "--enable-forward-log"
1391 .nr bi 1
1392 .Pp
1393 Rarely used extra log file. Removed.
1394 .IP "--enable-multicast-miss"
1395 .nr bi 1
1396 .Pp
1397 Rarely used feature, and multicast ICP acheives almost the same result. Removed.
1398 .IP "--enable-coss-aio-ops"
1399 .nr bi 1
1400 .Pp
1401 Specific to the COSS implementation in Squid-2
1402 .IP "--enable-large-cache-files"
1403 .nr bi 1
1404 .Pp
1405 Now enabled by default. Configure option was redundant and therefore removed.
1406 .IP "--enable-truncate"
1407 .nr bi 1
1408 .Pp
1409 Known to cause race conditions where cache objects may get corrupted, and this for at most a marginal performance improvement. Removed.
1410 .Pp
1411 .if \n(ll>1 .RE
1412 .nr ll -1
1413 .Pp