AppLogic 2.7/2.8 Documentation The latest production release is AppLogic 3.0.30
SQUID - Proxy server - Implementation
Base Class
The LUX5 appliance image is used as the base class for SQUID appliance.
Packages for SQUID
- audit-libs-1.3.1-1.el5.i386.rpm (LGPL)
- basesystem-8.0-5.1.1.el5.centos.noarch.rpm (public domain)
- bash-3.1-16.1.i386.rpm (GPL)
- beecrypt-4.1.2-10.1.1.i386.rpm (LGPL)
- bzip2-1.0.3-3.i386.rpm (BSD)
- bzip2-libs-1.0.3-3.i386.rpm (BSD)
- centos-release-5-0.0.el5.centos.2.i386.rpm (GPL)
- centos-release-notes-5.0.0-2.i386.rpm (GPL)
- chkconfig-1.3.30.1-1.i386.rpm (GPL)
- coreutils-5.97-12.1.el5.i386.rpm (GPL)
- cpio-2.6-20.i386.rpm (GPL)
- cracklib-2.8.9-3.1.i386.rpm (Artistic)
- cracklib-dicts-2.8.9-3.1.i386.rpm (Artistic)
- crontabs-1.10-8.noarch.rpm (Public Domain)
- cyrus-sasl-lib-2.1.22-4.i386.rpm (Freely Distributable)
- db4-4.3.29-9.fc6.i386.rpm (GPL)
- device-mapper-1.02.13-1.el5.i386.rpm (GPL)
- dhclient-3.0.5-7.el5.i386.rpm (distributable)
- diffutils-2.8.1-15.2.2.i386.rpm (GPL)
- dmidecode-2.7-1.28.2.el5.i386.rpm (GPL)
- e2fsprogs-1.39-8.el5.i386.rpm (GPL)
- e2fsprogs-libs-1.39-8.el5.i386.rpm (GPL)
- ed-0.2-38.2.2.i386.rpm (GPL)
- elfutils-libelf-0.125-3.el5.i386.rpm (GPL)
- ethtool-5-1.el5.i386.rpm (GPL)
- expat-1.95.8-8.2.1.i386.rpm (BSD)
- file-4.17-8.2.i386.rpm (distributable)
- filesystem-2.4.0-1.el5.centos.i386.rpm (Public Domain)
- findutils-4.2.27-4.1.i386.rpm (GPL)
- gawk-3.1.5-14.el5.i386.rpm (GPL)
- gdbm-1.8.0-26.2.1.i386.rpm (GPL)
- glib2-2.12.3-2.fc6.i386.rpm (LGPL)
- glibc-2.5-12.2.i386.rpm (LGPL)
- glibc-common-2.5-12.2.i386.rpm (LGPL)
- gpg-pubkey-e8562897-459f07a4.(none).rpm (pubkey)
- grep-2.5.1-54.2.el5.i386.rpm (GPL)
- gzip-1.3.5-9.el5.centos.i386.rpm (GPL)
- info-4.8-14.el5.i386.rpm (GPL)
- initscripts-8.45.14.EL-1.el5.centos.1.i386.rpm (GPL)
- iproute-2.6.18-4.el5.i386.rpm (GNU GPL)
- iputils-20020927-43.el5.i386.rpm (BSD)
- krb5-libs-1.5-23.i386.rpm (MIT, freely distributable.)
- less-394-5.el5.i386.rpm (GPL)
- libacl-2.2.39-1.1.i386.rpm (LGPL)
- libattr-2.4.32-1.1.i386.rpm (LGPL)
- libcap-1.10-26.i386.rpm (BSD-like and LGPL)
- libevent-1.1a-3.2.1.i386.rpm (BSD)
- libgcc-4.1.1-52.el5.2.i386.rpm (GPL)
- libgssapi-0.10-2.i386.rpm (GPL)
- libhugetlbfs-1.0.1-1.el5.i386.rpm (LGPL)
- libhugetlbfs-lib-1.0.1-1.el5.i386.rpm (LGPL)
- libselinux-1.33.4-2.el5.i386.rpm (Public domain (uncopyrighted))
- libselinux-python-1.33.4-2.el5.i386.rpm (Public domain (uncopyrighted))
- libsemanage-1.9.1-3.el5.i386.rpm (GPL)
- libsepol-1.15.2-1.el5.i386.rpm (GPL)
- libstdc++-4.1.1-52.el5.i386.rpm (GPL)
- libsysfs-2.0.0-6.i386.rpm (LGPL)
- libtermcap-2.0.8-46.1.i386.rpm (LGPL)
- libuser-0.54.7-2.el5.1.i386.rpm (LGPL)
- libvolume_id-095-14.5.el5.i386.rpm (GPL)
- lm_sensors-2.10.7-4.el5.i386.rpm (GPL)
- logrotate-3.7.4-8.i386.rpm (GPL)
- m2crypto-0.16-6.el5.1.i386.rpm (BSDish)
- MAKEDEV-3.23-1.2.i386.rpm (GPL)
- mcstrans-0.1.10-1.el5.i386.rpm (GPL)
- mingetty-1.07-5.2.2.i386.rpm (GPL)
- mktemp-1.5-23.2.2.i386.rpm (BSD)
- module-init-tools-3.3-0.pre3.1.16.el5.i386.rpm (GPL)
- ncurses-5.5-24.20060715.i386.rpm (distributable)
- net-snmp-5.3.1-24.el5_2.2.i386.rpm (BSDish)
- net-snmp-libs-5.3.1-24.el5_2.2.i386.rpm (BSDish)
- net-snmp-utils-5.3.1-24.el5_2.2.i386.rpm (BSDish)
- net-tools-1.60-73.i386.rpm (GPL)
- newt-0.52.2-9.i386.rpm (LGPL)
- nfs-utils-1.0.9-24.el5.i386.rpm (GPL)
- nfs-utils-lib-1.0.8-7.2.z2.i386.rpm (GPL)
- openldap-2.3.27-5.i386.rpm (OpenLDAP? )
- openssh-4.3p2-16.el5.i386.rpm (BSD)
- openssh-clients-4.3p2-16.el5.i386.rpm (BSD)
- openssh-server-4.3p2-16.el5.i386.rpm (BSD)
- openssl-0.9.8b-8.3.el5.i686.rpm (BSDish)
- pam-0.99.6.2-3.14.el5.i386.rpm (GPL or BSD)
- passwd-0.73-1.i386.rpm (BSD)
- patch-2.5.4-29.2.2.i386.rpm (GPL)
- pcre-6.6-1.1.i386.rpm (BSD)
- perl-5.8.8-10.i386.rpm (Artistic or GPL)
- popt-1.10.2-37.el5.i386.rpm (GPL)
- portmap-4.0-65.2.2.1.i386.rpm (BSD)
- procps-3.2.7-8.1.el5.i386.rpm (GPL)
- psmisc-22.2-5.i386.rpm (BSD/GPL)
- python-2.4.3-19.el5.i386.rpm (PSF - see LICENSE)
- python-elementtree-1.2.6-5.i386.rpm (PSF)
- python-sqlite-1.1.7-1.2.1.i386.rpm (GPL)
- python-urlgrabber-3.1.0-2.noarch.rpm (LGPL)
- readline-5.1-1.1.i386.rpm (GPL)
- rpm-4.4.2-37.el5.i386.rpm (GPL)
- rpm-libs-4.4.2-37.el5.i386.rpm (GPL)
- rpm-python-4.4.2-37.el5.i386.rpm (GPL)
- samba-client-3.0.28-0.el5.8.i386.rpm (GNU GPL Version 2)
- samba-common-3.0.28-0.el5.8.i386.rpm (GNU GPL Version 2)
- sed-4.1.5-5.fc6.i386.rpm (GPL)
- setup-2.5.58-1.el5.noarch.rpm (public domain)
- shadow-utils-4.0.17-12.el5.i386.rpm (BSD)
- slang-2.0.6-4.el5.i386.rpm (GPL)
- sqlite-3.3.6-2.i386.rpm (Public Domain)
- sysfsutils-2.0.0-6.i386.rpm (GPL)
- sysklogd-1.4.1-39.2.i386.rpm (GPL)
- SysVinit? -2.86-14.i386.rpm (GPL)
- tar-1.15.1-23.el5.i386.rpm (GPL)
- tcpdump-3.9.4-11.el5.i386.rpm (BSD)
- tcp_wrappers-7.6-40.2.1.i386.rpm (Distributable)
- termcap-5.5-1.20060701.1.noarch.rpm (Public Domain)
- tmpwatch-2.9.7-1.1.el5.1.i386.rpm (GPL)
- tzdata-2006m-2.fc6.noarch.rpm (GPL)
- udev-095-14.5.el5.i386.rpm (GPL)
- usermode-1.88-3.el5.i386.rpm (GPL)
- util-linux-2.13-0.44.el5.i386.rpm (distributable)
- vim-minimal-7.0.109-3.i386.rpm (freeware)
- vixie-cron-4.1-66.1.el5.i386.rpm (distributable)
- wget-1.10.2-7.el5.i386.rpm (GPL)
- which-2.16-7.i386.rpm (GPL)
- xen-ukrnl-3.2.2-17.i386.rpm (GPL)
- xen-umods-3.2.2-17.i386.rpm (GPL)
- yum-3.0.5-1.el5.centos.2.noarch.rpm (GPL)
- zlib-1.2.3-3.i386.rpm (BSD)
Class Volumes
SQUID itself is not sensitive to the volume configuration and will work on most any setup. Besides the squid application, it does not require any additional software to be able to start. Samba client is required for logging. The setup chosen for the 1.0 release is as follows:
- boot volume, 150MB size, mounted as "/", writeable, instantiable.
- usr volume, 180MB size, mounted as "/usr", read-only, common
The boot volume contains a basic Linux installation as the one present on the LUX5 appliance.
In summary, SQUID's boot volume contains:
- CentOS 5, as base OS image (as installed on the
LUX5 appliance)
- squid version 3.0.STABLE13
- Samba client, for accessing files through the
log terminal
- sshd, used for logging into the component through the default interface
Add-on packages for SQUID
- Main
-
squid.tgz: precompiled squid 3.0.STABLE13
- Dependencies - Samba Client (used for the logs)
-
samba-common-3.0.28-0.el5.8.i386.rpm: samba shared libraries
-
samba-client-3.0.28-0.el5.8.i386.rpm: samba client
-
net-snmp-5.3.1-24.el5_2.2.i386.rpm: Net-SNMP
-
net-snmp-libs-5.3.1-24.el5_2.2.i386.rpm: Net-SNMP libraries
-
net-snmp-utils-5.3.1-24.el5_2.2.i386.rpm: Net-SNMP utilities
-
dmidecode-2.7-1.28.2.el5.i386.rpm: reports information about your system's hardware as described in
your system BIOS according to the SMBIOS/DMI standard
-
-
lm_sensors-2.10.7-4.el5.i386.rpm: health monitoring support for Linux
Contents of the release directory for SQUID:
Exported appliance image:
SQUID automated build script: use this to automatically build SQUID appliance
-
squid-build.24.1.0.0.tar.bz2
SQUID automated test suite: use this to test SQUID appliance
-
usquid-test.24.1.0.0.tar.bz2
Source RPMs:
-
squid-3.0.STABLE13.tar.gz - squid packed source
-
samba-3.0.28-0.el5.8.src.rpm - Samba source rpm
Theory of Operation
SQUID acts as an agent, accepting HTTP requests from clients and passes them to the appropriate server. It stores a copy of the returned data in an on-disk cache. When the same data is requested multiple times, since a copy of the on-disk data is returned to the client, speeding up access and decreasing origin server load.
Configuration
General
squid is configured by using a file called squid.conf . This file is created dynamically at start of appliance according to SQUID properties supplied by AppLogic24? . This is done at boot-time by appliance.sh script.
Log Files
Access Log
The user of SQUID can configure the appliance to use access log. SQUID will log all clients requests in his own native format or in httpd-like format. Format of access log is specified by log_format property.
Appliance Implementation Details
The SQUID appliance contains the following files in the /appliance folder on its boot volume. These files are used to implement the appliance:
| File | Type | Description |
appliance.sh | Bash script | Appliance main controlling script - invoked when the appliance is booted. |
timezone.sh | Bash script | Script that sets appliance timezone |
Important Notes
None.
-- AndriyMayevskyy - 19 Feb 2009
Copyright © CA 2005-2011. All Rights Reserved.