Cover image for Squid: The Definitive Guide

Book description

Squid is the most popular Web caching software in use today, and it works on a variety of platforms including Linux, FreeBSD, and Windows. Squid improves network performance by reducing the amount of bandwidth used when surfing the Web. It makes web pages load faster and can even reduce the load on your web server. By caching and reusing popular web content, Squid allows you to get by with smaller network connections. It also protects the host on your internal network by acting as a firewall and proxying your internal web traffic. You can use Squid to collect statistics about the traffic on your network, prevent users from visiting inappropriate web sites at work or school, ensure that only authorized users can surf the Internet, and enhance your privacy by filtering sensitive information from web requests. Companies, schools, libraries, and organizations that use web-caching proxies can look forward to a multitude of benefits. Written by Duane Wessels, the creator of Squid, Squid: The Definitive Guide will help you configure and tune Squid for your particular situation. Newcomers to Squid will learn how to download, compile, and install code. Seasoned users of Squid will be interested in the later chapters, which tackle advanced topics such as high-performance storage options, rewriting requests, HTTP server acceleration, monitoring, debugging, and troubleshooting Squid. Topics covered include:

  • Compiling and installing Squid

  • Running Squid

  • Using Squid's sophisticated access controls

  • Tuning disk storage for optimal performance

  • Configuring your operating system for HTTP interception

  • Forwarding Requests to other web caches

  • Using redirectors to rewrite user requests

  • Monitoring Squid with the cache manager and SNMP

  • Using Squid to accelerate and protect HTTP servers

  • Managing bandwidth consumption with Delay Pools

Table of Contents

  1. Squid: The Definitive Guide
    1. SPECIAL OFFER: Upgrade this ebook with O’Reilly
    2. Preface
      1. About This Book
        1. Topics Not Covered
      2. Recommended Reading
      3. Conventions Used in This Book
      4. Comments and Questions
      5. Acknowledgments
    3. 1. Introduction
      1. 1.1. Web Caching
      2. 1.2. A Brief History of Squid
      3. 1.3. Hardware and Operating System Requirements
      4. 1.4. Squid Is Open Source
      5. 1.5. Squid's Home on the Web
      6. 1.6. Getting Help
        1. 1.6.1. Frequently Asked Questions
        2. 1.6.2. Mailing Lists
          1. 1.6.2.1. squid-users
          2. 1.6.2.2. squid-announce
          3. 1.6.2.3. squid-dev
        3. 1.6.3. Professional Support
      7. 1.7. Getting Started with Squid
      8. 1.8. Exercises
    4. 2. Getting Squid
      1. 2.1. Versions and Releases
      2. 2.2. Use the Source, Luke
      3. 2.3. Precompiled Binaries
      4. 2.4. Anonymous CVS
      5. 2.5. devel.squid-cache.org
      6. 2.6. Exercises
    5. 3. Compiling and Installing
      1. 3.1. Before You Start
      2. 3.2. Unpacking the Source
      3. 3.3. Pretuning Your Kernel
        1. 3.3.1. File Descriptors
          1. 3.3.1.1. FreeBSD, NetBSD, OpenBSD
          2. 3.3.1.2. Linux
          3. 3.3.1.3. Solaris
        2. 3.3.2. Mbuf Clusters
        3. 3.3.3. Ephemeral Port Range
      4. 3.4. The configure Script
        1. 3.4.1. configure Options
        2. 3.4.2. Running configure
      5. 3.5. make
      6. 3.6. make Install
      7. 3.7. Applying a Patch
      8. 3.8. Running configure Later
      9. 3.9. Exercises
    6. 4. Configuration Guide for the Eager
      1. 4.1. The squid.conf Syntax
      2. 4.2. User IDs
      3. 4.3. Port Numbers
      4. 4.4. Log File Pathnames
      5. 4.5. Access Controls
      6. 4.6. Visible Hostname
      7. 4.7. Administrative Contact Information
      8. 4.8. Next Steps
      9. 4.9. Exercises
    7. 5. Running Squid
      1. 5.1. Squid Command-Line Options
      2. 5.2. Check Your Configuration File for Errors
      3. 5.3. Initializing Cache Directories
      4. 5.4. Testing Squid in a Terminal Window
      5. 5.5. Running Squid as a Daemon Process
        1. 5.5.1. The squid_start Script
      6. 5.6. Boot Scripts
        1. 5.6.1. /etc/rc.local
        2. 5.6.2. init.d and rc.d
        3. 5.6.3. /etc/inittab
      7. 5.7. A chroot Environment
      8. 5.8. Stopping Squid
      9. 5.9. Reconfiguring a Running Squid Process
      10. 5.10. Rotating the Log Files
      11. 5.11. Exercises
    8. 6. All About Access Controls
      1. 6.1. Access Control Elements
        1. 6.1.1. A Few Base ACL Types
          1. 6.1.1.1. IP addresses
          2. 6.1.1.2. Domain names
          3. 6.1.1.3. Usernames
          4. 6.1.1.4. Regular expressions
          5. 6.1.1.5. TCP port numbers
          6. 6.1.1.6. Autonomous system numbers
        2. 6.1.2. ACL Types
          1. 6.1.2.1. src
          2. 6.1.2.2. dst
          3. 6.1.2.3. myip
          4. 6.1.2.4. dstdomain
          5. 6.1.2.5. srcdomain
          6. 6.1.2.6. port
          7. 6.1.2.7. myport
          8. 6.1.2.8. method
          9. 6.1.2.9. proto
          10. 6.1.2.10. time
          11. 6.1.2.11. ident
          12. 6.1.2.12. proxy_auth
          13. 6.1.2.13. src_as
          14. 6.1.2.14. dst_as
          15. 6.1.2.15. snmp_community
          16. 6.1.2.16. maxconn
          17. 6.1.2.17. arp
          18. 6.1.2.18. srcdom_regex
          19. 6.1.2.19. dstdom_regex
          20. 6.1.2.20. url_regex
          21. 6.1.2.21. urlpath_regex
          22. 6.1.2.22. browser
          23. 6.1.2.23. req_mime_type
          24. 6.1.2.24. rep_mime_type
          25. 6.1.2.25. ident_regex
          26. 6.1.2.26. proxy_auth_regex
        3. 6.1.3. External ACLs
        4. 6.1.4. Dealing with Long ACL Lists
        5. 6.1.5. How Squid Matches Access Control Elements
      2. 6.2. Access Control Rules
        1. 6.2.1. Access Rule Syntax
        2. 6.2.2. How Squid Matches Access Rules
        3. 6.2.3. Access List Style
        4. 6.2.4. Delayed Checks
        5. 6.2.5. Slow and Fast Rule Checks
      3. 6.3. Common Scenarios
        1. 6.3.1. Allowing Local Clients Only
        2. 6.3.2. Blocking a Few Misbehaving Clients
        3. 6.3.3. Denying Pornography
        4. 6.3.4. Restricting Usage During Working Hours
        5. 6.3.5. Preventing Squid from Talking to Non-HTTP Servers
        6. 6.3.6. Giving Certain Users Special Access
        7. 6.3.7. Preventing Abuse from Siblings
        8. 6.3.8. Denying Requests with IP Addresses
        9. 6.3.9. An http_reply_access Example
        10. 6.3.10. Preventing Cache Hits for Local Sites
      4. 6.4. Testing Access Controls
      5. 6.5. Exercises
    9. 7. Disk Cache Basics
      1. 7.1. The cache_dir Directive
        1. 7.1.1. Scheme
        2. 7.1.2. Directory
        3. 7.1.3. Size
          1. 7.1.3.1. Inodes
          2. 7.1.3.2. The relationship between disk space and process size
        4. 7.1.4. L1 and L2
        5. 7.1.5. Options
          1. 7.1.5.1. read-only
          2. 7.1.5.2. max-size
      2. 7.2. Disk Space Watermarks
      3. 7.3. Object Size Limits
      4. 7.4. Allocating Objects to Cache Directories
      5. 7.5. Replacement Policies
      6. 7.6. Removing Cached Objects
        1. 7.6.1. Removing Individual Objects
        2. 7.6.2. Removing a Group of Objects
        3. 7.6.3. Removing All Objects
      7. 7.7. refresh_pattern
      8. 7.8. Exercises
    10. 8. Advanced Disk Cache Topics
      1. 8.1. Do I Have a Disk I/O Bottleneck?
      2. 8.2. Filesystem Tuning Options
      3. 8.3. Alternative Filesystems
      4. 8.4. The aufs Storage Scheme
        1. 8.4.1. How aufs Works
        2. 8.4.2. aufs Issues
        3. 8.4.3. Monitoring aufs Operation
      5. 8.5. The diskd Storage Scheme
        1. 8.5.1. How diskd Works
        2. 8.5.2. Compiling and Configuring diskd
        3. 8.5.3. Monitoring diskd
      6. 8.6. The coss Storage Scheme
        1. 8.6.1. How coss Works
        2. 8.6.2. Compiling and Configuring coss
        3. 8.6.3. coss Issues
      7. 8.7. The null Storage Scheme
      8. 8.8. Which Is Best for Me?
      9. 8.9. Exercises
    11. 9. Interception Caching
      1. 9.1. How It Works
      2. 9.2. Why (Not) Intercept?
      3. 9.3. The Network Device
        1. 9.3.1. Inline Squid
        2. 9.3.2. Layer Four Switches
          1. 9.3.2.1. Alteon/Nortel
          2. 9.3.2.2. Foundry
          3. 9.3.2.3. Extreme Networks
          4. 9.3.2.4. Cisco Arrowpoint
          5. 9.3.2.5. A comment on HTTP servers and health checks
        3. 9.3.3. Cisco Policy Routing
        4. 9.3.4. Web Cache Coordination Protocol
          1. 9.3.4.1. WCCPv1
          2. 9.3.4.2. WCCPv2
          3. 9.3.4.3. Debugging
      4. 9.4. Operating System Tweaks
        1. 9.4.1. Linux
          1. 9.4.1.1. Linux and WCCP
        2. 9.4.2. FreeBSD
          1. 9.4.2.1. FreeBSD and WCCP
        3. 9.4.3. OpenBSD
          1. 9.4.3.1. OpenBSD and WCCP
        4. 9.4.4. IPFilter on NetBSD and Others
          1. 9.4.4.1. NetBSD and WCCP
      5. 9.5. Configure Squid
        1. 9.5.1. Configuring WCCPv1
      6. 9.6. Debugging Problems
      7. 9.7. Exercises
    12. 10. Talking to Other Squids
      1. 10.1. Some Terminology
      2. 10.2. Why (Not) Use a Hierarchy?
      3. 10.3. Telling Squid About Your Neighbors
        1. 10.3.1. cache_peer Options
        2. 10.3.2. Neighbor State
        3. 10.3.3. Altering the Relationship
      4. 10.4. Restricting Requests to Neighbors
        1. 10.4.1. cache_peer_access
        2. 10.4.2. cache_peer_domain
        3. 10.4.3. never_direct
        4. 10.4.4. always_direct
        5. 10.4.5. hierarchy_stoplist
        6. 10.4.6. nonhierarchical_direct
        7. 10.4.7. prefer_direct
      5. 10.5. The Network Measurement Database
      6. 10.6. Internet Cache Protocol
        1. 10.6.1. Being an ICP Server
          1. 10.6.1.1. The icp_hit_stale directive
          2. 10.6.1.2. The ICP_MISS_NOFETCH feature
          3. 10.6.1.3. The test_reachability directive
        2. 10.6.2. Being an ICP Client
          1. 10.6.2.1. cache_peer options for ICP clients
          2. 10.6.2.2. ICP and netdb
        3. 10.6.3. Multicast ICP
          1. 10.6.3.1. Multicast ICP server
          2. 10.6.3.2. Multicast ICP client
          3. 10.6.3.3. Multicast ICP example
      7. 10.7. Cache Digests
        1. 10.7.1. Configuring Squid for Cache Digests
      8. 10.8. Hypertext Caching Protocol
        1. 10.8.1. Configuring Squid for HTCP
      9. 10.9. Cache Array Routing Protocol
        1. 10.9.1. Configuring Squid for CARP
      10. 10.10. Putting It All Together
        1. 10.10.1. Step 1: Determine Direct Options
        2. 10.10.2. Step 2: Neighbor Selection Protocols
        3. 10.10.3. Step 2a: ICP/HTCP Reply Processing
        4. 10.10.4. Step 3: Secondary Parent Selection
        5. 10.10.5. Retrying
      11. 10.11. How Do I ...
        1. 10.11.1. Send All Requests Through Another Proxy?
        2. 10.11.2. Send All Requests Through Another Proxy Unless It's Down?
        3. 10.11.3. Make Sure Squid Doesn't Use Neighbors for Some Requests?
        4. 10.11.4. Send Some Requests Through a Parent to Bypass Local Filters?
      12. 10.12. Exercises
    13. 11. Redirectors
      1. 11.1. The Redirector Interface
        1. 11.1.1. Handling URIs That Contain Whitespace
        2. 11.1.2. Generating HTTP Redirect Messages
      2. 11.2. Some Sample Redirectors
      3. 11.3. The Redirector Pool
      4. 11.4. Configuring Squid
        1. 11.4.1. redirect_program
        2. 11.4.2. redirect_children
        3. 11.4.3. redirect_rewrites_host_header
        4. 11.4.4. redirector_access
        5. 11.4.5. redirector_bypass
      5. 11.5. Popular Redirectors
        1. 11.5.1. Squirm
        2. 11.5.2. Jesred
        3. 11.5.3. squidGuard
        4. 11.5.4. AdZapper
      6. 11.6. Exercises
    14. 12. Authentication Helpers
      1. 12.1. Configuring Squid
      2. 12.2. HTTP Basic Authentication
        1. 12.2.1. NCSA
        2. 12.2.2. LDAP
        3. 12.2.3. MSNT
        4. 12.2.4. Multi-domain-NTLM
        5. 12.2.5. PAM
        6. 12.2.6. SASL
        7. 12.2.7. SMB
        8. 12.2.8. YP
        9. 12.2.9. getpwnam
        10. 12.2.10. winbind
        11. 12.2.11. The Basic Auth API
      3. 12.3. HTTP Digest Authentication
        1. 12.3.1. password
        2. 12.3.2. Digest Authentication API
      4. 12.4. Microsoft NTLM Authentication
        1. 12.4.1. SMB
        2. 12.4.2. winbind
        3. 12.4.3. NTLM Authentication API
      5. 12.5. External ACLs
        1. 12.5.1. ip_user
        2. 12.5.2. ldap_group
        3. 12.5.3. unix_group
        4. 12.5.4. wbinfo_group
        5. 12.5.5. winbind_group
        6. 12.5.6. Write Your Own
      6. 12.6. Exercises
    15. 13. Log Files
      1. 13.1. cache.log
        1. 13.1.1. Debugging Levels
        2. 13.1.2. Forwarding cache.log Messages to the System Log
        3. 13.1.3. Dumping cache.log Messages to Your Terminal
      2. 13.2. access.log
        1. 13.2.1. access.log Result Codes
        2. 13.2.2. HTTP Response Status Codes
        3. 13.2.3. access.log Peering Codes
        4. 13.2.4. Configuration Directives That Affect access.log
          1. 13.2.4.1. log_icp_queries
          2. 13.2.4.2. emulate_httpd_log
          3. 13.2.4.3. log_mime_hdrs
          4. 13.2.4.4. log_fqdn
          5. 13.2.4.5. ident_lookup_access
          6. 13.2.4.6. log_ip_on_direct
          7. 13.2.4.7. client_netmask
          8. 13.2.4.8. strip_query_terms
          9. 13.2.4.9. uri_whitespace
          10. 13.2.4.10. buffered_logs
        5. 13.2.5. access.log Analysis Tools
      3. 13.3. store.log
        1. 13.3.1. Mapping File Numbers to Pathnames
      4. 13.4. referer.log
      5. 13.5. useragent.log
      6. 13.6. swap.state
      7. 13.7. Rotating the Log Files
      8. 13.8. Privacy and Security
      9. 13.9. Exercises
    16. 14. Monitoring Squid
      1. 14.1. cache.log Warnings
      2. 14.2. The Cache Manager
        1. 14.2.1. Cache Manager Pages
          1. 14.2.1.1. leaks: Memory Leak Tracking
          2. 14.2.1.2. mem: Memory Utilization
          3. 14.2.1.3. cbdata: Callback Data Registry Contents
          4. 14.2.1.4. events: Event Queue
          5. 14.2.1.5. squidaio_counts: Async IO Function Counters
          6. 14.2.1.6. diskd: DISKD Stats
          7. 14.2.1.7. config: Current Squid Configuration*
          8. 14.2.1.8. comm_incoming: comm_incoming( ) Stats
          9. 14.2.1.9. ipcache: IP Cache Stats and Contents
          10. 14.2.1.10. fqdncache: FQDN Cache Stats and Contents
          11. 14.2.1.11. idns: Internal DNS Statistics
          12. 14.2.1.12. dns: Dnsserver Statistics
          13. 14.2.1.13. redirector: URL Redirector Stats
          14. 14.2.1.14. basicauthenticator: Basic User Authenticator Stats
          15. 14.2.1.15. digestauthenticator: Digest User Authenticator Stats
          16. 14.2.1.16. ntlmauthenticator: NTLM User Authenticator Stats
          17. 14.2.1.17. external_acl: External ACL Stats
          18. 14.2.1.18. http_headers: HTTP Header Statistics
          19. 14.2.1.19. via_headers: Via Request Headers
          20. 14.2.1.20. forw_headers: X-Forwarded-For Request Headers
          21. 14.2.1.21. menu: This Cache Manager Menu
          22. 14.2.1.22. shutdown: Shut Down the Squid Process*
          23. 14.2.1.23. offline_toggle: Toggle offline_mode Setting*
          24. 14.2.1.24. info: General Runtime Information
          25. 14.2.1.25. filedescriptors: Process File Descriptor Allocation
          26. 14.2.1.26. objects: All Cache Objects
          27. 14.2.1.27. vm_objects: In-Memory and In-Transit Objects
          28. 14.2.1.28. openfd_objects: Objects with Swapout Files Open
          29. 14.2.1.29. io: Server-Side Network read( ) Size Histograms
          30. 14.2.1.30. counters: Traffic and Resource Counters
          31. 14.2.1.31. peer_select: Peer Selection Algorithms
          32. 14.2.1.32. digest_stats: Cache Digest and ICP Blob
          33. 14.2.1.33. 5min: 5 Minute Average of Counters
          34. 14.2.1.34. 60min: 60 Minute Average of Counters
          35. 14.2.1.35. utilization: Cache Utilization
          36. 14.2.1.36. histograms: Full Histogram Counts
          37. 14.2.1.37. active_requests: Client-Side Active Requests
          38. 14.2.1.38. store_digest: Store Digest
          39. 14.2.1.39. storedir: Store Directory Stats
          40. 14.2.1.40. store_check_cachable_stats: storeCheckCachable( ) Stats
          41. 14.2.1.41. store_io: Store IO Interface Stats
          42. 14.2.1.42. pconn: Persistent Connection Utilization Histograms
          43. 14.2.1.43. refresh: Refresh Algorithm Statistics
          44. 14.2.1.44. delay: Delay Pool Levels
          45. 14.2.1.45. forward: Request Forwarding Statistics
          46. 14.2.1.46. client_list: Cache Client List
          47. 14.2.1.47. netdb: Network Measurement Database
          48. 14.2.1.48. asndb: AS Number Database
          49. 14.2.1.49. carp: CARP Information
          50. 14.2.1.50. server_list: Peer Cache Statistics
          51. 14.2.1.51. non_peers: List of Unknown Sites Sending ICP messages
        2. 14.2.2. Cache Manager Access Controls
          1. 14.2.2.1. http_access
          2. 14.2.2.2. cachemgr_passwd
          3. 14.2.2.3. cachemgr.cgi
        3. 14.2.3. Reasons to Dislike the Cache Manager
        4. 14.2.4. Squid-RRD
      3. 14.3. Using SNMP
        1. 14.3.1. Using snmpwalk and snmpget
        2. 14.3.2. The Squid MIB
      4. 14.4. Exercises
    17. 15. Server Accelerator Mode
      1. 15.1. Overview
      2. 15.2. Configuring Squid
        1. 15.2.1. http_port
        2. 15.2.2. https_port
        3. 15.2.3. httpd_accel_host
        4. 15.2.4. httpd_accel_port
        5. 15.2.5. httpd_accel_uses_host_header
        6. 15.2.6. httpd_accel_single_host
        7. 15.2.7. httpd_accel_with_proxy
      3. 15.3. Gee, That Was Confusing!
        1. 15.3.1. One Box, One Server Name
        2. 15.3.2. One Box, Many Server Names
        3. 15.3.3. Many Boxes, One Server Name
        4. 15.3.4. Many Boxes, Many Server Names
      4. 15.4. Access Controls
      5. 15.5. Content Negotiation
      6. 15.6. Gotchas
        1. 15.6.1. Logging
        2. 15.6.2. Ignoring Reloads
        3. 15.6.3. Uncachable Content
        4. 15.6.4. Errors
        5. 15.6.5. Purging Objects
        6. 15.6.6. Neighbors
      7. 15.7. Exercises
    18. 16. Debugging and Troubleshooting
      1. 16.1. Some Common Problems
        1. 16.1.1. "Failed to make swap directory"
        2. 16.1.2. "Address already in use"
        3. 16.1.3. "Could not determine fully qualified hostname"
        4. 16.1.4. "DNS name lookup tests failed"
        5. 16.1.5. "Illegal character in hostname"
        6. 16.1.6. "Running out of filedescriptors"
        7. 16.1.7. "icmpRecv: Connection refused"
        8. 16.1.8. Squid Becomes Slow After Running for Some Time
        9. 16.1.9. Debugging Access Controls
      2. 16.2. Debugging via cache.log
      3. 16.3. Core Dumps, Assertions, and Stack Traces
        1. 16.3.1. Can't Find the Core File?
      4. 16.4. Replicating Problems
      5. 16.5. Reporting a Bug
      6. 16.6. Exercises
    19. A. Config File Reference
      1. http_port
      2. https_port
      3. ssl_unclean_shutdown
      4. icp_port
      5. htcp_port
      6. mcast_groups
      7. udp_incoming_address
      8. udp_outgoing_address
      9. cache_peer
      10. cache_peer_domain
      11. neighbor_type_domain
      12. icp_query_timeout
      13. maximum_icp_query_timeout
      14. mcast_icp_query_timeout
      15. dead_peer_timeout
      16. hierarchy_stoplist
      17. no_cache
      18. cache_access_log
      19. cache_log
      20. cache_store_log
      21. cache_swap_log
      22. emulate_httpd_log
      23. log_ip_on_direct
      24. cache_dir
      25. cache_mem
      26. cache_swap_low
      27. cache_swap_high
      28. maximum_object_size
      29. minimum_object_size
      30. maximum_object_size_in_memory
      31. cache_replacement_policy
      32. memory_replacement_policy
      33. store_dir_select_algorithm
      34. mime_table
      35. ipcache_size
      36. ipcache_low
      37. ipcache_high
      38. fqdncache_size
      39. log_mime_hdrs
      40. useragent_log
      41. referer_log
      42. pid_filename
      43. debug_options
      44. log_fqdn
      45. client_netmask
      46. ftp_user
      47. ftp_list_width
      48. ftp_passive
      49. ftp_sanitycheck
      50. cache_dns_program
      51. dns_children
      52. dns_retransmit_interval
      53. dns_timeout
      54. dns_defnames
      55. dns_nameservers
      56. hosts_file
      57. diskd_program
      58. unlinkd_program
      59. pinger_program
      60. redirect_program
      61. redirect_children
      62. redirect_rewrites_host_header
      63. redirector_access
      64. redirector_bypass
      65. auth_param
      66. authenticate_ttl
      67. authenticate_cache_garbage_interval
      68. authenticate_ip_ttl
      69. external_acl_type
      70. wais_relay_host
      71. wais_relay_port
      72. request_header_max_size
      73. request_body_max_size
      74. refresh_pattern
      75. quick_abort_min
      76. quick_abort_max
      77. quick_abort_pct
      78. negative_ttl
      79. positive_dns_ttl
      80. negative_dns_ttl
      81. range_offset_limit
      82. connect_timeout
      83. peer_connect_timeout
      84. read_timeout
      85. request_timeout
      86. persistent_request_timeout
      87. client_lifetime
      88. half_closed_clients
      89. pconn_timeout
      90. ident_timeout
      91. shutdown_lifetime
      92. acl
      93. http_access
      94. http_reply_access
      95. icp_access
      96. miss_access
      97. cache_peer_access
      98. ident_lookup_access
      99. tcp_outgoing_tos
      100. tcp_outgoing_address
      101. reply_body_max_size
      102. cache_mgr
      103. cache_effective_user
      104. cache_effective_group
      105. visible_hostname
      106. unique_hostname
      107. hostname_aliases
      108. announce_period
      109. announce_host
      110. announce_file
      111. announce_port
      112. httpd_accel_host
      113. httpd_accel_port
      114. httpd_accel_single_host
      115. httpd_accel_with_proxy
      116. httpd_accel_uses_host_header
      117. dns_testnames
      118. logfile_rotate
      119. append_domain
      120. tcp_recv_bufsize
      121. err_html_text
      122. deny_info
      123. memory_pools
      124. memory_pools_limit
      125. forwarded_for
      126. log_icp_queries
      127. icp_hit_stale
      128. minimum_direct_hops
      129. minimum_direct_rtt
      130. cachemgr_passwd
      131. store_avg_object_size
      132. store_objects_per_bucket
      133. client_db
      134. netdb_low
      135. netdb_high
      136. netdb_ping_period
      137. query_icmp
      138. test_reachability
      139. buffered_logs
      140. reload_into_ims
      141. always_direct
      142. never_direct
      143. header_access
      144. header_replace
      145. icon_directory
      146. error_directory
      147. maximum_single_addr_tries
      148. snmp_port
      149. snmp_access
      150. snmp_incoming_address
      151. snmp_outgoing_address
      152. as_whois_server
      153. wccp_router
      154. wccp_version
      155. wccp_incoming_address
      156. wccp_outgoing_address
      157. delay_pools
      158. delay_class
      159. delay_access
      160. delay_parameters
      161. delay_initial_bucket_level
      162. incoming_icp_average
      163. incoming_http_average
      164. incoming_dns_average
      165. min_icp_poll_cnt
      166. min_dns_poll_cnt
      167. min_http_poll_cnt
      168. max_open_disk_fds
      169. offline_mode
      170. uri_whitespace
      171. broken_posts
      172. mcast_miss_addr
      173. mcast_miss_ttl
      174. mcast_miss_port
      175. mcast_miss_encode_key
      176. nonhierarchical_direct
      177. prefer_direct
      178. strip_query_terms
      179. coredump_dir
      180. ignore_unknown_nameservers
      181. digest_generation
      182. digest_bits_per_entry
      183. digest_rebuild_period
      184. digest_rewrite_period
      185. digest_swapout_chunk_size
      186. digest_rebuild_chunk_percentage
      187. chroot
      188. client_persistent_connections
      189. server_persistent_connections
      190. pipeline_prefetch
      191. extension_methods
      192. request_entities
      193. high_response_time_warning
      194. high_page_fault_warning
      195. high_memory_warning
      196. ie_refresh
      197. vary_ignore_expire
      198. sleep_after_fork
    20. B. The Memory Cache
    21. C. Delay Pools
      1. C.1. Overview
      2. C.2. Configuring Squid
        1. C.2.1. delay_pools
        2. C.2.2. delay_class
        3. C.2.3. delay_parameters
        4. C.2.4. delay_initial_bucket_level
        5. C.2.5. delay_access
        6. C.2.6. cache_peer no-delay Option
      3. C.3. Examples
      4. C.4. Issues
        1. C.4.1. Fairness
        2. C.4.2. Application Versus Transport Layer
        3. C.4.3. Fixed Subnetting Scheme
      5. C.5. Monitoring Delay Pools
    22. D. Filesystem Performance Benchmarks
      1. D.1. The Benchmark Environment
        1. D.1.1. Hardware for Squid
        2. D.1.2. Squid Version and Configuration
        3. D.1.3. Web Polygraph Workload
      2. D.2. General Comments
      3. D.3. Linux
      4. D.4. FreeBSD
      5. D.5. OpenBSD
      6. D.6. NetBSD
      7. D.7. Solaris
      8. D.8. Number of Disk Spindles
    23. E. Squid on Windows
      1. E.1. Cygwin
        1. E.1.1. Installing Cygwin
        2. E.1.2. The Squid Package
        3. E.1.3. Compiling Squid
        4. E.1.4. Configuring and Running
      2. E.2. SquidNT
    24. F. Configuring Squid Clients
      1. F.1. Manually
        1. F.1.1. Netscape/Mozilla
        2. F.1.2. Explorer
        3. F.1.3. Konqueror
        4. F.1.4. Opera
        5. F.1.5. Lynx
        6. F.1.6. Environment Variables
      2. F.2. Proxy Auto-Configuration
      3. F.3. WPAD
      4. F.4. Summary
    25. About the Author
    26. Colophon
    27. SPECIAL OFFER: Upgrade this ebook with O’Reilly