Contents
- What is Squid?
- What is Internet object caching?
- Why is it called Squid?
- What is the latest version of Squid?
- Who is responsible for Squid?
- Where can I get Squid?
- What Operating Systems does Squid support?
- Does Squid run on Windows ?
- What Squid mailing lists are available?
- I can't figure out how to unsubscribe from your mailing list.
- What other Squid-related documentation is available?
- Does Squid support SSL/HTTPS/TLS?
- What's the legal status of Squid?
- How to add a new Squid feature, enhance, of fix something?
- Can I pay someone for Squid support?
- Squid FAQ contributors
- About This Document
- Want to contribute?
What is Squid?
Squid is a high-performance proxy caching server for web clients, supporting FTP, gopher, and HTTP data objects. Squid handles all requests in a single, non-blocking, I/O-driven process over IPv4 or IPv6.
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, some optional programs for rewriting requests and performing authentication, and some management and client tools.
Squid is originally derived from the ARPA-funded Harvest project. Since then it has gone through many changes and has many new features.
What is Internet object caching?
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.
Why is it called Squid?
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.
What is the latest version of Squid?
This is best answered by the the Squid Versions page where you can also download the sources for releases and versions.
Who is responsible for Squid?
Squid is the result of efforts by numerous individuals from the Internet community. The core team and main contributors list is at WhoWeAre; a list of our excellent contributors can be seen in the CONTRIBUTORS file.
Where can I get Squid?
You can download Squid via FTP from one of the many worldwide mirror sites or the primary FTP site.
Many sushi bars also have Squid.
What Operating Systems does Squid support?
The software is designed to operate on any modern system, and is known to work on at least the following platforms:
BSD:
- BSDI
- DragonflyBSD
- FreeBSD
- Mac OS/X
- NetBSD
- NeXTStep
- OpenBSD
- SunOS/Solaris
Linux:
- CentOS
- Debian
- Fedora Core
- Gentoo
RedHat Enterprise Linux
- Ubuntu
Unix:
- OSF/Digital Unix/Tru64
- IRIX
- SCO Unix
- AIX
- HP-UX
Windows: (Cygwin and MinGW)
- Windows 2000 Server
- Windows NT
- Windows XP Server
- Windows 2003 Server
- Windows Vista Server
Other:
- OS/2
If you encounter any platform-specific problems, please let us know by registering an entry in our bug database. If you're curious about what is the best OS to run Squid, see BestOsForSquid.
If you would like your favorite OS to join the list above, please try to build the latest Squid on it and send any feedback to the squid-dev mailing list.
Does Squid run on Windows ?
Starting from 2.6.STABLE4, Squid will compile and run on Windows NT and later incarnations with the Cygwin / MinGW packages.
GuidoSerassio maintains the official native Windows port of Squid (built using the Microsoft toolchain) and is actively working on having the needed changes integrated into the standard Squid distribution. His effort is partially based on earlier Windows NT port by Romeo Anghelache.
The original development code name of the 2.5 project port was SquidNT, but after the 2.6.STABLE4 release, this project was complete. So when speaking about Squid on Windows, people should always refer to Squid, instead to the old SquidNT name.
What Squid mailing lists are available?
<squid-users AT squid-cache DOT org> hosts general discussions about the Squid cache software. subscribe via <squid-users-subscribe AT squid-cache DOT org>. Previous messages are available for browsing at the Squid Users Archive, and also at theaimsgroup.com and MarkMail.
squid-users-digest: digested (daily) version of above. Subscribe via <squid-users-digest-subscribe AT squid-cache DOT org>.
<squid-announce AT squid-cache DOT org> is a receive-only list for announcements of new versions and any major security issues. Subscribe via <squid-announce-subscribe AT squid-cache DOT org>.
<squid-bugs AT squid-cache DOT org> is meant for sending us bug reports. Bug reports received here are given priority over those mentioned on squid-users.
<squid AT squid-cache DOT org>: A closed list for sending us feed-back and ideas.
<squid-faq AT squid-cache DOT org>: A closed list for sending us feed-back, updates, and additions to the Squid FAQ. Bugzilla Website section can also be used.
<squid-dev AT squid-cache DOT org>: An open list for developer discussions about Squid code.
I can't figure out how to unsubscribe from your mailing list.
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 AT squid-cache DOT org>.
What other Squid-related documentation is available?
The Squid home page for information on the Squid software
Squid: The Definitive Guide written by Duane Wessels and published by O'Reilly and Associates January 2004.
The IRCache Mesh gives information on our operational mesh of caches.
The Squid FAQ (uh, you're reading it).
Authoritative Config Guides are available in the menu on squid-cache.org
Squid documentation in German, Turkish, Italian, Brazilian Portugese, and another in Brazilian Portugese.
Squid Programmers Guide. Yeah, its extremely incomplete. I assure you this is the most recent version. Please send any description updates to the <squid-dev AT squid-cache DOT org> mailing list
RFC 2186 ICPv2 -- Protocol
RFC 2187 ICPv2 -- Application
Does Squid support SSL/HTTPS/TLS?
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 "tunneling" 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 browser opens an SSL connection directly to the origin server.
- The browser tunnels the request through Squid with the CONNECT request method.
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).
What's the legal status of Squid?
Squid as a whole is copyrighted by the University of California San Diego. Squid uses some code developed by others. Individual features may be copyrighted by their contributors.
Squid is Free Software, licensed under the terms of the GNU General Public License.
How to add a new Squid feature, enhance, of fix something?
Adding new features, enhancing, or fixing Squid behavior usually requires source code modifications. Several options are generally available to those who need Squid development:
Wait for somebody to do it: Waiting is free but may take forever. If you want to use this option, make sure you file a bugzilla report describing the bug or enhancement so that others know what you need. Posting feature requests to a mailing list is often useful because it can generate interest and discussion, but without a bugzilla record, your request may be overlooked or forgotten.
Do it yourself: Enhancing Squid and working with other developers can be a very rewarding experience. However, this option requires understanding and modifying the source code, which is getting better, but it is still very complex, often ugly, and lacking documentation. These obstacles affect the required development effort. In most cases, you would want your changes to be incorporated into the official Squid sources for long-term support. To get the code committed, one needs to cooperate with other developers. It is a good idea to describe the changes you are going to work on before diving into development. Development-related discussions happen on squid-dev mailing list. Documenting upcoming changes as a bugzilla entry or a wiki feature page helps attract contributors or sponsors.
Pay somebody to do it: Many companies offer commercial Squid development services. When selecting the developer, discuss how they plan to integrate the changes with the official Squid sources and consider the company past contributions to the Squid project.
The best development option depends on many factors. Here is some project dynamics information that may help you pick the right one: Most Squid features and maintenance is done by individual contributors, working alone or in small development/consulting shops. In the early years (1990-2000), these developers were able to work on Squid using their free time, research grants, or similarly broad-scope financial support. Requested features were often added on-demand because many folks could work on them. Most recent (2006-2008) contributions, especially large features, are the result of paid development contracts, reflecting both the maturity of software and the lack of "free" time among active Squid developers.
Can I pay someone for Squid support?
Yes. Please see Squid Support Services. You can also donate money or equipment to members of the squid core team.
Squid FAQ contributors
The following people have made contributions to this document:
Dodjie Nava, Jonathan Larmour, Cord Beermann, Tony Sterrett, Gerard Hynes, Katayama, Takeo, Duane Wessels, K Claffy, Paul Southworth, Oskar Pearson, Ong Beng Hui, Torsten Sturm, James R Grinter, Rodney van den Oever, Kolics Bertold, Carson Gaspar, Michael O'Reilly, Hume Smith, Richard Ayres, John Saunders, Miquel van Smoorenburg, David J N Begley, Kevin Sartorelli, Andreas Doering, Mark Visser, tom minchin, Jens-S. Vöckler, Andre Albsmeier, Doug Nazar, HenrikNordstrom, Mark Reynolds, Arjan de Vet, Peter Wemm, John Line, Jason Armistead, Chris Tilbury, Jeff Madison, Mike Batchelor, Bill Bogstad, Radu Greab, F.J. Bosscha, Brian Feeny, Martin Lyons, David Luyer, Chris Foote, Jens Elkner, Simon White, Jerry Murdock, Gerard Eviston, Rob Poe, FrancescoChemolli, ReubenFarrelly AlexRousskov AmosJeffries
About This Document
This FAQ was maintained for a long time as an XML Docbook file. It was converted to a Wiki in March 2006. The wiki is now the authoritative version.
Want to contribute?
We always welcome help keeping the Squid FAQ up-to-date. If you would like to help out, please register with this Wiki and type away. Please also send a note to the wiki operator <wiki AT kinkie DOT it> to inform him of your changes.
Back to the SquidFaq
