© Tony Lawrence, aplawrence.com
(This is a very old post dealing with Squid on SCO Unix. I recommend using a Linux server for Squid.)
Squid is a caching proxy server. (See also : Proxy Server). You'll need to have previously set up a PPP connection (see Quick PPP setup) or other connection to your ISP from the machine that will be running Proxy Server.
Squid is available from Skunkware 98 and installs using "custom", the standard SCO software manager. Skunkware's contents are not alphabetical, so it can be a little hard to find what you want, but once you've located it, the install itself is easy. However, from that point on, Squid is a little more difficult to configure than Proxy Server.
Squid is now an official "supported product", which means that it is available from the Downloads section of SCO's web site (goto www.sco.com and choose "Downloads") and will probably start showing up on the CD's on future releases.
Squid has a home page: http://www.squid-cache.org/. There you'll find that the version of Squid supplied with Skunkware is out of date, so once you have it working, you may want to immediately upgrade. Don't consider this wasted time, however: you are better off starting from the mostly configured Skunkware version, learning a bit about it, and then upgrading. Otherwise, you are jumping into a medium tough project without any knowledge at all.
It starts with Apache. The documentation strongly suggests that you should install Apache. That's OK, and I'm sure that in most situations you'd rather be running Apache anyway- it seems to be faster than the Netscape servers, and there's probably more documentation and assistance out there for Apache than for Netscape. As Apache also installs through Custom, that's easy enough to do. If you choose NOT to do this, you are going to have a LOT more work to configure Squid, so let's play along with the preferred path. Install it using "custom" or "scoadmin software". That should go smoothly.
However, the Apache install doesn't automatically shut off the Netscape servers, so you'll have to do that by removing those servers through custom or by editing /etc/rc2.d/S90fasttrack (adding an "exit 0" at the beginning of that script will do it) and preventing any Netscape servers from starting by commenting out the startup from /etc/rc2.d/S90atlas:
# # Start up configured Netscape Communications servers only # #/bin/su root -c "/usr/internet/lib/ns_admin/webservers start ns_httpd" exit 0
(added # in front of /bin/su)
Then you'll need to create the link from /etc/rc2.d/S91apache to /etc/apache (it's obvious someone intended to do this: the rc2.d path is hard coded right in the script; it just didn't get done).
ln /etc/apache /etc/rc2.d/S91apache
If you have content in the Netscape server directories, you'll have to move or copy it over to the Apache hierarchy: /usr/lib/apache/share/htdocs. If you have cgi-bin scripts, they'll go in /usr/lib/apache/share/cgi-bin, and you'll have to turn on cgi handling in /usr/lib/apache/etc/srm.conf by uncommenting these lines:
ScriptAlias /cgi-bin/ /usr/local/lib/apache/share/cgi-bin/ AddHandler cgi-script .cgi
(For the best book on configuring Apache, I recommend Apache: the Definitive Guide (2d Edition) from Amazon.com).
Be sure to run /etc/apache stop and /etc/apache start after making these changes. After all this, you're ready to tackle Squid itself.
Note that local access from this machine WILL NOT work until Squid is configured. In this configuration, Apache is listening on port 8080, not 80. Normally, your local browser would expect to get files through port 80, but nothing will be listening there until you get Squid working.
If you have a on demand or manual PPP connection, you will want to edit /etc/squid to add a -D to the startup:
echo "Starting Squid Internet Object Cache" $SQUID -D &
The "-D" disables DNS checks at startup, which is absolutely necessary if you have a manual ppp startup and may be necessary otherwise. If Squid can't access the internet with DNS checking turned on, it will fail to start, and since it doesn't emit any messages about that other than to its log file, you wouldn't even know it. In some situations you might want this behavior, but most of us won't. Of course, if your internet connection is always up and available, you don't need to be concerned with this.
At this point, your local (this machine) access will work, but you aren't ready to proxy yet. For that, you need to edit /usr/local/squid/etc/squid.conf. Find the line that says:
and change it to:
Start and stop squid:
/etc/squid stop /etc/squid start
Configuring the Windows machines is simple (they already have to have tcp/ip connectivity, of course). For Internet Explorer, you can simply choose View-Options-Connection, and then click on "Connect through a Proxy Server". Then click the "Settings" button next to that and tell it to use the SCO box (typing in the IP address is fine) for all protocols, giving it the port 80 (note, not 8080, just 80). For Netscape Communicator, it's under Preferences; click the arrow beside "Advanced" so that its drop-down sub-menus appear, and choose proxies.
The use of "80" may seem confusing, but that's the way Squid and Apache work together. Apache is using 8080, Squid uses 80. That's completely the opposite of the way Netscape Proxy Server works, and it means that Squid will also be caching pages for accesses from the sco server itself.
At this point, everything should be working. If not, double check your work. If local (on the sco box) access isn't working, check that Squid actually is running by looking at /usr/local/squid/logs/cache.log. Make sure that the Netscape servers are not starting. If proxied users are getting the Apache "Success" page instead of what they asked for, check that they are accessing through port 80. If they are getting "Denied", check that
is in squid.conf
After this is working, it's time to look at the on-line docs. Assuming you've got Apache working, they are in http://localhost/squid/. There's more that you can do with regard to restricting access, etc.
Be particularly wary of the documentation. It isn't wrong, but it can be misleading for this partially preconfigured setup from Skunkware. I suggest getting things working following this guide before even looking at the supplied docs (http://localhost/squid/).
See also Squid Log Analyzer.