Squid_ The Definitive Guide - Duane Wessels [18]
However, for some reason, the ./configure options blur the distinction between a particular replacement policy and the underlying data structures required to implement them. LRU, which is the default, is implemented with a doubly linked list. The GDS and LFU implementations use a data structure known as a heap.
To use the GDS or LFU policies, you specify:
% ./configure --enable-removal-policies=heap
You then select between GDS and LFU in the Squid configuration file. If you want to retain the option of using LRU, specify:
% ./configure --enable-removal-policies=heap,lru
There's more about replacement policies in Section 7.5.
--enable-icmp
As you'll see in Section 10.5, Squid can make round-trip time measurements with ICMP messages, much like the ping program. You can use this option to enable these features.
--enable-delay-pools
Delay pools are Squid's technique for traffic shaping or bandwidth limiting. The pools consist of groups of client IP addresses. When requests from these clients are cache misses, their responses may be artificially delayed. See more about delay pools in Appendix C.
--enable-useragent-log
This option enables logging of the HTTP User-Agent header from client requests. See more about this in Section 13.5.
--enable-referer - log
This option enables logging of the HTTP referer header from client requests. See more about this in Section 13.4.
--disable-wccp
The Web Cache Coordination Protocol (WCCP) is Cisco's once-proprietary protocol for intercepting and distributing HTTP requests to one or more caches. WCCP is enabled by default, but you can use this option to prevent compilation of the WCCP code if you like.
--enable-snmp
The Simple Network Management Protocol (SNMP) is a popular way to monitor network devices and servers. This option causes the build procedure to compile all of the SNMP-related code, including a cut-down version of the CMU SNMP library.
--enable-cachemgr-hostname[=hostname]
cachemgr is a CGI program you can use to administratively query Squid. By default, cachemgr's hostname field is blank, but you can create a default value with this option. For example:
% ./configure --enable-cachemgr-hostname=mycache.myorg.net
--enable-arp-acl
Squid supports ARP, or Ethernet address, access control lists on some operating systems. The code to implement ARP ACLs uses nonstandard function interfaces, so it is disabled by default. If you run Squid on Linux or Solaris, you may be able to use this feature.
--enable-htcp
HTCP is the Hypertext Caching Protocol—an intercache protocol similar to ICP. See Section 10.8 for more information.
--enable-ssl
Use this option to give Squid the ability to terminate SSL/TLS connections. Note this only works for accelerated requests in surrogate mode. See Section 15.2.2 for more information.
--with-openssl[=DIR]
This option exists so that you can tell the compiler where to find the OpenSSL libraries and header files, if necessary. If they aren't in the default location, enter the parent directory after this option. For example:
% ./configure --enable-ssl --with-ssl=/opt/foo/openssl
Given this example, your compiler looks for the OpenSSL header files in /opt/foo/openssl/include, and for libraries in /opt/foo/openssl/lib.
--enable-cache-digests
Cache Digests are another alternative to ICP, but with significantly different characteristics. See Section 10.7.
--enable-err-languages="lang1 lang2 ..."
Squid supports customizable error messages and comes with error messages in many different languages. This option determines the languages that are copied to the installation directory ($prefix/share/errors). If you don't use this option, all available languages are installed. To see which languages are available, look at a directory listing of the errors directory in the source distribution. Here's how to enable more than one