From Seo Wiki - Search Engine Optimization and Programming Languages
|Stable release||3.1 beta / 3.0 / 2.7 / March 2, 2009|
|Written in||C/C++ (Squid 3)|
|Type||web cache, proxy server|
|License||GNU General Public License|
Squid is a proxy server and web cache daemon. It has a wide variety of uses, from speeding up a web server by caching repeated requests; to caching web, DNS and other computer network lookups for a group of people sharing network resources; to aiding security by filtering traffic. Although primarily used for HTTP and FTP, Squid includes limited support for several other protocols including TLS, SSL, Internet Gopher and HTTPS. The development version of Squid (3.1) includes IPv6 and ICAP support. Squid web site claims that if working in front of the server application, it can improve performance by up to four times. Squid is especially efficient in case of (probably unexpected) high traffic to one or several particular pages, as in this case near 100% of caching can be achieved.
Squid was originally developed by Duane Wessels as the Harvest object cache, part of the Harvest project at the University of Colorado at Boulder.  Further work on the program was completed at the University of California, San Diego and funded via two grants from the National Science Foundation. Squid is now developed almost exclusively through volunteer efforts.
Caching is a way to store requested Internet objects (e.g. data like web pages) available via the HTTP, FTP, and Gopher protocols on a system closer to the requesting site. Web browsers can then use the local Squid cache as a proxy HTTP server, reducing access time as well as bandwidth consumption. This is often useful for Internet service providers to increase speed to their customers, and LANs that share an Internet connection. Because it is also a proxy (i.e. it behaves like a client on behalf of the real client), it can provide some anonymity and security. However, it also can introduce significant privacy concerns as it can log a lot of data including URLs requested, the exact date and time, the name and version of the requester's web browser and operating system, and the referer.
A client program (e.g. browser) either has to specify explicitly the proxy server it wants to use (typical for ISP customers), or it could be using a proxy without any extra configuration: “transparent caching”, in which case all outgoing HTTP requests are intercepted by Squid and all responses are cached. The latter is typically a corporate set-up (all clients are on the same LAN) and often introduces the privacy concerns mentioned above.
Squid has some features that can help anonymize connections, such as disabling or changing specific header fields in a client's HTTP requests. Whether these are set, and what they are set to do, is up to the person who controls the computer running Squid. People requesting pages through a network which transparently uses Squid may not know whether this information is being logged. Within UK organisations at least, users should be informed if computers or internet connections are being monitored.
The above setup—caching the contents of an unlimited number of webservers for a limited number of clients—is the classical one. Another setup is “reverse proxy” or “webserver acceleration” (using http_port 80 accel vhost). In this mode, the cache serves an unlimited number of clients for a limited number of—or just one—web servers.
As an example, if slow.example.com is a “real” web server, and www.example.com is the Squid cache server that “accelerates” it, the first time any page is requested from www.example.com, the cache server would get the actual page from slow.example.com, but later requests would get the stored copy directly from the accelerator (for a configurable period, after which the stored copy would be discarded). The end result, without any action by the clients, is less traffic to the source server, meaning less CPU and memory usage, and less need for bandwidth. This does, however, mean that the source server cannot accurately report on its traffic numbers without additional configuration, as all requests would seem to have come from the reverse proxy. A way to adapt the reporting on the source server is to use the X-Forwarded-For HTTP header reported by the reverse proxy, to get the real client's IP address.
It is possible for a single Squid server to serve both as a normal and a reverse proxy simultaneously. For example, a business might host its own website on a web server, with a Squid server acting as a reverse proxy between clients (customers accessing the website from outside the business) and the web server. The same Squid server could act as a classical web cache, caching HTTP requests from clients within the business (i.e. employees accessing the internet from their workstations), so accelerating web access and reducing bandwidth demands.
Squid can run on the following operating systems:
- Digital Unix
- Mac OS X
- SCO OpenServer
- ↑ "Squid FAQ: About Squid". http://wiki.squid-cache.org/SquidFaq/AboutSquid. Retrieved 2007-02-13.
- ↑ Squid intro, on the Squid website
- ↑ Harvest cache now available as an "httpd accelerator", by Mike Schwartz on the http-wg mailing list, Tue, 4 Apr 1995, as forwarded by Brian Behlendorf to the Apache HTTP Server developers' mailing list
- ↑ "Squid Sponsors". Archived from the original on 2007-10-14. http://web.archive.org/web/20071014113215/http://squid-cache.org/SPONSORS.txt. Retrieved 2007-02-13. "The NSF was the primary funding source for Squid development from 1996-2000. Two grants (#NCR-9616602, #NCR-9521745) received through the Advanced Networking Infrastructure and Research (ANIR) Division were administered by the University of California San Diego"
- ↑ See the documentation for header_access and header_replace for further details.
- ↑ See, for example, Computer Monitoring In The Workplace and Your Privacy
- Official project homepage
- List of Wikipedia servers
- Squid Blog
- Squid "how to", Squid User-Agent Randomizer and Squid Ad-Blocker
- Optimizing SQUID and Access Control List
- Squid Tutorial - Tutorial for Squid
- Squid reverse proxy - Create a reverse proxy with Squid
- Configuration Manual - ViSolve Squid Configuration Manual Guide
- Configuration Manual - Authoritative Squid Configuration Options
- "Solaris Setup". Archived from the original on 2008-01-15. http://web.archive.org/web/20080115182525/http://www.webmasterwords.com/squid-proxy-on-solaris. - Setup squid on solarisaf:Squid
ar:سكويد da:Squid cache de:Squid es:Squid fr:Squid hu:Squid ko:스퀴드 서버 id:Squid it:Squid lt:Squid podėlis (cache) ms:Squid nl:Squid cache ja:Squid cache pl:Squid (oprogramowanie) pt:Squid ru:Squid simple:Squid cache sv:Squid zh:Squid cache