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