]> git.ipfire.org Git - thirdparty/squid.git/blob - doc/release-notes/release-3.0.sgml
Merge from trunk
[thirdparty/squid.git] / doc / release-notes / release-3.0.sgml
1 <!doctype linuxdoc system>
2 <article>
3 <title>Squid 3.0.RC1 release notes</title>
4 <author>Squid Developers</author>
5 <date>$Id: release-3.0.sgml,v 1.31 2007/12/14 05:34:16 amosjeffries 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.RC1 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 A large number of the show-stopper bugs have been fixed along with general improvements to the ICAP support.
22 While this release is not deemed ready for production use, we believe it is ready for wider testing by the community.
23
24 We welcome feedback and bug reports. If you find a bug, please see <url url="http://wiki.squid-cache.org/SquidFaq/TroubleShooting#head-7067fc0034ce967e67911becaabb8c95a34d576d"> for how to submit a report with a stack trace.
25
26 <sect>Known issues
27 <p>
28 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">.
29
30 <sect>Changes since earlier releases of Squid-3.0
31 <p>
32 The 3.0 change history can be <url url="http://www.squid-cache.org/Versions/v3/3.0/changesets/" name="viewed here">.
33
34 <sect>Changes since Squid-2.6
35
36 <sect1>Major new features
37 <p>
38 Squid 3.0 represents a major rewrite of Squid and has a number of new features.
39
40 The most important of these are:
41
42 <itemize>
43 <item>Code converted to C++, with significant internal restructuring and rewrites.
44 <item>ICAP implementation (RFC 3507 and www.icap-forum.org)
45 <item>Edge Side Includes (ESI) implementation (www.esi.org)
46 </itemize>
47
48 Most user-facing changes are reflected in squid.conf (see below).
49
50 <sect2>Internet Content Adaptation Protocol (ICAP)
51
52 <p>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:
53
54 <verb>
55 icap_enable on
56 icap_service service_req reqmod_precache 1 icap://127.0.0.1:1344/request
57 icap_service service_resp respmod_precache 0 icap://127.0.0.1:1344/response
58 icap_class class_req service_req
59 icap_class class_resp service_resp
60 icap_access class_req allow all
61 icap_access class_resp allow all
62 </verb>
63
64 <p>Please see squid.conf.default for more details about these and many other icap_* options.
65
66 <p>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.
67
68 <p>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.
69
70 <p>Proxy-directed data trickling and patience pages are not supported yet.
71
72 <p>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).
73
74 <p>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.
75
76 <p>More information about ICAP can be found from the ICAP-forum website <url url="http://www.icap-forum.org">
77
78 <sect2>Edge Side Includes (ESI)
79
80 <p>ESI is an open specification of an markup language enabling reverse proxies
81 to perform some simple XML based processing, offloading the final page assembly from the webserver and similar tasks.
82
83 <p>More information about ESI can be found from the ESI website <url url="http://www.esi.org">
84
85 <sect1>2.6 features not found in Squid-3.0
86 <p>
87 Some of the features found in Squid-2.6 is not available in Squid-3.
88 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.
89
90 <itemize>
91 <item>refresh_stale_hit option. Not yet ported.
92 <item>ability to follow X-Forwarded-For. Not yet ported.
93 <item>Full caching of Vary/ETag using If-None-Match. Only basic Vary cache supported. Not yet ported.
94 <item>Mapping of server error messages. Not yet ported.
95 <item>http_access2 access directive. Not yet ported.
96 <item>Location header rewrites. Not yet ported.
97 <item>umask directive. Not yet ported.
98 <item>wais_relay. Feature dropped as it's equivalent to cache_peer + cache_peer_access.
99 <item>urlgroup. Not yet ported.
100 <item>collapsed forwarding. Not yet ported.
101 <item>stable Windows support. Irregularly maintained.
102 </itemize>
103
104 <sect1>Logging changes
105 <sect2>access.log
106 <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:
107
108 <descrip>
109 <tag>TCP_REFRESH_UNMODIFIED</tag>
110 <p>The requested object was cached but STALE. The IMS query for the object resulted in "304 not modified".
111 <tag>TCP_REFRESH_MODIFIED</tag>
112 <p>The requested object was cached but STALE. The IMS query returned the new content.
113 </descrip>
114 <p>See <url url="http://www.squid-cache.org/Doc/FAQ/FAQ-6.html#ss6.7"> for a definition of all log types.
115 <sect>Windows support
116 <P>This Squid version can run on Windows as a system service using the Cygwin emulation environment,
117 or can be compiled in Windows native mode using the MinGW + MSYS development environment. Windows NT 4 SP4 and later are supported.<newline>
118 On Windows 2000 and later the service is configured to use the Windows Service Recovery option
119 restarting automatically after 60 seconds.
120 <descrip>
121
122 <tag>Usage</tag>
123
124 Some new command line options were added for the Windows service support:<newline>
125
126 The service installation is made with -i command line switch, it's possible to use -f switch at
127 the same time for specify a different config-file settings for the Squid Service that will be
128 stored on the Windows Registry.
129
130 A new -n switch specify the Windows Service Name, so multiple Squid instance are allowed.
131 <em/"Squid"/ is the default when the switch is not used.
132
133 So, to install the service, the syntax is:
134
135 <verb>squid -i [-f file] [-n name]</verb>
136
137 Service uninstallation is made with -r command line switch with the appropriate -n switch.
138
139 The -k switch family must be used with the appropriate -f and -n switches, so the syntax is:
140
141 <verb>squid -k command [-f file] -n service-name</verb>
142 where <em/service-name/ is the name specified with -n options at service install time.
143
144 To use the Squid original command line, the new -O switch must be used ONCE, the syntax is:
145
146 <verb>squid -O cmdline [-n service-name]</verb>
147 If multiple service command line options must be specified, use quote. The -n switch is
148 needed only when a non default service name is in use.
149
150 Don't use the "Start parameters" in the Windows 2000/XP/2003 Service applet: they are
151 specific to Windows services functionality and Squid is not designed for understand they.
152
153 In the following example the command line of the "squidsvc" Squid service is set to "-D -u 3130":
154
155 <verb>squid -O "-D -u 3130" -n squidsvc</verb>
156 </descrip>
157
158 <descrip>
159 <tag>PSAPI.DLL (Process Status Helper) Considerations</tag>
160
161 The process status helper functions make it easier for you to obtain information about
162 processes and device drivers running on Microsoft® Windows NT®/Windows® 2000. These
163 functions are available in PSAPI.DLL, which is distributed in the Microsoft® Platform
164 Software Development Kit (SDK). The same information is generally available through the
165 performance data in the registry, but it is more difficult to get to it. PSAPI.DLL is
166 freely redistributable.
167
168 PSAPI.DLL is available only on Windows NT, 2000, XP and 2003. The implementation in Squid is
169 aware of this, and try to use it only on the right platform.
170
171 On Windows NT PSAPI.DLL can be found as component of many applications, if you need it,
172 you can find it on Windows NT Resource KIT. If you have problem, it can be
173 downloaded from here:
174 <url url="http://download.microsoft.com/download/platformsdk/Redist/4.0.1371.1/NT4/EN-US/psinst.EXE" name="http://download.microsoft.com/download/platformsdk/Redist/4.0.1371.1/NT4/EN-US/psinst.EXE">
175
176 On Windows 2000 and later it is available installing the Windows Support Tools, located on the
177 Support\Tools folder of the installation Windows CD-ROM.
178 </descrip>
179
180 <descrip>
181 <tag>Registry DNS lookup</tag>
182 On Windows platforms, if no value is specified in the <em/dns_nameservers/ option on
183 squid.conf or in the /etc/resolv.conf file, the list of DNS name servers are
184 taken from the Windows registry, both static and dynamic DHCP configurations
185 are supported.
186 </descrip>
187
188 <descrip>
189 <tag>Compatibility Notes</tag>
190 <itemize>
191 <item>It's recommended to use '/' char in Squid paths instead of '\'
192 <item>Paths with spaces (like 'C:\Programs Files\Squid) are NOT supported by Squid
193 <item>When using ACL like 'acl aclname acltype "file"' the file must be in DOS text
194 format (CR+LF) and the full Windows path must be specified, for example:
195
196 <verb>acl blocklist url_regex -i "c:/squid/etc/blocked1.txt"</verb>
197
198 <item>The Windows equivalent of '/dev/null' is 'NUL'
199 <item>Squid doesn't know how to run external helpers based on scripts, like .bat, .cmd,
200 .vbs, .pl, etc. So in squid.conf the interpreter path must be always specified, for example:
201
202 <verb>redirect_program c:/perl/bin/perl.exe c:/squid/libexec/redir.pl
203 redirect_program c:/winnt/system32/cmd.exe /C c:/squid/libexec/redir.cmd</verb>
204 <item>When Squid runs in command line mode, the launching user account must have administrative privilege on the system
205 <item>"Start parameters" in the Windows 2000/XP/2003 Service applet cannot be used
206 <item>Building with MinGW, when the configure option --enable-truncate is used, Squid cannot run on Windows NT, only Windows 2000 and later are supported
207 </itemize>
208 </descrip>
209
210 <descrip>
211 <tag>Known Limitations</tag>
212 <itemize>
213 <item>Squid features not operational:<newline>
214 <itemize>
215 <item>DISKD: still needs to be ported<newline>
216 <item>WCCP: cannot work because user space GRE support on Windows is missing<newline>
217 <item>Transparent Proxy: missing Windows non commercial interception driver<newline>
218 </itemize>
219 <item>Some code sections can make blocking calls.
220 <item>Some external helpers may not work.
221 <item>File Descriptors number hard-limited to 2048 when building with MinGW.
222 </itemize>
223 </descrip>
224
225 <descrip>
226 <tag>Building Squid on Windows</tag>
227 A reasonably recent release of <url url="http://www.cygwin.com/" name="Cygwin"> or <url url="http://www.mingw.org/" name="MinGW"> is needed.<newline>
228 The usage of the Cygwin environment is very similar to other Unix/Linux environments, and -devel version of libraries must be installed.<newline>
229 For the MinGW environment, the packages MSYS, MinGW and msysDTK must be installed. Some additional libraries and tools must be downloaded separately:<newline><newline>
230 OpenSSL: <url url="http://www.slproweb.com/products/Win32OpenSSL.html" name="Shining Light Productions Win32 OpenSSL"><newline>
231 libcrypt: <url url="http://sourceforge.net/projects/mingwrep/" name="MinGW packages repository"><newline>
232 db-1.85: <url url="http://tinycobol.org/download.html" name="TinyCOBOL download area"><newline>
233 uudecode: <url url="http://unxutils.sourceforge.net/" name="Native Win32 ports of some GNU utilities"><newline><newline>
234 When running configure, --disable-wccp and --disable-wccpv2 options should always specified to avoid compile errors.<newline>
235 <itemize>
236 <item>New configure options:<newline>
237 <itemize>
238 <item>--enable-win32-service<newline>
239 </itemize>
240 <item>Updated configure options:<newline>
241 <itemize>
242 <item>--enable-arp-acl<newline>
243 <item>--enable-default-hostsfile<newline>
244 </itemize>
245 <item>Unsupported configure options:<newline>
246 <itemize>
247 <item>--enable-coss-aio-ops: On Windows Posix AIO is not available<newline>
248 <item>--with-large-files: No suitable build environment is available on both Cygwin and MinGW, but --enable-large-cache-files works fine<newline>
249 </itemize>
250 <item>Recommended configure minimal options for Windows:<newline>
251 <itemize>
252 <item>--prefix=c:/squid --disable-wccp --disable-wccpv2 --enable-win32-service --enable-default-hostsfile=none
253 </itemize>
254 </itemize>
255 <newline>
256 Before build Squid with SSL support, some operations are needed (in the following example OpenSSL is installed in C:\OpenSSL and MinGW in C:\MinGW):
257 <itemize>
258 <item>Copy C:\OpenSSL\lib\MinGW content to C:\MinGW\lib<newline>
259 <item>Copy C:\OpenSSL\include\openssl content to C:\MinGW\include\openssl<newline>
260 <item>Rename C:\MinGW\lib\ssleay32.a to C:\MinGW\lib\libssleay32.a<newline>
261 </itemize>
262
263 </descrip>
264
265 <descrip>
266 <tag>Using cache manager on Windows:</tag>
267 On Windows, cache manager (cachemgr.cgi) can be used with Microsoft IIS or Apache.<newline>
268 Some specific configuration could be needed:<newline>
269 <itemize>
270 <item>IIS 6 (Windows 2003):<newline>
271 <itemize>
272 <item>On IIS 6.0 all CGI extensions are denied by default for security reason, so the following configuration is needed:<newline>
273 <itemize>
274 <item>Create a cgi-bin Directory
275 <item>Define the cgi-bin IIS Virtual Directory with read and CGI execute IIS
276 permissions, ASP scripts are not needed. This automatically defines a
277 cgi-bin IIS web application
278 <item>Copy cachemgr.cgi into cgi-bin directory and look to file permissions:
279 the IIS system account and SYSTEM must be able to read and execute the file
280 <item>In IIS manager go to Web Service extensions and add a new Web Service
281 Extension called <em/"Squid Cachemgr"/, add the cachemgr.cgi file and set the
282 extension status to <em/Allowed/
283 </itemize>
284 </itemize>
285 <item>Apache:<newline>
286 <itemize>
287 <item>On Windows, cachemgr.cgi needs to create a temporary file, so Apache must be instructed
288 to pass the TMP and TEMP Windows environment variables to CGI applications:<newline>
289 <verb>
290 ScriptAlias /squid/cgi-bin/ "c:/squid/libexec/"
291 &lt;Location /squid/cgi-bin/cachemgr.cgi&gt;
292 PassEnv TMP TEMP
293 Order allow,deny
294 Allow from workstation.example.com
295 &lt;/Location&gt;
296 </verb>
297 </itemize>
298 </itemize>
299 </descrip>
300
301
302
303 <sect1>Changes to squid.conf
304 <p>
305 There have been many changes to Squid's configuration file since Squid-2.6.
306
307 This section gives a thorough account of those changes in three categories:
308
309 <itemize>
310 <item><ref id="newtags" name="New tags">
311 <item><ref id="modifiedtags" name="Changes to existing tags">
312 <item><ref id="removedtags" name="Removed tags">
313 </itemize>
314
315 <p>
316
317
318
319 <sect2>New tags<label id="newtags">
320
321 <p>
322 <descrip>
323 <tag>minimum_icp_query_timeout (msec)</tag>
324 <verb>
325 Default: 5
326
327 Normally the ICP query timeout is determined dynamically. But
328 sometimes it can lead to very small timeouts, even lower than
329 the normal latency variance on your link due to traffic.
330 Use this option to put an lower limit on the dynamic timeout
331 value. Do NOT use this option to always use a fixed (instead
332 of a dynamic) timeout value. To set a fixed timeout see the
333 'icp_query_timeout' directive.
334 </verb>
335 <tag>background_ping_rate</tag>
336 <verb>
337 Default: 10 seconds
338
339 Controls how often the ICP pings are sent to siblings that
340 have background-ping set.
341 </verb>
342
343 <tag>httpd_accel_surrogate_id</tag>
344 <verb>
345 Default: unset
346
347 Surrogates (http://www.esi.org/architecture_spec_1.0.html)
348 need an identification token to allow control targeting. Because
349 a farm of surrogates may all perform the same tasks, they may share
350 an identification token.
351 </verb>
352
353 <tag>http_accel_surrogate_remote on|off</tag>
354 <verb>
355 Default: off
356
357 Remote surrogates (such as those in a CDN) honour Surrogate-Control: no-store-remote.
358 Set this to on to have squid behave as a remote surrogate.
359 </verb>
360
361 <tag>esi_parser libxml2|expat|custom</tag>
362 <verb>
363 Default: custom
364
365 ESI markup is not strictly XML compatible. The custom ESI parser
366 will give higher performance, but cannot handle non ASCII character
367 encodings.
368 </verb>
369
370 <tag>email_err_data on|off</tag>
371 <verb>
372 Default: on
373
374 If enabled, information about the occurred error will be
375 included in the mailto links of the ERR pages (if %W is set)
376 so that the email body contains the data.
377 Syntax is &lt;A HREF="mailto:%w%W"&gt;%w&lt;/A&gt;
378 </verb>
379
380 <tag>refresh_all_ims on|off</tag>
381 <verb>
382 Default: off
383
384 When you enable this option, squid will always check
385 the origin server for an update when a client sends an
386 If-Modified-Since request. Many browsers use IMS
387 requests when the user requests a reload, and this
388 ensures those clients receive the latest version.
389
390 By default (off), squid may return a Not Modified response
391 based on the age of the cached version.
392 </verb>
393 <tag>request_header_access</tag>
394 <p>Replaces the header_access directive of Squid-2.6 and earlier, but applies to requests only.
395 <tag>reply_header_access</tag>
396 <p>Replaces the header_access directive of Squid-2.6 and earlier, but applies to replies only.
397
398 <tag>icap_enable on|off</tag>
399 <verb>
400 Default: off
401
402 If you want to enable the ICAP module support, set this to on.
403 </verb>
404 <tag>icap_preview_enable on|off</tag>
405 <verb>
406 Default: off
407
408 Set this to 'on' if you want to enable the ICAP preview
409 feature in Squid.
410 </verb>
411 <tag>icap_preview_size</tag>
412 <verb>
413 Default: -1
414
415 The default size of preview data to be sent to the ICAP server.
416 -1 means no preview. This value might be overwritten on a per server
417 basis by OPTIONS requests.
418 </verb>
419 <tag>icap_default_options_ttl (seconds)</tag>
420 <verb>
421 Default: 60
422
423 The default TTL value for ICAP OPTIONS responses that don't have
424 an Options-TTL header.
425 </verb>
426 <tag>icap_persistent_connections on|off</tag>
427 <verb>
428 Default: on
429
430 Whether or not Squid should use persistent connections to
431 an ICAP server.
432 </verb>
433 <tag>icap_send_client_ip on|off</tag>
434 <verb>
435 Default: off
436
437 This adds the header "X-Client-IP" to ICAP requests.
438 </verb>
439 <tag>icap_send_client_username on|off</tag>
440 <verb>
441 Default: off
442
443 This adds the header "X-Client-Username" to ICAP requests
444 if proxy access is authentified.
445 </verb>
446 <tag>icap_service</tag>
447 <verb>
448 Default: none
449
450 Defines a single ICAP service
451
452 icap_service servicename vectoring_point bypass service_url
453
454 vectoring_point = reqmod_precache|reqmod_postcache|respmod_precache|respmod_postcache
455 This specifies at which point of request processing the ICAP
456 service should be plugged in.
457 bypass = 1|0
458 If set to 1 and the ICAP server cannot be reached, the request will go
459 through without being processed by an ICAP server
460 service_url = icap://servername:port/service
461
462 Note: reqmod_precache and respmod_postcache is not yet implemented
463
464 Example:
465 icap_service service_1 reqmod_precache 0 icap://icap1.mydomain.net:1344/reqmod
466 icap_service service_2 respmod_precache 0 icap://icap2.mydomain.net:1344/respmod
467 </verb>
468 <tag>icap_class</tag>
469 <verb>
470 Default: none
471
472 Defines an ICAP service chain. If there are multiple services per
473 vectoring point, they are processed in the specified order.
474
475 icap_class classname servicename...
476
477 Example:
478 icap_class class_1 service_1 service_2
479 icap class class_2 service_1 service_3
480 </verb>
481 <tag>icap_access</tag>
482 <verb>
483 Default: none
484
485 Redirects a request through an ICAP service class, depending
486 on given acls
487
488 icap_access classname allow|deny [!]aclname...
489
490 The icap_access statements are processed in the order they appear in
491 this configuration file. If an access list matches, the processing stops.
492 For an "allow" rule, the specified class is used for the request. A "deny"
493 rule simply stops processing without using the class. You can also use the
494 special classname "None".
495
496 For backward compatibility, it is also possible to use services
497 directly here.
498
499 Example:
500 icap_access class_1 allow all
501 </verb>
502
503 <tag>accept_filter</tag>
504 <verb>
505 The name of an accept(2) filter to install on Squid's
506 listen socket(s). This feature is perhaps specific to
507 FreeBSD and requires support in the kernel.
508
509 The 'httpready' filter delays delivering new connections
510 to Squid until a full HTTP request has been received.
511 See the accf_http(9) man page.
512 </verb>
513 </descrip>
514
515
516 <sect2>Changes to existing tags<label id="modifiedtags">
517 <p>
518 <descrip>
519 <tag>http_port</tag>
520 <p>New options:
521 <verb>
522 disable-pmtu-discovery=
523 Control Path-MTU discovery usage:
524 off lets OS decide on what to do (default).
525 transparent disable PMTU discovery when transparent support is enabled.
526 always disable always PMTU discovery.
527
528 In many setups of transparently intercepting proxies Path-MTU
529 discovery can not work on traffic towards the clients. This is
530 the case when the intercepting device does not fully track
531 connections and fails to forward ICMP must fragment messages
532 to the cache server. If you have such setup and experience that
533 certain clients sporadically hang or never complete requests set
534 disable-pmtu-discovery option to 'transparent'.
535 </verb>
536 <p>Removed options:
537 <verb>
538 urlgroup=, not yet ported to Squid-3.
539
540 no-connection-auth, not yet ported to Squid-3.
541 </verb>
542 <tag> https_port</tag>
543 <p>Removed options:
544 <verb>
545 urlgroup=, not yet ported to Squid-3.
546 </verb>
547 <tag>cache_peer</tag>
548 <p>New options:
549 <verb>
550 basetime=n
551
552 background-ping
553
554 weighted-round-robin
555
556 use 'basetime=n' to specify a base amount to
557 be subtracted from round trip times of parents.
558 It is subtracted before division by weight in calculating
559 which parent to fectch from. If the rtt is less than the
560 base time the rtt is set to a minimal value.
561
562 use 'background-ping' to only send ICP queries to this
563 neighbor infrequently. This is used to keep the neighbor
564 round trip time updated and is usually used in
565 conjunction with weighted-round-robin.
566
567 use 'weighted-round-robin' to define a set of parents
568 which should be used in a round-robin fashion with the
569 frequency of each parent being based on the round trip
570 time. Closer parents are used more often.
571 Usually used for background-ping parents.
572
573 </verb>
574 <p>Removed options:
575 <verb>
576 userhash, not yet ported to Squid-3
577
578 sourcehash, not yet ported to Squid-2
579
580 monitorurl, monitorsize etc, not yet ported to Squid-3
581
582 connection-auth=, not yet ported to Squid-3
583 </verb>
584 <tag>cache_dir</tag>
585 <p>Common options
586 <verb>
587 no-store, replaces the older read-only option
588
589 min-size, not yet portedto Squid-3
590 </verb>
591 <p>COSS file system:
592 <verb>
593 The coss file store is experimental, and still lacks much
594 of the functionality found in 2.6.
595
596 overwrite-percent=n, not yet ported to Squid-3.
597
598 max-stripe-waste=n, not yet ported to Squid-3.
599
600 membufs=n, not yet ported to Squid-3.
601
602 maxfullbufs=n, not yet ported to Squid-3.
603 </verb>
604 <tag>auth_param</tag>
605 <p>Removed Basic auth option
606 <verb>
607 blankpasswor, not yet ported to squid-3.
608 auth_param basic concurrency 0
609 </verb>
610 <p>Removed digest options:
611 <verb>
612 concurrency, not yet ported to Squid-3.
613 </verb>
614
615 <tag>external_acl_type</tag>
616 <p>New format specifications:
617 <verb>
618 %URI Requested URI
619
620 %PATH Requested URL path
621 </verb>
622 <P>Removed format specifications:
623 <verb>
624 %ACL, not yet ported to Squid-3
625
626 %DATA, not yet ported to Squid-3
627 </verb>
628 <p>New result keywords:
629 <verb>
630 tag= Apply a tag to a request (for both ERR and OK results)
631 Only sets a tag, does not alter existing tags.
632 </verb>
633
634 <tag>refresh_pattern</tag>
635 <p>New options:
636 <verb>
637 ignore-no-store
638 refresh-ims
639
640 ignore-no-store ignores any ``Cache-control: no-store''
641 headers received from a server. Doing this VIOLATES
642 the HTTP standard. Enabling this feature could make you
643 liable for problems which it causes.
644
645 refresh-ims causes squid to contact the origin server
646 when a client issues an If-Modified-Since request. This
647 ensures that the client will receive an updated version
648 if one is available.
649 </verb>
650 <tag>acl</tag>
651 <p>New types:
652 <verb>
653 acl aclname http_status 200 301 500- 400-403 ... # status code in reply
654
655 </verb>
656 <p>Removed types:
657 <verb>
658 acl aclname urllogin [-i] [^a-zA-Z0-9] ... # regex matching on URL login field
659
660 acl urlgroup group1 ...
661 # match against the urlgroup as indicated by redirectors
662
663 </verb>
664 <tag>short_icon_urls</tag>
665 <p>New default:
666 <verb>
667 Default: on
668 (Old default: off)
669 </verb>
670 <tag>delay_class</tag>
671 <p>New delay classes:
672 <verb>
673 class 4 Everything in a class 3 delay pool, with an
674 additional limit on a per user basis. This
675 only takes effect if the username is established
676 in advance - by forcing authentication in your
677 http_access rules.
678
679 class 5 Requests are grouped according their tag (see
680 external_acl's tag= reply).
681 </verb>
682
683 <tag>htcp_port</tag>
684 <p>New default to require the feature to be enabled in squid.conf:
685 <verb>
686 Default: 0 (disabled)
687 (Old default: 4827)
688 </verb>
689
690 <tag>icp_port</tag>
691 <p>New default to require the feature to be enabled in squid.conf:
692 <verb>
693 Default: 0 (disabled)
694 (Old default: 3130)
695 </verb>
696
697 <tag>snmp_port</tag>
698 <p>New default to require the feature to be enabled in squid.conf:
699 <verb>
700 Default: 0 (disabled)
701 (Old default: 3401)
702 </verb>
703
704 <tag>logformat</tag>
705 <p>New format tags:
706 <verb>
707 rp Request URL-Path excluding hostname
708
709 et Tag returned by external acl
710
711 &lt;sH Reply high offset sent
712
713 &lt;sS Upstream object size
714 </verb>
715
716 <p>Removed format tags:
717 <verb>
718 &gt;st Request size including HTTP headers, not yet ported to Squid-3.
719
720 st Request+Reply size including HTTP headers, not yet ported to Squid-3.
721 </verb>
722
723 <tag>reply_body_max_size</tag>
724 <p>Syntax changed:
725 <verb>
726 reply_body_max_size size [acl acl...]
727 </verb>
728 <p>allow/deny no longer used.
729
730 <tag>url_rewrite_program</tag>
731 <p>No urlgroup support in either requests or responese
732 </descrip>
733
734
735
736
737 <sect2>Removed tags<label id="removedtags">
738 <p>
739 <descrip>
740 <tag>broken_vary_encoding</tag>
741 <p>Not yet ported to Squid-3.
742 <tag>cache_vary</tag>
743 <p>Not yet ported to Squid-3.
744 <tag>collapsed_forwarding</tag>
745 <p>Not yet ported to Squid-3.
746 <tag>follow_x_forwarded_for</tag>
747 <p>Not yet ported to Squid-3.
748 <tag>*_uses_indirect_client</tag>
749 <p>Not yet ported to Squid-3.
750 <tag>error_map</tag>
751 <p>Not yet ported to Squid-3.
752 <tag>header_access</tag>
753 <p>This has been replaced by request_header_access and reply_header_access
754 <tag>http_access2</tag>
755 <p>Not yet ported to Squid-3.
756 <tag>httpd_accel_no_pmtu_disc</tag>
757 <p>Replaced by disable-pmtu-discovery http_port option
758 <tag>location_rewrite_*</tag>
759 <p>Not yet ported to Squid-3.
760 <tag>refresh_stale_hit</tag>
761 <p>Not yet ported to Squid-3.
762 <tag>umask</tag>
763 <p>Not yet ported to Squid-3.
764 <tag>wais_relay_*</tag>
765 <p>equivalent to cache_peer + cache_peer_access.
766 </descrip>
767
768
769 <sect1>Changes to ./configure Options
770 <p>
771 There have been some changes to Squid's build configuration since Squid-2.6.
772
773 This section gives an account of those changes in three categories:
774
775 <itemize>
776 <item><ref id="newoptions" name="New options">
777 <item><ref id="modifiedoptions" name="Changes to existing options">
778 <item><ref id="notportedoptions" name="Not yet available options">
779 <item><ref id="removedoptions" name="Removed options">
780 </itemize>
781 <p>
782
783
784 <sect2>New options<label id="newoptions">
785
786 <p>
787 <descrip>
788 <tag>--enable-shared[=PKGS]</tag>
789 <p>Build shared libraries. The default is to build without.</p>
790
791 <tag>--enable-static[=PKGS]</tag>
792 <p>Build static libraries. The default is on.</p>
793
794 <tag>--enable-fast-install[=PKGS]</tag>
795 <verb>Optimize for fast installation
796 default: yes</verb>
797
798 <tag>--disable-libtool-lock</tag>
799 <p>Avoid locking (might break parallel builds)</p>
800
801 <tag>--disable-optimizations</tag>
802 <p>Don't compile Squid with compiler optimizations enabled.
803 Optimization is good for production builds, but not
804 good for debugging. During development, use
805 --disable-optimizations to reduce compilation times
806 and allow easier debugging. This option implicitly
807 also enables --disable-inline</p>
808
809 <tag>--disable-inline</tag>
810 <p>Don't compile trivial methods as inline. Squid
811 is coded with much of the code able to be inlined.
812 Inlining is good for production builds, but not
813 good for development. During development, use
814 --disable-inline to reduce compilation times and
815 allow incremental builds to be quick. For
816 production builds, or load tests, use
817 --enable-inline to have squid make all trivial
818 methods inlinable by the compiler.</p>
819
820 <tag>--enable-debug-cbdata</tag>
821 <p>Provide some debug information in cbdata</p>
822
823 <tag>--enable-disk-io=\"list of modules\"</tag>
824 <p>Build support for the list of disk I/O modules.
825 The default is only to build the "Blocking" module.
826 See src/DiskIO for a list of available modules, or
827 Programmers Guide for details on how to build your
828 custom disk module.</p>
829
830 <tag>--enable-esi</tag>
831 <p>Enable ESI for accelerators. Requires libexpat.
832 Enabling ESI will cause squid to follow the Edge
833 Acceleration Specification (www.esi.org). This
834 causes squid to IGNORE client Cache-Control headers.</p>
835 <p><em>DO NOT</em> use this in a squid configured as a web
836 proxy, ONLY use it in a squid configured for
837 webserver acceleration.</p>
838
839 <tag>--enable-icap-client</tag>
840 <p>Enable the ICAP client.</p>
841
842 <tag>--disable-snmp</tag>
843 <p>Disable SNMP monitoring support which is now built by default.</p>
844
845 <tag>--disable-htcp</tag>
846 <p>Disable HTCP protocol support which is now built by default.</p>
847
848 <tag>--enable-kqueue</tag>
849 <p>Enable kqueue() support. Marked as experimental in 3.0.</p>
850
851 <tag>--enable-ipfw-transparent</tag>
852 <p>Enable Transparent Proxy support for systems
853 using FreeBSD IPFW style redirection.</p>
854
855 <tag>--disable-mempools</tag>
856 <p>Disable memPools. Note that this option now simply sets the
857 default behaviour. Specific classes can override this at runtime, and
858 only lib/MemPool.c needs to be altered to change the squid-wide
859 default for all classes.</p>
860
861 <tag>--enable-cpu-profiling</tag>
862 <p>This option allows you to see which internal functions
863 in Squid are consuming how much CPU. Compiles in probes
864 that measure time spent in probed functions. Needs
865 source modifications to add new probes. This is meant
866 for developers to assist in performance optimisations
867 of Squid internal functions.</p>
868 <p>If you are not developer and not interested in the stats
869 you shouldn't enable this, as overhead added, although
870 small, is still overhead. See lib/Profiler.c for more.</p>
871
872 <tag>--with-gnu-ld</tag>
873 <p>Assume the C compiler uses GNU ld. The default is to auto-detect.</p>
874
875 <tag>--with-pic</tag>
876 <p>Try to use only PIC/non-PIC objects. The default is to use both.</p>
877
878 <tag>--with-tags[=TAGS]</tag>
879 <p>Include additional configurations. The default is automatic.</p>
880
881 <tag>--with-default-user=USER</tag>
882 <p>Sets the default System User account for squid permissions.
883 The default is 'nobody' as in other releases of squid.</p>
884
885 <tag>--with-cppunit-basedir=[PATH]</tag>
886 <p>Path where the cppunit headers and libraries are found
887 for unit testing. The default is automatic detection.</p>
888 <p>NOTE: Since 3.0-PRE6 and 2.6STABLE14 squid no longer comes
889 bundled with CPPUnit. Compile-time validation will be disabled
890 if it is not installed on your system.</p>
891
892 </descrip>
893 </p>
894
895 <sect2>Changes to existing options<label id="modifiedoptions">
896
897 <p>
898 <descrip>
899 <tag>--enable-carp</tag>
900 <p>CARP support is now built by default.
901 --disable-carp can be used to build without it.</p>
902
903 <tag>--enable-htcp</tag>
904 <p>HTCP protocol support is now built by default.
905 Use --disable-htcp to build without it.</p>
906
907 <tag>--enable-snmp</tag>
908 <p>SNMP monitoring is now build by default.
909 Use --disable-snmp to build without it.</p>
910
911 <tag>--enable-heap-replacement</tag>
912 <p>Please use --enable-removal-policies directive instead.</p>
913
914 <tag>--with-maxfd=N</tag>
915 <p>Replaced by --with-filedescriptors=N</p>
916 <p>Override maximum number of filedescriptors. Useful
917 if you build as another user who is not privileged
918 to use the number of filedescriptors you want the
919 resulting binary to support</p>
920
921 <tag>--enable-select</tag>
922 <p>Deprecated.
923 Automatic checks will enable best I/O loop method available.</p>
924
925 <tag>--enable-epoll</tag>
926 <p>Deprecated.
927 Automatic checks will enable best I/O loop method available.</p>
928
929 <tag>--enable-poll</tag>
930 <p>Deprecated.
931 Automatic checks will enable best I/O loop method available.</p>
932
933 <tag>--enable-kqueue</tag>
934 <p>kqueue support is marked Experimental in Squid 3.0. Known to have some issues under load.</p>
935
936 </descrip>
937 </p>
938
939 <sect2>Not yet available options<label id="notportedoptions">
940
941 <p>These configure options have not yet been ported to Squid-3. If you need something to do then
942 porting one of these from Squid-2 to Squid-3 is most welcome.
943
944 <descrip>
945 <tag>--enable-devpoll</tag>
946 <p>Support for Solaris /dev/poll</p>
947
948 <tag>--enable-select-simple</tag>
949 <p>Basic POSIX select() loop without any binary fd_set optimizations.</p>
950
951 <tag>--enable-follow-x-forwarded-for</tag>
952 <p>Support following the X-Forwarded-For HTTP header for determining the
953 client IP address</p>
954 </descrip>
955
956 <sect2>Removed options<label id="removedoptions">
957
958 <p>The following configure options have been removed.
959
960 <descrip>
961 <tag>--enable-dlmalloc</tag>
962 <p>Most OS:es have good malloc implementations these days, and the version we used to ship with Squid was very very old..</p>
963 <tag>--enable-mempool-debug</tag>
964 <p>Debug option, not needed and therefore removed.</p>
965 <tag>--enable-forward-log</tag>
966 <p>Rarely used extra log file. Removed.</p>
967 <tag>--enable-multicast-miss</tag>
968 <p>Rarely used feature, and multicast ICP acheives almost the same result. Removed.</p>
969 <tag>--enable-coss-aio-ops</tag>
970 <p>Specific to the COSS implementation in Squid-2</p>
971 <tag>--enable-large-cache-files</tag>
972 <p>Now enabled by default. Configure option was redundant and therefore removed.
973 <tag>--enable-truncate</tag>
974 <p>Known to cause race conditions where cache objects may get corrupted, and this for at most a marginal performance improvement. Removed.</p>
975
976 </descrip>
977
978 </article>