Squid is a high-performance proxy caching server for web clients, supporting FTP, gopher, and HTTP data objects. Unlike traditional caching software, Squid handles all requests in a single, non-blocking, I/O-driven process.
Squid keeps meta data and especially hot objects cached in RAM, caches DNS lookups, supports non-blocking DNS lookups, and implements negative caching of failed requests.
Squid supports SSL, extensive access controls, and full request logging. By using the lightweight Internet Cache Protocol, Squid caches can be arranged in a hierarchy or mesh for additional bandwidth savings.
Squid consists of a main server program squid, a Domain Name System lookup program dnsserver, some optional programs for rewriting requests and performing authentication, and some management and client tools. When squid starts up, it spawns a configurable number of dnsserver processes, each of which can perform a single, blocking Domain Name System (DNS) lookup. This reduces the amount of time the cache waits for DNS lookups.
Squid is derived from the ARPA-funded Harvest project.
Internet object caching is a way to store requested Internet objects (i.e., data available via the HTTP, FTP, and gopher protocols) on a system closer to the requesting site than to the source. Web browsers can then use the local Squid cache as a proxy HTTP server, reducing access time as well as bandwidth consumption.
Harris' Lament says, ``All the good ones are taken."
We needed to distinguish this new version from the Harvest cache software. Squid was the code name for initial development, and it stuck.
Squid is updated often; please see the Squid home page for the most recent versions.
Squid is the result of efforts by numerous individuals from the Internet community. Duane Wessels of the National Laboratory for Applied Network Research (funded by the National Science Foundation) leads code development. Please see the CONTRIBUTORS file for a list of our excellent contributors.
You can download Squid via FTP from the primary FTP site or one of the many worldwide mirror sites.
Many sushi bars also have Squid.
The software is designed to operate on any modern Unix system, and is known to work on at least the following platforms:
For more specific information, please see platforms.html. If you encounter any platform-specific problems, please let us know by registering a entry in our bug database.
Recent versions of Squid will compile and run on Windows/NT with the Cygwin / Mingw packages.
Guido Serassio maintains the native NT port of Squid and is actively working on having the needed changes integrated into the standard Squid distribution. Partially based on earlier NT port by Romeo Anghelache.
LogiSense has ported Squid to Windows NT and sells a supported version. You can also download the source from their FTP site. Thanks to LogiSense for making the code available as required by the GPL terms.
We also have a few other mailing lists which are not strictly Squid-related.
All of our mailing lists have ``-subscribe'' and ``-unsubscribe'' addresses that you must use for subscribe and unsubscribe requests. To unsubscribe from the squid-users list, you send a message to squid-users-unsubscribe@squid-cache.org.
As of version 2.5, Squid can terminate SSL connections. This is perhaps only useful in a surrogate (http accelerator) configuration. You must run configure with --enable-ssl. See https_port in squid.conf for more information.
Squid also supports these encrypted protocols by ``tunelling'' traffic between clients and servers. In this case, Squid can relay the encrypted bits between a client and a server.
Normally, when your browser comes across an https URL, it does one of two things:
The CONNECT method is a way to tunnel any kind of connection through an HTTP proxy. The proxy doesn't understand or interpret the contents. It just passes bytes back and forth between the client and server. For the gory details on tunnelling and the CONNECT method, please see RFC 2817 and Tunneling TCP based protocols through Web proxy servers (expired).
Squid is copyrighted by the University of California San Diego. Squid uses some code developed by others.
Squid is Free Software.
Squid is licensed under the terms of the GNU General Public License.
We think so. Squid uses the Unix time format for all internal time representations. Potential problem areas are in printing and parsing other time representations. We have made the following fixes in to address the year 2000:
Year-2000 fixes were applied to the following Squid versions:
Patches:
Squid-2.2 and earlier versions have a New Year bug. This is not strictly a Year-2000 bug; it would happen on the first day of any year.
Yep. Please see the commercial support page.
The following people have made contributions to this document:
Please send corrections, updates, and comments to: squid-faq@squid-cache.org.
This document is copyrighted (2000) by Duane Wessels.
This document was written in SGML and converted with the SGML-Tools package.
Most current version of this document can always be found at http://www.squid-cache.org/Doc/FAQ/ in HTML, Plain Text, Postscript and SGML formats.
It is easier for us if you send us text which is close to "correct" SGML. The SQUID FAQ currently uses the LINUXDOC DTD. Its probably easiest to follow examples in the this file. Here are the basics:
Use the <url> tag for links, instead of HTML <A HREF ...>
<url url="http://www.squid-cache.org" name="Squid Home Page">
Use <em> for emphasis, config options, and pathnames:
<em>usr/local/squid/etc/squid.conf</em> <em/cache_peer/
Here is how you do lists:
<itemize> <item>foo <item>bar </itemize>
Use <verb>, just like HTML's <PRE> to show unformatted text.