| | Copyright |
| | Dedication |
| | Preface |
| | | About This Book |
| | | Recommended Reading |
| | | Conventions Used in This Book |
| | | Comments and Questions |
| | | Acknowledgments |
| | Chapter 1. Introduction |
| | | Section 1.1. Web Caching |
| | | Section 1.2. A Brief History of Squid |
| | | Section 1.3. Hardware and Operating System Requirements |
| | | Section 1.4. Squid Is Open Source |
| | | Section 1.5. Squid's Home on the Web |
| | | Section 1.6. Getting Help |
| | | Section 1.7. Getting Started with Squid |
| | | Section 1.8. Exercises |
| | Chapter 2. Getting Squid |
| | | Section 2.1. Versions and Releases |
| | | Section 2.2. Use the Source, Luke |
| | | Section 2.3. Precompiled Binaries |
| | | Section 2.4. Anonymous CVS |
| | | Section 2.5. devel .squid-cache.org |
| | | Section 2.6. Exercises |
| | Chapter 3. Compiling and Installing |
| | | Section 3.1. Before You Start |
| | | Section 3.2. Unpacking the Source |
| | | Section 3.3. Pretuning Your Kernel |
| | | Section 3.4. The configure Script |
| | | Section 3.5. make |
| | | Section 3.6. make Install |
| | | Section 3.7. Applying a Patch |
| | | Section 3.8. Running configure Later |
| | | Section 3.9. Exercises |
| | Chapter 4. Configuration Guide for the Eager |
| | | Section 4.1. The squid.conf Syntax |
| | | Section 4.2. User IDs |
| | | Section 4.3. Port Numbers |
| | | Section 4.4. Log File Pathnames |
| | | Section 4.5. Access Controls |
| | | Section 4.6. Visible Hostname |
| | | Section 4.7. Administrative Contact Information |
| | | Section 4.8. Next Steps |
| | | Section 4.9. Exercises |
| | Chapter 5. Running Squid |
| | | Section 5.1. Squid Command-Line Options |
| | | Section 5.2. Check Your Configuration File for Errors |
| | | Section 5.3. Initializing Cache Directories |
| | | Section 5.4. Testing Squid in a Terminal Window |
| | | Section 5.5. Running Squid as a Daemon Process |
| | | Section 5.6. Boot Scripts |
| | | Section 5.7. A chroot Environment |
| | | Section 5.8. Stopping Squid |
| | | Section 5.9. Reconfiguring a Running Squid Process |
| | | Section 5.10. Rotating the Log Files |
| | | Section 5.11. Exercises |
| | Chapter 6. All About Access Controls |
| | | Section 6.1. Access Control Elements |
| | | Section 6.2. Access Control Rules |
| | | Section 6.3. Common Scenarios |
| | | Section 6.4. Testing Access Controls |
| | | Section 6.5. Exercises |
| | Chapter 7. Disk Cache Basics |
| | | Section 7.1. The cache_dir Directive |
| | | Section 7.2. Disk Space Watermarks |
| | | Section 7.3. Object Size Limits |
| | | Section 7.4. Allocating Objects to Cache Directories |
| | | Section 7.5. Replacement Policies |
| | | Section 7.6. Removing Cached Objects |
| | | Section 7.7. refresh_pattern |
| | | Section 7.8. Exercises |
| | Chapter 8. Advanced Disk Cache Topics |
| | | Section 8.1. Do I Have a Disk I/O Bottleneck? |
| | | Section 8.2. Filesystem Tuning Options |
| | | Section 8.3. Alternative Filesystems |
| | | Section 8.4. The aufs Storage Scheme |
| | | Section 8.5. The diskd Storage Scheme |
| | | Section 8.6. The coss Storage Scheme |
| | | Section 8.7. The null Storage Scheme |
| | | Section 8.8. Which Is Best for Me? |
| | | Section 8.9. Exercises |
| | Chapter 9. Interception Caching |
| | | Section 9.1. How It Works |
| | | Section 9.2. Why (Not) Intercept? |
| | | Section 9.3. The Network Device |
| | | Section 9.4. Operating System Tweaks |
| | | Section 9.5. Configure Squid |
| | | Section 9.6. Debugging Problems |
| | | Section 9.7. Exercises |
| | Chapter 10. Talking to Other Squids |
| | | Section 10.1. Some Terminology |
| | | Section 10.2. Why (Not) Use a Hierarchy? |
| | | Section 10.3. Telling Squid About Your Neighbors |
| | | Section 10.4. Restricting Requests to Neighbors |
| | | Section 10.5. The Network Measurement Database |
| | | Section 10.6. Internet Cache Protocol |
| | | Section 10.7. Cache Digests |
| | | Section 10.8. Hypertext Caching Protocol |
| | | Section 10.9. Cache Array Routing Protocol |
| | | Section 10.10. Putting It All Together |
| | | Section 10.11. How Do I ... |
| | | Section 10.12. Exercises |
| | Chapter 11. Redirectors |
| | | Section 11.1. The Redirector Interface |
| | | Section 11.2. Some Sample Redirectors |
| | | Section 11.3. The Redirector Pool |
| | | Section 11.4. Configuring Squid |
| | | Section 11.5. Popular Redirectors |
| | | Section 11.6. Exercises |
| | Chapter 12. Authentication Helpers |
| | | Section 12.1. Configuring Squid |
| | | Section 12.2. HTTP Basic Authentication |
| | | Section 12.3. HTTP Digest Authentication |
| | | Section 12.4. Microsoft NTLM Authentication |
| | | Section 12.5. External ACLs |
| | | Section 12.6. Exercises |
| | Chapter 13. Log Files |
| | | Section 13.1. cache.log |
| | | Section 13.2. access.log |
| | | Section 13.3. store.log |
| | | Section 13.4. referer.log |
| | | Section 13.5. useragent .log |
| | | Section 13.6. swap.state |
| | | Section 13.7. Rotating the Log Files |
| | | Section 13.8. Privacy and Security |
| | | Section 13.9. Exercises |
| | Chapter 14. Monitoring Squid |
| | | Section 14.1. cache.log Warnings |
| | | Section 14.2. The Cache Manager |
| | | Section 14.3. Using SNMP |
| | | Section 14.4. Exercises |
| | Chapter 15. Server Accelerator Mode |
| | | Section 15.1. Overview |
| | | Section 15.2. Configuring Squid |
| | | Section 15.3. Gee, That Was Confusing! |
| | | Section 15.4. Access Controls |
| | | Section 15.5. Content Negotiation |
| | | Section 15.6. Gotchas |
| | | Section 15.7. Exercises |
| | Chapter 16. Debugging and Troubleshooting |
| | | Section 16.1. Some Common Problems |
| | | Section 16.2. Debugging via cache.log |
| | | Section 16.3. Core Dumps, Assertions, and Stack Traces |
| | | Section 16.4. Replicating Problems |
| | | Section 16.5. Reporting a Bug |
| | | Section 16.6. Exercises |
| | Appendix A. Config File Reference |
| | | http_port |
| | | https_port |
| | | ssl_unclean_shutdown |
| | | icp_port |
| | | htcp_port |
| | | mcast_groups |
| | | udp_incoming_address |
| | | udp_outgoing_address |
| | | cache_peer |
| | | cache_peer_domain |
| | | neighbor_type_domain |
| | | icp_query_timeout |
| | | maximum_icp_query_timeout |
| | | mcast_icp_query_timeout |
| | | dead_peer_timeout |
| | | hierarchy_stoplist |
| | | no_cache |
| | | cache_access_log |
| | | cache_log |
| | | cache_store_log |
| | | cache_swap_log |
| | | emulate_httpd_log |
| | | log_ip_on_direct |
| | | cache_dir |
| | | cache_mem |
| | | cache_swap_low |
| | | cache_swap_high |
| | | maximum_object_size |
| | | minimum_object_size |
| | | maximum_object_size_in_memory |
| | | cache_replacement_policy |
| | | memory_replacement_policy |
| | | store_dir_select_algorithm |
| | | mime_table |
| | | ipcache_size |
| | | ipcache_low |
| | | ipcache_high |
| | | fqdncache_size |
| | | log_mime_hdrs |
| | | useragent_log |
| | | referer_log |
| | | pid_filename |
| | | debug_options |
| | | log_fqdn |
| | | client_netmask |
| | | ftp_user |
| | | ftp_list_width |
| | | ftp_passive |
| | | ftp_sanitycheck |
| | | cache_dns_program |
| | | dns_children |
| | | dns_retransmit_interval |
| | | dns_timeout |
| | | dns_defnames |
| | | dns_nameservers |
| | | hosts_file |
| | | diskd_program |
| | | unlinkd_program |
| | | pinger_program |
| | | redirect_program |
| | | redirect_children |
| | | redirect_rewrites_host_header |
| | | redirector_access |
| | | redirector_bypass |
| | | auth_param |
| | | authenticate_ttl |
| | | authenticate_cache_garbage_interval |
| | | authenticate_ip_ttl |
| | | external_acl_type |
| | | wais_relay_host |
| | | wais_relay_port |
| | | request_header_max_size |
| | | request_body_max_size |
| | | refresh_pattern |
| | | quick_abort_min |
| | | quick_abort_max |
| | | quick_abort_pct |
| | | negative_ttl |
| | | positive_dns_ttl |
| | | negative_dns_ttl |
| | | range_offset_limit |
| | | connect_timeout |
| | | peer_connect_timeout |
| | | read_timeout |
| | | request_timeout |
| | | persistent_request_timeout |
| | | client_lifetime |
| | | half_closed_clients |
| | | pconn_timeout |
| | | ident_timeout |
| | | shutdown_lifetime |
| | | acl |
| | | http_access |
| | | http_reply_access |
| | | icp_access |
| | | miss_access |
| | | cache_peer_access |
| | | ident_lookup_access |
| | | tcp_outgoing_tos |
| | | tcp_outgoing_address |
| | | reply_body_max_size |
| | | cache_mgr |
| | | cache_effective_user |
| | | cache_effective_group |
| | | visible_hostname |
| | | unique_hostname |
| | | hostname_aliases |
| | | announce_period |
| | | announce_host |
| | | announce_file |
| | | announce_port |
| | | httpd_accel_host |
| | | httpd_accel_port |
| | | httpd_accel_single_host |
| | | httpd_accel_with_proxy |
| | | httpd_accel_uses_host_header |
| | | dns_testnames |
| | | logfile_rotate |
| | | append_domain |
| | | tcp_recv_bufsize |
| | | err_html_text |
| | | deny_info |
| | | memory_pools |
| | | memory_pools_limit |
| | | forwarded_for |
| | | log_icp_queries |
| | | icp_hit_stale |
| | | minimum_direct_hops |
| | | minimum_direct_rtt |
| | | cachemgr_passwd |
| | | store_avg_object_size |
| | | store_objects_per_bucket |
| | | client_db |
| | | netdb_low |
| | | netdb_high |
| | | netdb_ping_period |
| | | query_icmp |
| | | test_reachability |
| | | buffered_logs |
| | | reload_into_ims |
| | | always_direct |
| | | never_direct |
| | | header_access |
| | | header_replace |
| | | icon_directory |
| | | error_directory |
| | | maximum_single_addr_tries |
| | | snmp_port |
| | | snmp_access |
| | | snmp_incoming_address |
| | | snmp_outgoing_address |
| | | as_whois_server |
| | | wccp_router |
| | | wccp_version |
| | | wccp_incoming_address |
| | | wccp_outgoing_address |
| | | delay_pools |
| | | delay_class |
| | | delay_access |
| | | delay_parameters |
| | | delay_initial_bucket_level |
| | | incoming_icp_average |
| | | incoming_http_average |
| | | incoming_dns_average |
| | | min_icp_poll_cnt |
| | | min_dns_poll_cnt |
| | | min_http_poll_cnt |
| | | max_open_disk_fds |
| | | offline_mode |
| | | uri_whitespace |
| | | broken_posts |
| | | mcast_miss_addr |
| | | mcast_miss_ttl |
| | | mcast_miss_port |
| | | mcast_miss_encode_key |
| | | nonhierarchical_direct |
| | | prefer_direct |
| | | strip_query_terms |
| | | coredump_dir |
| | | ignore_unknown_nameservers |
| | | digest_generation |
| | | digest_bits_per_entry |
| | | digest_rebuild_period |
| | | digest_rewrite_period |
| | | digest_swapout_chunk_size |
| | | digest_rebuild_chunk_percentage |
| | | chroot |
| | | client_persistent_connections |
| | | server_persistent_connections |
| | | pipeline_prefetch |
| | | extension_methods |
| | | request_entities |
| | | high_response_time_warning |
| | | high_page_fault_warning |
| | | high_memory_warning |
| | | ie_refresh |
| | | vary_ignore_expire |
| | | sleep_after_fork |
| | Appendix B. The Memory Cache |
| | Appendix C. Delay Pools |
| | | Section C.1. Overview |
| | | Section C.2. Configuring Squid |
| | | Section C.3. Examples |
| | | Section C.4. Issues |
| | | Section C.5. Monitoring Delay Pools |
| | Appendix D. Filesystem Performance Benchmarks |
| | | Section D.1. The Benchmark Environment |
| | | Section D.2. General Comments |
| | | Section D.3. Linux |
| | | Section D.4. FreeBSD |
| | | Section D.5. OpenBSD |
| | | Section D.6. NetBSD |
| | | Section D.7. Solaris |
| | | Section D.8. Number of Disk Spindles |
| | Appendix E. Squid on Windows |
| | | Section E.1. Cygwin |
| | | Section E.2. SquidNT |
| | Appendix F. Configuring Squid Clients |
| | | Section F.1. Manually |
| | | Section F.2. Proxy Auto-Configuration |
| | | Section F.3. WPAD |
| | | Section F.4. Summary |
| | Colophon |
| | Index |