]> git.ipfire.org Git - thirdparty/squid.git/blame - doc/release-notes/release-3.0.man
Cleanup: zap CVS Id tags
[thirdparty/squid.git] / doc / release-notes / release-3.0.man
CommitLineData
262a0e14 1Squid 3.0.RC1 release notesSquid Developers$Id$
4619b547 2Squid is a WWW Cache application developed by the National Laboratory
3for Applied Network Research and members of the Web Caching community.Notice
4
5.Pp
6The Squid Team are pleased to announce the release of Squid-3.0.RC1 for pre-release testing.
7.Pp
8This new release is available for download from or the \&.
9.Pp
10A large number of the show-stopper bugs have been fixed along with general improvements to the ICAP support.
11While this release is not deemed ready for production use, we believe it is ready for wider testing by the community.
12.Pp
13We welcome feedback and bug reports. If you find a bug, please see for how to submit a report with a stack trace.
14.Pp
15Known issues
16
17.Pp
18Although this release is deemed good enough for testing in many setups, please note the existence of \&.
19.Pp
20Changes since earlier PRE releases of Squid-3.0
21
22.Pp
23The 3.0 change history can be \&.
24.Pp
25Changes since Squid-2.6
26
27.SH Major new features
28
29.Pp
30Squid 3.0 represents a major rewrite of Squid and has a number of new features.
31.Pp
32The 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
39Code converted to C++, with significant internal restructuring and rewrites.
40.nr bi 1
41.Pp
42ICAP implementation (RFC 3507 and www.icap-forum.org)
43.nr bi 1
44.Pp
45Edge Side Includes (ESI) implementation (www.esi.org)
46.if \n(ll>1 .RE
47.nr ll -1
48.Pp
49Most user-facing changes are reflected in squid.conf (see below).
50.Pp
51Internet Content Adaptation Protocol (ICAP)
52
53.Pp
54Squid 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
60icap_enable on
61icap_service service_req reqmod_precache 1 icap://127.0.0.1:1344/request
62icap_service service_resp respmod_precache 0 icap://127.0.0.1:1344/response
63icap_class class_req service_req
64icap_class class_resp service_resp
65icap_access class_req allow all
66icap_access class_resp allow all
67.DE
68.fi
69.ec
70.ft P
71.sp
72.Pp
73.Pp
74Please see squid.conf.default for more details about these and many other icap_* options.
75.Pp
76.Pp
77Squid 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
80No 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
83Proxy-directed data trickling and patience pages are not supported yet.
84.Pp
85.Pp
86Following 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
89The 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
92More information about ICAP can be found from the ICAP-forum website
93.Pp
94Edge Side Includes (ESI)
95
96.Pp
97ESI is an open specification of an markup language enabling reverse proxies
98to perform some simple XML based processing, offloading the final page assembly from the webserver and similar tasks.
99.Pp
100.Pp
101More 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
106Some of the features found in Squid-2.6 is not available in Squid-3.
107Some 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
114refresh_stale_hit option. Not yet ported.
115.nr bi 1
116.Pp
117ability to follow X-Forwarded-For. Not yet ported.
118.nr bi 1
119.Pp
120Full caching of Vary/ETag using If-None-Match. Only basic Vary cache supported. Not yet ported.
121.nr bi 1
122.Pp
123Mapping of server error messages. Not yet ported.
124.nr bi 1
125.Pp
126http_access2 access directive. Not yet ported.
127.nr bi 1
128.Pp
129Location header rewrites. Not yet ported.
130.nr bi 1
131.Pp
132umask directive. Not yet ported.
133.nr bi 1
134.Pp
135wais_relay. Feature dropped as it's equivalent to cache_peer + cache_peer_access.
136.nr bi 1
137.Pp
138urlgroup. Not yet ported.
139.nr bi 1
140.Pp
141collapsed forwarding. Not yet ported.
142.nr bi 1
143.Pp
144stable Windows support. Irregularly maintained.
145.if \n(ll>1 .RE
146.nr ll -1
147.Pp
148.SH Logging changes
149
150access.log
151
152.Pp
153The 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
161The 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
165The 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
169See for a definition of all log types.
170.Pp
171.Pp
172.Pp
173.Pp
174.SH Changes to squid.conf
175
176.Pp
177There have been many changes to Squid's configuration file since Squid-2.6.
178.Pp
179This 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
197New 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
210Default: 5
211
212Normally the ICP query timeout is determined dynamically. But
213sometimes it can lead to very small timeouts, even lower than
214the normal latency variance on your link due to traffic.
215Use this option to put an lower limit on the dynamic timeout
216value. Do NOT use this option to always use a fixed (instead
217of 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
232Default: 10 seconds
233
234Controls how often the ICP pings are sent to siblings that
235have 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
250Default: unset
251
252Surrogates (http://www.esi.org/architecture_spec_1.0.html)
253need an identification token to allow control targeting. Because
254a farm of surrogates may all perform the same tasks, they may share
255an 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
270Default: off
271
272Remote surrogates (such as those in a CDN) honour Surrogate-Control: no-store-remote.
273Set 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
288Default: custom
289
290ESI markup is not strictly XML compatible. The custom ESI parser
291will give higher performance, but cannot handle non ASCII character
292encodings.
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
307Default: on
308
309If enabled, information about the occurred error will be
310included in the mailto links of the ERR pages (if %W is set)
311so that the email body contains the data.
312Syntax 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
327Default: off
328
329When you enable this option, squid will always check
330the origin server for an update when a client sends an
331If-Modified-Since request. Many browsers use IMS
332requests when the user requests a reload, and this
333ensures those clients receive the latest version.
334
335By default (off), squid may return a Not Modified response
336based 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
346Replaces 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
350Replaces 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
359Default: off
360
361If 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
375Default: off
376
377Set this to 'on' if you want to enable the ICAP preview
378feature 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
392Default: -1
393
394The 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
396basis 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
410Default: 60
411
412The default TTL value for ICAP OPTIONS responses that don't have
413an 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
427Default: on
428
429Whether or not Squid should use persistent connections to
430an 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
444Default: off
445
446This 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
460Default: off
461
462This adds the header \&"X-Client-Username\&" to ICAP requests
463if 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
477Default: none
478
479Defines a single ICAP service
480
481icap_service servicename vectoring_point bypass service_url
482
483vectoring_point = reqmod_precache|reqmod_postcache|respmod_precache|respmod_postcache
484This specifies at which point of request processing the ICAP
485service should be plugged in.
486bypass = 1|0
487If set to 1 and the ICAP server cannot be reached, the request will go
488through without being processed by an ICAP server
489service_url = icap://servername:port/service
490
491Note: reqmod_precache and respmod_postcache is not yet implemented
492
493Example:
494icap_service service_1 reqmod_precache 0 icap://icap1.mydomain.net:1344/reqmod
495icap_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
509Default: none
510
511Defines an ICAP service chain. If there are multiple services per
512vectoring point, they are processed in the specified order.
513
514icap_class classname servicename...
515
516Example:
517icap_class class_1 service_1 service_2
518icap 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
532Default: none
533
534Redirects a request through an ICAP service class, depending
535on given acls
536
537icap_access classname allow|deny [!]aclname...
538
539The icap_access statements are processed in the order they appear in
540this configuration file. If an access list matches, the processing stops.
541For an \&"allow\&" rule, the specified class is used for the request. A \&"deny\&"
542rule simply stops processing without using the class. You can also use the
543special classname \&"None\&".
544
545For backward compatibility, it is also possible to use services
546directly here.
547
548Example:
549icap_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
564The name of an accept(2) filter to install on Squid's
565listen socket(s). This feature is perhaps specific to
566FreeBSD and requires support in the kernel.
567
568The 'httpready' filter delays delivering new connections
569to Squid until a full HTTP request has been received.
570See 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
581Changes 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
590New 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
615Removed 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
633Removed 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
648New 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
683Removed 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
704Common 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
719COSS 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
743Removed 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
757Removed 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
773New 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
788Removed 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
803New 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
820New 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
846New 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
860Removed 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
879New 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
895New 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
918New 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
935New 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
952New 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
969New 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
989Removed 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
1007Syntax 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
1020allow/deny no longer used.
1021.Pp
1022.IP "url_rewrite_program"
1023.nr bi 1
1024.Pp
1025No 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
1032Removed 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
1041Not yet ported to Squid-3.
1042.IP "cache_vary"
1043.nr bi 1
1044.Pp
1045Not yet ported to Squid-3.
1046.IP "collapsed_forwarding"
1047.nr bi 1
1048.Pp
1049Not yet ported to Squid-3.
1050.IP "follow_x_forwarded_for"
1051.nr bi 1
1052.Pp
1053Not yet ported to Squid-3.
1054.IP "*_uses_indirect_client"
1055.nr bi 1
1056.Pp
1057Not yet ported to Squid-3.
1058.IP "error_map"
1059.nr bi 1
1060.Pp
1061Not yet ported to Squid-3.
1062.IP "header_access"
1063.nr bi 1
1064.Pp
1065This has been replaced by request_header_access and reply_header_access
1066.IP "http_access2"
1067.nr bi 1
1068.Pp
1069Not yet ported to Squid-3.
1070.IP "httpd_accel_no_pmtu_disc"
1071.nr bi 1
1072.Pp
1073Replaced by disable-pmtu-discovery http_port option
1074.IP "location_rewrite_*"
1075.nr bi 1
1076.Pp
1077Not yet ported to Squid-3.
1078.IP "refresh_stale_hit"
1079.nr bi 1
1080.Pp
1081Not yet ported to Squid-3.
1082.IP "umask"
1083.nr bi 1
1084.Pp
1085Not yet ported to Squid-3.
1086.IP "wais_relay_*"
1087.nr bi 1
1088.Pp
1089equivalent 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
1097There have been some changes to Squid's build configuration since Squid-2.6.
1098.Pp
1099This 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
1117New 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
1126Build shared libraries. The default is to build without.
1127.Pp
1128.IP "--enable-static[=PKGS]"
1129.nr bi 1
1130.Pp
1131Build 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
1140Optimize 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
1151Avoid locking (might break parallel builds)
1152.Pp
1153.IP "--disable-optimizations"
1154.nr bi 1
1155.Pp
1156Don't compile Squid with compiler optimizations enabled.
1157Optimization is good for production builds, but not
1158good for debugging. During development, use
1159--disable-optimizations to reduce compilation times
1160and allow easier debugging. This option implicitly
1161also enables --disable-inline
1162.Pp
1163.IP "--disable-inline"
1164.nr bi 1
1165.Pp
1166Don't compile trivial methods as inline. Squid
1167is coded with much of the code able to be inlined.
1168Inlining is good for production builds, but not
1169good for development. During development, use
1170--disable-inline to reduce compilation times and
1171allow incremental builds to be quick. For
1172production builds, or load tests, use
1173--enable-inline to have squid make all trivial
1174methods inlinable by the compiler.
1175.Pp
1176.IP "--enable-debug-cbdata"
1177.nr bi 1
1178.Pp
1179Provide some debug information in cbdata
1180.Pp
1181.IP "--enable-disk-io=\e\&"list of modules\e\&""
1182.nr bi 1
1183.Pp
1184Build support for the list of disk I/O modules.
1185The default is only to build the \&"Blocking\&" module.
1186See src/DiskIO for a list of available modules, or
1187Programmers Guide for details on how to build your
1188custom disk module.
1189.Pp
1190.IP "--enable-esi"
1191.nr bi 1
1192.Pp
1193Enable ESI for accelerators. Requires libexpat.
1194Enabling ESI will cause squid to follow the Edge
1195Acceleration Specification (www.esi.org). This
1196causes squid to IGNORE client Cache-Control headers.
1197.Pp
1198\fIDO NOT\fP use this in a squid configured as a web
1199proxy, ONLY use it in a squid configured for
1200webserver acceleration.
1201.Pp
1202.IP "--enable-icap-client"
1203.nr bi 1
1204.Pp
1205Enable the ICAP client.
1206.Pp
1207.IP "--disable-snmp"
1208.nr bi 1
1209.Pp
1210Disable SNMP monitoring support which is now built by default.
1211.Pp
1212.IP "--disable-htcp"
1213.nr bi 1
1214.Pp
1215Disable HTCP protocol support which is now built by default.
1216.Pp
1217.IP "--enable-kqueue"
1218.nr bi 1
1219.Pp
1220Enable kqueue() support. Marked as experimental in 3.0.
1221.Pp
1222.IP "--enable-ipfw-transparent"
1223.nr bi 1
1224.Pp
1225Enable Transparent Proxy support for systems
1226using FreeBSD IPFW style redirection.
1227.Pp
1228.IP "--disable-mempools"
1229.nr bi 1
1230.Pp
1231Disable memPools. Note that this option now simply sets the
1232default behaviour. Specific classes can override this at runtime, and
1233only lib/MemPool.c needs to be altered to change the squid-wide
1234default for all classes.
1235.Pp
1236.IP "--enable-cpu-profiling"
1237.nr bi 1
1238.Pp
1239This option allows you to see which internal functions
1240in Squid are consuming how much CPU. Compiles in probes
1241that measure time spent in probed functions. Needs
1242source modifications to add new probes. This is meant
1243for developers to assist in performance optimisations
1244of Squid internal functions.
1245.Pp
1246If you are not developer and not interested in the stats
1247you shouldn't enable this, as overhead added, although
1248small, is still overhead. See lib/Profiler.c for more.
1249.Pp
1250.IP "--with-gnu-ld"
1251.nr bi 1
1252.Pp
1253Assume the C compiler uses GNU ld. The default is to auto-detect.
1254.Pp
1255.IP "--with-pic"
1256.nr bi 1
1257.Pp
1258Try 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
1263Include additional configurations. The default is automatic.
1264.Pp
1265.IP "--with-default-user=USER"
1266.nr bi 1
1267.Pp
1268Sets the default System User account for squid permissions.
1269The default is 'nobody' as in other releases of squid.
1270.Pp
1271.IP "--with-cppunit-basedir=[PATH]"
1272.nr bi 1
1273.Pp
1274Path where the cppunit headers and libraries are found
1275for unit testing. The default is automatic detection.
1276.Pp
1277NOTE: Since 3.0-PRE6 and 2.6STABLE14 squid no longer comes
1278bundled with CPPUnit. Compile-time validation will be disabled
1279if it is not installed on your system.
1280.Pp
1281.if \n(ll>1 .RE
1282.nr ll -1
1283Changes 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
1292CARP 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
1298HTCP protocol support is now built by default.
1299Use --disable-htcp to build without it.
1300.Pp
1301.IP "--enable-snmp"
1302.nr bi 1
1303.Pp
1304SNMP monitoring is now build by default.
1305Use --disable-snmp to build without it.
1306.Pp
1307.IP "--enable-heap-replacement"
1308.nr bi 1
1309.Pp
1310Please use --enable-removal-policies directive instead.
1311.Pp
1312.IP "--with-maxfd=N"
1313.nr bi 1
1314.Pp
1315Replaced by --with-filedescriptors=N
1316.Pp
1317Override maximum number of filedescriptors. Useful
1318if you build as another user who is not privileged
1319to use the number of filedescriptors you want the
1320resulting binary to support
1321.Pp
1322.IP "--enable-select"
1323.nr bi 1
1324.Pp
1325Deprecated.
1326Automatic checks will enable best I/O loop method available.
1327.Pp
1328.IP "--enable-epoll"
1329.nr bi 1
1330.Pp
1331Deprecated.
1332Automatic checks will enable best I/O loop method available.
1333.Pp
1334.IP "--enable-poll"
1335.nr bi 1
1336.Pp
1337Deprecated.
1338Automatic checks will enable best I/O loop method available.
1339.Pp
1340.IP "--enable-kqueue"
1341.nr bi 1
1342.Pp
1343kqueue 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
1347Not yet available options
1348
1349.Pp
1350These configure options have not yet been ported to Squid-3. If you need something to do then
1351porting 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
1359Support for Solaris /dev/poll
1360.Pp
1361.IP "--enable-select-simple"
1362.nr bi 1
1363.Pp
1364Basic POSIX select() loop without any binary fd_set optimizations.
1365.Pp
1366.IP "--enable-follow-x-forwarded-for"
1367.nr bi 1
1368.Pp
1369Support following the X-Forwarded-For HTTP header for determining the
1370client IP address
1371.if \n(ll>1 .RE
1372.nr ll -1
1373.Pp
1374Removed options
1375
1376.Pp
1377The 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
1385Most 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
1389Debug option, not needed and therefore removed.
1390.IP "--enable-forward-log"
1391.nr bi 1
1392.Pp
1393Rarely used extra log file. Removed.
1394.IP "--enable-multicast-miss"
1395.nr bi 1
1396.Pp
1397Rarely used feature, and multicast ICP acheives almost the same result. Removed.
1398.IP "--enable-coss-aio-ops"
1399.nr bi 1
1400.Pp
1401Specific to the COSS implementation in Squid-2
1402.IP "--enable-large-cache-files"
1403.nr bi 1
1404.Pp
1405Now enabled by default. Configure option was redundant and therefore removed.
1406.IP "--enable-truncate"
1407.nr bi 1
1408.Pp
1409Known 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