- — HOW-TO: Make Windows 7 Boot Faster
- — TWEAK: Filter Unread Emails in Gmail
- — MODS: Popcorn Hour C-200 (PCH-C200) Heatsink Mod
- — HOW-TO: Install Windows 7 Using a USB Flash Drive
- — TWEAK: Larger Active Tab in Firefox
- — TIP: Browser Plugin Check for Firefox
- — FAQ: Mouse Randomly Freezing in Windows 7
- — TWEAK: Make Torrents Download Faster
- — FAQ: ACPI Multiprocessor HAL Upgrade Script
HOW-TO: Squid Caching Proxy Server in Windows
Having a caching proxy server even at home can have a lot of benefits. For one, having a caching proxy server can make browsing faster. Data frequently used can be served by the proxy instead of fetching them from the webserver itself. This is how a caching proxy server can make browsing seem faster.
You can also save on disk space -- catch all cache for all your browsers. If you use multiple browsers, you will notice that firefox has its own disk cache, internet explorer has its own and so does chrome and all others. While having a proxy, the proxy will cache all the data and you can set each browser's disk cache to zero. Saving you disk space. I know this has little impact due to the price per gigabyte of disks now. But imagine if you have an SSD on your notebook. Would you rather waste its write cycles as browser disk cache?
Another benefit of a local caching proxy server is bandwidth savings. In the Philippines where ISPs are unregulated and there is no committed information rate (or CIR), bandwidth can vary in the so-called "peak" hours and between locations. Getting a bigger/fatter pipeline for more bandwidth doesn't justify the cost. Internet connection in the Philippines is just plain expensive. The caching proxy server can serve the requests rather than fetch the information from the webserver itself, thus saving you bandwitdh.
Given the above reasons, are you now "sold" on the idea of putting up your own caching proxy? Those are just a few benefits to mention, there are more on the list. For now, just know that squid is not just for geeks you can set it up for yourself -- even on your home network. And if you search the internet for squid, there will be a lot of links where Linux is involved. Squid is not just for Linux, it runs in your Windows desktop too.
First, download squid for Windows. You can obtain the stable version of 2.7 or play around with the experimental version 3. For my desktop, I have version 3 and installed version 2.7 on the notebook both running Windows 7.
Unpack the downloaded zip file and copy the directory \squid over to C:. You will then have C:\squid containing all folders and files from the downloaded zip file. All default configurations for squid are on this path, so simplify the install and configuration by putting it on that path.
Next, inside the C:\squid\etc directory are default files (.default extension) for squid configuration. Rename them so the .default extension is eliminated (for example: squid.conf.default --> squid.conf). Do this for the three files: squid.conf.default, mime.conf.default and cachemgr.conf.default.
Create a backup of the file squid.conf (perhaps a file named squid.conf.bak). Using your favorite text editor, open squid.conf and modify the configuration as follows. For detailed explanation on the directives, consult the squid documentation.
acl localnet src 127.0.0.1/255.255.255.255
acl localnet src 192.168.0.0/24
acl localnet src 10.0.0.0/24
acl all src all
##--- for Squid3
visible_hostname host # change this to the hostname of the proxy server
##--- NO SNMP/HTCP
htcp_access deny all
snmp_access deny all
http_access allow localnet
http_access deny all
##--- ICP (required for peer siblings)
icp_query_timeout 5000 # 5 second timeout
icp_access allow localnet
icp_access deny all
cache_mem 128 MB # use 128MB cache memory, change as appropriate
cache_dir ufs c:/squid/var/cache 4096 12 128
##--- NO LOGS
refresh_pattern ^ftp: 1440 25% 100800
refresh_pattern -i \.(gif|png|jpg|jpeg|ico|bmp)$ 1440 300% 260009 override-expire
refresh_pattern -i \.(iso|avi|wav|mp3|mp4|mpeg|swf|flv|x-flv|mpg|wma|ogg|wmv|asx|asf)$ 1440 150% 260009 override-expire
refresh_pattern -i \.(deb|rpm|exe|zip|tar|tgz|ram|rar|bin|ppt|doc|tiff|pdf|uxx)$ 1440 150% 260009 override-expire
refresh_pattern -i \.index.(html|htm)$ 1440 90% 40320 refresh-ims
refresh_pattern -i \.(html|htm|css|js)$ 1440 90% 40320 refresh-ims
refresh_pattern (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 25% 4320
The configuration above should get you started on your caching proxy server. Should there be troubles on the configuration file, enable the logs by changing the "none" to a full path to the log file. Just keep in mind that squid doesn't like spaces in the filenames. You should wrap those in quotations.
Before running squid for the very first time, create the proxy cache directories via command prompt and using the command "C:\squid\sbin\squid -z". Then install squid as a service so each time the computer reboots, it should also start in the background. Use command "C:\squid\sbin\squid -i" to accomplish this.
If the above commands do not return an error, it is time to start squid. On the same command prompt, use command "net start squid" or via GUI through Start > Control Panel > Administrative Tools > Services select Squid and start the service.
The only other task left is to configure browsers to use the proxy. Just remember that the port used here is directed by the value assigned to http_port.