|
| GPRS "dopato" con Squid
-- Inviata
da Andrea
il Tuesday, May 17 2005 |
Chi ha spesso necessità di accedere ad internet in GPRS per farlo solitamente decide, visto i prezzi esorbitanti a consumo, di attivare una flat. Io ne ho attivata una che prometteva una velocità di 30/40Kbps, ma dopo i primi minuti di connessione mi sono accorto di avere iniziato una "Via Crucis", in quanto spesso durante la navigazione il trasferimento dati si bloccava non riuscendo a scaricare praticamente nessun file più grande di qualche centinaio di kb. A questo punto la cosa più ovvia da fare per un utente Linux è quella di "dopare" la connessione GPRS con Squid, il noto Web proxy cache, che infatti opportunamente installato e configurato è stato in grado di risolvere tutti i suddetti problemi. Ecco le semplici operazioni da fare per settare il tutto:
1) INSTALLARE SQUID
Per gli utenti Mandrakelinux (ora Mandriva) usando il "Centro di Controllo" alla voce "Rete ed Internet" basta attivare la "Condivisione connessione ad internet" e verrà installato tutto il necessario in automatico, per la altre distribuzioni Linux bisogna fare le operazioni equivalenti oppure installarlo manualmente sequendo le istruzioni su http://squid.visolve.com/squid/sqguide.htm. 2) CONFIGURAZIONE
Aprire con un qualsiasi editor di testo il file di configurazione /etc/squid/squid.conf ed inserire: - per un uso locale la stringa
visible_hostname localhost - per limitare la banda le stringhe
#impostiamo il TAG delay_pools delay_pools 1 delay_class 1 1 delay_access 1 allow all delay_parameters 1 5500/5900 oppure sostituire tutto il contenuto del file /etc/squid/squid.confcon il sequente: # WELCOME TO SQUID 2 # ------------------ # # This is the default Squid configuration file. Youmay wish # to look at the Squid home page(http://www.squid-cache.org/) # for the FAQ and other documentation. # # The default Squid config file shows what thedefaults for # various options happen to be. If you don'tneed to change the # default, you shouldn't uncomment the line. Doing so may cause # run-time problems. In some cases "none"refers to no default # setting at all, while in other cases it refers to avalid # option - the comments for that keyword indicate ifthis is the # case. #
# NETWORK OPTIONS #-----------------------------------------------------------------------------
# TAG: http_port # Usage: port # hostname:port # 1.2.3.4:port # # The socket addresses where Squid will listen forHTTP client # requests. You may specify multiple socketaddresses. # There are three forms: port alone, hostname withport, and # IP address with port. If you specify ahostname or IP # address, then Squid binds the socket to thatspecific # address. This replaces the old'tcp_incoming_address' # option. Most likely, you do not need to bindto a specific # address, so you can use the port number alone. # # The default port number is 3128. # # If you are running Squid in accelerator mode, thenyou # probably want to listen on port 80 also, or instead. # # The -a command line option will override the*first* port # number listed here. That option willNOT override an IP # address, however. # # You may specify multiple socket addresses onmultiple lines. # #Default: http_port 3128
# TAG: icp_port # The port number where Squid sends and receives ICPqueries to # and from neighbor caches. Default is3130. To disable use # "0". May be overridden with -u on the commandline. # #Default: # icp_port 3130
# TAG: htcp_port # The port number where Squid sends and receives HTCPqueries to # and from neighbor caches. Default is4827. To disable use # "0". # # To enable this option, you must use --enable-htcpwith the # configure script. # #Default: # htcp_port 4827
# TAG: mcast_groups # This tag specifies a list of multicast groups whichyour server # should join to receive multicasted ICP queries. # # NOTE! Be very careful what you puthere! Be sure you # understand the difference between an ICP _query_and an ICP # _reply_. This option is to be set only if youwant to RECEIVE # multicast queries. Do NOT set this option toSEND multicast # ICP (use cache_peer for that). ICP repliesare always sent via # unicast, so this option does not affect whether ornot you will # receive replies from multicast group members. # # You must be very careful to NOT use a multicastaddress which # is already in use by another group of caches. # # If you are unsure about multicast, please read theMulticast # chapter in the Squid FAQ(http://www.squid-cache.org/FAQ/). # # Usage: mcast_groups 239.128.16.128 224.0.1.20 # # By default, Squid doesn't listen on any multicastgroups. # #Default: # none
# TAG: tcp_outgoing_address # TAG: udp_incoming_address # TAG: udp_outgoing_address # Usage: tcp_incoming_address 10.20.30.40 # udp_outgoing_address fully.qualified.domain.name # # tcp_outgoing_address is used forconnections made to remote # servers and other caches. # udp_incoming_address is used forthe ICP socket receiving packets # from other caches. # udp_outgoing_address is used forICP packets sent out to other # caches. # # The default behavior is to not bind to any specificaddress. # # A *_incoming_address value of 0.0.0.0 indicatesthat Squid should # listen on all available interfaces. # # If udp_outgoing_address is set to 255.255.255.255(the default) # then it will use the same socket asudp_incoming_address. Only # change this if you want to have ICP queries sentusing another # address than where this Squid listens for ICPqueries from other # caches. # # NOTE, udp_incoming_address and udp_outgoing_addresscan not # have the same value since they both use port 3130. # # NOTE, tcp_incoming_address has been removed. You can now # specify IP addresses on the 'http_port' line. # #Default: # tcp_outgoing_address 255.255.255.255 # udp_incoming_address 0.0.0.0 # udp_outgoing_address 255.255.255.255
# OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM #-----------------------------------------------------------------------------
# TAG: cache_peer # To specify other caches in a hierarchy, use theformat: # # cache_peer hostname typehttp_port icp_port # # For example, # # # proxy icp # # hostname type port port options # # -------------------- -------- ----- ----- ----------- # cache_peerparent.foo.net parent 3128 3130 [proxy-only] # cache_peersib1.foo.net sibling 3128 3130 [proxy-only] # cache_peersib2.foo.net sibling 3128 3130 [proxy-only] # # type: either'parent', 'sibling', or 'multicast'. # # proxy_port: The port number where the cachelistens for proxy # requests. # # icp_port: Used for querying neighborcaches about # objects. To have a non-ICP neighbor # specify'7' for the ICP port and make sure the # neighbor machine has the UDP echo port # enabledin its /etc/inetd.conf file. # # options: proxy-only # weight=n # ttl=n # no-query # default # round-robin # multicast-responder # closest-only # no-digest # no-netdb-exchange # no-delay # login=user:password # connect-timeout=nn # digest-url=url # allow-miss # # use'proxy-only' to specify that objects fetched # fromthis cache should not be saved locally. # # use'weight=n' to specify a weighted parent. # Theweight must be an integer. The default weight # is 1,larger weights are favored more. # # use'ttl=n' to specify a IP multicast TTL to use # whensending an ICP queries to this address. # Onlyuseful when sending to a multicast group. # Becausewe don't accept ICP replies from random # hosts,you must configure other group members as # peerswith the 'multicast-responder' option below. # # use'no-query' to NOT send ICP queries to this # neighbor. # # use'default' if this is a parent cache which can # be usedas a "last-resort." You should probably # onlyuse 'default' in situations where you cannot # use ICPwith your parent cache(s). # # use'round-robin' to define a set of parents which # shouldbe used in a round-robin fashion in the # absenceof any ICP queries. # # 'multicast-responder' indicates that the named peer # is amember of a multicast group. ICP queries will # not besent directly to the peer, but ICP replies # will beaccepted from it. # # 'closest-only' indicates that, for ICP_OP_MISS # replies, we'll only forward CLOSEST_PARENT_MISSes # andnever FIRST_PARENT_MISSes. # # use'no-digest' to NOT request cache digests from # thisneighbor. # # 'no-netdb-exchange' disables requesting ICMP # RTTdatabase (NetDB) from the neighbor. # # use'no-delay' to prevent access to this neighbor # frominfluencing the delay pools. # # use'login=user:password' if this is a personal/workgroup # proxyand your parent requires proxy authentication. # # use'connect-timeout=nn' to specify a peer # specific connect timeout (also see the # peer_connect_timeout directive) # # use'digest-url=url' to tell Squid to fetch the cache # digest(if digests are enabled) for this host from # thespecified URL rather than the Squid default # location. # # use'allow-miss' to disable Squid's use of only-if-cached # whenforwarding requests to siblings. This is primarily # usefulwhen icp_hit_stale is used by the sibling. To # extensive use of this option may result in forwarding # loops,and you should avoid having two-way peerings # withthis option. (for example to deny peer usage on # requests from peer by denying cache_peer_access if the # sourceis a peer) # # NOTE: non-ICP neighbors must be specified as'parent'. # #Default: # none
# TAG: cache_peer_domain # Use to limit the domains for which a neighbor cachewill be # queried. Usage: # # cache_peer_domain cache-host domain [domain ...] # cache_peer_domain cache-host !domain # # For example, specifying # # cache_peer_domainparent.foo.net .edu # # has the effect such that UDP query packets are sentto # 'bigserver' only when the requested object existson a # server in the .edu domain. Prefixing thedomainname # with '!' means that the cache will be queried forobjects # NOT in that domain. # # NOTE: * Any number of domains maybe given for a cache-host, # either on the same orseparate lines. # * When multiple domains aregiven for a particular # cache-host, the firstmatched domain is applied. # * Cache hosts with no domainrestrictions are queried # for all requests. # * There are no defaults. # * There is also a'cache_peer_access' tag in the ACL # section. # #Default: # none
# TAG: neighbor_type_domain # usage: neighbor_type_domain parent|sibling domaindomain ... # # Modifying the neighbor type for specific domains isnow # possible. You can treat some domainsdifferently than the the # default neighbor type specified on the 'cache_peer'line. # Normally it should only be necessary to listdomains which # should be treated differently because the defaultneighbor type # applies for hostnames which do not match domainslisted here. # #EXAMPLE: # cache_peer parent cache.foo.org 3128 3130 # neighbor_type_domain cache.foo.org sibling .com .net # neighbor_type_domain cache.foo.org sibling .au .de # #Default: # none
# TAG: icp_query_timeout (msec) # Normally Squid will automatically determine anoptimal ICP # query timeout value based on the round-trip-time ofrecent ICP # queries. If you want to override the valuedetermined by # Squid, set this 'icp_query_timeout' to a non-zerovalue. This # value is specified in MILLISECONDS, so, to use a2-second # timeout (the old default), you would write: # # icp_query_timeout 2000 # #Default: # icp_query_timeout 0
# TAG: maximum_icp_query_timeout (msec) # Normally the ICP query timeout is determineddynamically. But # sometimes it can lead to very large values (say 5seconds). # Use this option to put an upper limit on thedynamic timeout # value. Do NOT use this option to always use afixed (instead # of a dynamic) timeout value. To set a fixed timeoutsee the # 'icp_query_timeout' directive. # #Default: # maximum_icp_query_timeout 2000
# TAG: mcast_icp_query_timeout (msec) # For Multicast peers, Squid regularly sends out ICP"probes" to # count how many other peers are listening on thegiven multicast # address. This value specifies how long Squidshould wait to # count all the replies. The default is 2000msec, or 2 # seconds. # #Default: # mcast_icp_query_timeout 2000
# TAG: dead_peer_timeout (seconds) # This controls how long Squid waits to declare apeer cache # as "dead." If there are no ICP repliesreceived in this # amount of time, Squid will declare the peer deadand not # expect to receive any further ICP replies. However, it # continues to send ICP queries, and will mark thepeer as # alive upon receipt of the first subsequent ICPreply. # # This timeout also affects when Squid expects toreceive ICP # replies from peers. If more than 'dead_peer'seconds have # passed since the last ICP reply was received, Squidwill not # expect to receive an ICP reply on the nextquery. Thus, if # your time between requests is greater than thistimeout, you # will see a lot of requests sent DIRECT to originservers # instead of to your parents. # #Default: # dead_peer_timeout 10 seconds
# TAG: hierarchy_stoplist # A list of words which, if found in a URL, cause theobject to # be handled directly by this cache. In otherwords, use this # to not query neighbor caches for certainobjects. You may # list this option multiple times. # #We recommend you to use at least the following line. hierarchy_stoplist cgi-bin ?
# TAG: no_cache # A list of ACL elements which, if matched, cause thereply to # immediately removed from the cache. In otherwords, use this # to force certain objects to never be cached. # # You must use the word 'DENY' to indicate the ACLnames which should # NOT be cached. # #We recommend you to use the following two lines. acl QUERY urlpath_regex cgi-bin \? no_cache deny QUERY
# OPTIONS WHICH AFFECT THE CACHE SIZE #-----------------------------------------------------------------------------
# TAG: cache_mem (bytes) # NOTE: THIS PARAMETER DOES NOT SPECIFY THE MAXIMUMPROCESS # SIZE. IT PLACES A LIMIT ON ONE ASPECT OFSQUID'S MEMORY # USAGE. SQUID USES MEMORY FOR OTHER THINGS ASWELL. # YOUR PROCESS WILL PROBABLY BECOME TWICE OR THREETIMES # BIGGER THAN THE VALUE YOU PUT HERE # # 'cache_mem' specifies the ideal amount of memory tobe used # for: # * In-Transit objects # * Hot Objects # * Negative-Cached objects # # Data for these objects are stored in 4 KBblocks. This # parameter specifies the ideal upper limit on thetotal size of # 4 KB blocks allocated. In-Transit objectstake the highest # priority. # # In-transit objects have priority over theothers. When # additional space is needed for incoming data,negative-cached # and hot objects will be released. In otherwords, the # negative-cached and hot objects will fill up anyunused space # not needed for in-transit objects. # # If circumstances require, this limit will beexceeded. # Specifically, if your incoming request raterequires more than # 'cache_mem' of memory to hold in-transit objects,Squid will # exceed this limit to satisfy the newrequests. When the load # decreases, blocks will be freed until thehigh-water mark is # reached. Thereafter, blocks will be used tostore hot # objects. # #Default: cache_mem 16 MB
# TAG: cache_swap_low (percent, 0-100) # TAG: cache_swap_high (percent, 0-100) # # The low- and high-water marks for cache objectreplacement. # Replacement begins when the swap (disk) usage isabove the # low-water mark and attempts to maintain utilizationnear the # low-water mark. As swap utilization getsclose to high-water # mark object eviction becomes more aggressive. If utilization is # close to the low-water mark less replacement isdone each time. # # Defaults are 90% and 95%. If you have a largecache, 5% could be # hundreds of MB. If this is the case you may wish toset these # numbers closer together. # #Default: # cache_swap_low 90 # cache_swap_high 95
# TAG: maximum_object_size (bytes) # Objects larger than this size will NOT be saved ondisk. The # value is specified in kilobytes, and the default is4MB. If # you wish to get a high BYTES hit ratio, you shouldprobably # increase this (one 32 MB object hit counts for 320010KB # hits). If you wish to increase speed morethan your want to # save bandwidth you should leave this low. # # NOTE: if using the LFUDA replacement policy youshould increase # this value to maximize the byte hit rateimprovement of LFUDA! # See replacement_policy below for a discussion ofthis policy. # #Default: # maximum_object_size 4096 KB
# TAG: minimum_object_size (bytes) # Objects smaller than this size will NOT be saved ondisk. The # value is specified in kilobytes, and the default is0 KB, which # means there is no minimum. # #Default: # minimum_object_size 0 KB
# TAG: maximum_object_size_in_memory (bytes) # Objects greater than thissize will not be attempted to kept in # the memory cache. Thisshould be set high enough to keep objects # accessed frequently inmemory to improve performance whilst low # enough to keep largerobjects from hoarding cache_mem . # #Default: # maximum_object_size_in_memory 8 KB
# TAG: ipcache_size (number of entries) # TAG: ipcache_low (percent) # TAG: ipcache_high (percent) # The size, low-, and high-water marks for the IPcache. # #Default: # ipcache_size 1024 # ipcache_low 90 # ipcache_high 95
# TAG: fqdncache_size (number of entries) # Maximum number of FQDN cache entries. # #Default: # fqdncache_size 1024
# TAG: cache_replacement_policy # The cache replacement policy parameter determineswhich # objects are evicted (replaced) when disk space isneeded. # # lru : Squid's original list basedLRU policy # heap GDSF : Greedy-Dual SizeFrequency # heap LFUDA: Least FrequentlyUsed with Dynamic Aging # heap LRU : LRU policyimplemented using a heap # # Applies to any cache_dir lines listed below this. # # The LRU policies keeps recently referenced objects. # # The heap GDSF policy optimizes object hit rate bykeeping smaller # popular objects in cache so it has a better chanceof getting a # hit. It achieves a lower byte hit rate thanLFUDA though since # it evicts larger (possibly popular) objects. # # The heap LFUDA policy keeps popular objects incache regardless of # their size and thus optimizes byte hit rate at theexpense of # hit rate since one large, popular object willprevent many # smaller, slightly less popular objects from beingcached. # # Both policies utilize a dynamic aging mechanismthat prevents # cache pollution that can otherwise occur withfrequency-based # replacement policies. # # NOTE: if using the LFUDA replacement policy youshould increase # the value of maximum_object_size above its defaultof 4096 KB to # to maximize the potential byte hit rate improvementof LFUDA. # # For more information about the GDSF and LFUDA cachereplacement # policies seehttp://www.hpl.hp.com/techreports/1999/HPL-1999-69.html # andhttp://fog.hpl.external.hp.com/techreports/98/HPL-98-173.html. # #Default: # cache_replacement_policy lru
# TAG: memory_replacement_policy # The memory replacement policy parameter determineswhich # objects are purged from memory when memory space isneeded. # # See cache_replacement_policy for details. # #Default: # memory_replacement_policy lru
# LOGFILE PATHNAMES AND CACHE DIRECTORIES #-----------------------------------------------------------------------------
# TAG: cache_dir # Usage: # # cache_dir Type Directory-Name Fs-specific-data[options] # # You can specify multiple cache_dir lines to spreadthe # cache among different disk partitions. # # Type specifies the kind of storage system touse. Most # everyone will want to use "ufs" as the type. If you are using # Async I/O (--enable async-io) on Linux or Solaris,then you may # want to try "aufs" as the type. Async IOsupport may be # buggy, however, so beware. # # 'Directory' is a top-level directory where cacheswap # files will be stored. If you want to use anentire disk # for caching, then this can be the mount-pointdirectory. # The directory must exist and be writable by theSquid # process. Squid will NOT create this directoryfor you. # # The ufs store type: # # "ufs" is the old well-known Squid storage formatthat has always # been there. # # cache_dir ufs Directory-Name Mbytes L1 L2 [options] # # 'Mbytes' is the amount of disk space (MB) to useunder this # directory. The default is 100 MB. Change this to suit your # configuration. # # 'Level-1' is the number of first-levelsubdirectories which # will be created under the 'Directory'. Thedefault is 16. # # 'Level-2' is the number of second-levelsubdirectories which # will be created under each first-leveldirectory. The default # is 256. # # The aufs store type: # # "aufs" uses the same storage format as "ufs",utilizing # POSIX-threads to avoid blocking the main Squidprocess on # disk-I/O. This was formerly known in Squid asasync-io. # # cache_dir aufs Directory-Name Mbytes L1 L2 [options] # # see argument descriptions under ufs above # # The diskd store type: # # "diskd" uses the same storage format as "ufs",utilizing a # separate process to avoid blocking the main Squidprocess on # disk-I/O. # # cache_dir diskd Directory-Name Mbytes L1 L2[options] [Q1=n] [Q2=n] # # see argument descriptions under ufs above # # Q1 specifies the number of unacknowledged I/Orequests when Squid # stops opening new files. If this many messages arein the queues, # Squid won't open new files. Default is 64 # # Q2 specifies the number of unacknowledged messageswhen Squid # starts blocking. If this many messages are inthe queues, # Squid blocks until it recevies some replies.Default is 72 # # Common options: # # read-only, this cache_dir is read only. # # max-size=n, refers to the max object size thisstoredir supports. # It is used to initially choose the storedir to dumpthe object. # Note: To make optimal use of the max-size limitsyou should order # the cache_dir lines with the smallest max-sizevalue first and the # ones with no max-size specification last. # #Default: cache_dir ufs /var/spool/squid 128 8 128
# TAG: cache_access_log # Logs the client request activity. Contains anentry for # every HTTP and ICP queries received. # #Default: # cache_access_log /var/log/squid/access.log
# TAG: cache_log # Cache logging file. This is where generalinformation about # your cache's behavior goes. You can increase theamount of data # logged to this file with the "debug_options" tagbelow. # #Default: # cache_log /var/log/squid/cache.log
# TAG: cache_store_log # Logs the activities of the storage manager. Shows which # objects are ejected from the cache, and whichobjects are # saved and for how long. To disable, enter"none". There are # not really utilities to analyze this data, so youcan safely # disable it. # #Default: # cache_store_log /var/log/squid/store.log
# TAG: cache_swap_log # Location for the cache "swap.log." This logfile holds the # metadata of objects saved on disk. It is usedto rebuild the # cache during startup. Normally this fileresides in each # 'cache_dir' directory, but you may specify analternate # pathname here. Note you must give a fullfilename, not just # a directory. Since this is the index for the wholeobject # list you CANNOT periodically rotate it! # # If %s can be used in the file name then it will bereplaced with a # a representation of the cache_dir name where each /is replaced # with '.'. This is needed to allow adding/removingcache_dir # lines when cache_swap_log is being used. # # If have more than one 'cache_dir', and %s is notused in the name # then these swap logs will have names such as: # # cache_swap_log.00 # cache_swap_log.01 # cache_swap_log.02 # # The numbered extension (which is addedautomatically) # corresponds to the order of the 'cache_dir' linesin this # configuration file. If you change the orderof the 'cache_dir' # lines in this file, then these log files will NOTcorrespond to # the correct 'cache_dir' entry (unless you manuallyrename # them). We recommend that you do NOT use thisoption. It is # better to keep these log files in each 'cache_dir'directory. # #Default: # none
# TAG: emulate_httpd_log on|off # The Cache can emulate the log file format whichmany 'httpd' # programs use. To disable/enable thisemulation, set # emulate_httpd_log to 'off' or 'on'. Thedefault # is to use the native log format since it includesuseful # information that Squid-specific log analyzers use. # #Default: # emulate_httpd_log off
# TAG: log_ip_on_direct on|off # Log the destination IP address in the hierarchy logtag when going # direct. Earlier Squid versions logged the hostnamehere. If you # prefer the old way set this to off. # #Default: # log_ip_on_direct on
# TAG: mime_table # Pathname to Squid's MIME table. You shouldn't needto change # this, but the default file contains examples andformatting # information if you do. # #Default: # mime_table /etc/squid/mime.conf
# TAG: log_mime_hdrs on|off # The Cache can record both the request and theresponse MIME # headers for each HTTP transaction. Theheaders are encoded # safely and will appear as two bracketed fields atthe end of # the access log (for either the native orhttpd-emulated log # formats). To enable this logging setlog_mime_hdrs to 'on'. # #Default: # log_mime_hdrs off
# TAG: useragent_log # Squid will write the User-Agent field from HTTPrequests # to the filename specified here. By defaultuseragent_log # is disabled. # #Default: # none
# TAG: referer_log # Note: This option is only available if Squid is rebuilt with the # --enable-referer-log option # # Squid will write the Referer field from HTTPrequests to the # filename specified here. By defaultreferer_log is disabled. # #Default: # none
# TAG: pid_filename # A filename to write the process-id to. Todisable, enter "none". # #Default: # pid_filename /var/run/squid.pid
# TAG: debug_options # Logging options are set as section,level where eachsource file # is assigned a unique section. Lower levelsresult in less # output, Full debugging (level 9) can resultin a very large # log file, so be careful. The magic word "ALL"sets debugging # levels for all sections. We recommendnormally running with # "ALL,1". # #Default: # debug_options ALL,1
# TAG: log_fqdn on|off # Turn this on if you wish to log fully qualifieddomain names # in the access.log. To do this Squid does a DNSlookup of all # IP's connecting to it. This can (in somesituations) increase # latency, which makes your cache seem slower forinteractive # browsing. # #Default: # log_fqdn off
# TAG: client_netmask # A netmask for client addresses in logfiles andcachemgr output. # Change this to protect the privacy of your cacheclients. # A netmask of 255.255.255.0 will log all IP's inthat range with # the last digit set to '0'. # #Default: # client_netmask 255.255.255.255
# OPTIONS FOR EXTERNAL SUPPORT PROGRAMS #-----------------------------------------------------------------------------
# TAG: ftp_user # If you want the anonymous login password to be moreinformative # (and enable the use of picky ftp servers), set thisto something # reasonable for your domain, likewwwuser@somewhere.net # # The reason why this is domainless by default isthat the # request can be made on the behalf of a user in anydomain, # depending on how the cache is used. # Some ftp server also validate that the emailaddress is valid # (for example perl.com). # #Default: # ftp_user Squid@
# TAG: ftp_list_width # Sets the width of ftp listings. This should be setto fit in # the width of a standard browser. Setting this toosmall # can cut off long filenames when browsing ftp sites. # #Default: # ftp_list_width 32
# TAG: ftp_passive # If your firewall does not allow Squid to use passive # connections, then turn off this option. # #Default: # ftp_passive on
# TAG: cache_dns_program # Note: This option is only available if Squid is rebuilt with the # --disable-internal-dns option # # Specify the location of the executable fordnslookup process. # #Default: # cache_dns_program /usr/lib/squid/
# TAG: dns_children # Note: This option is only available if Squid is rebuilt with the # --disable-internal-dns option # # The number of processes spawn to service DNS namelookups. # For heavily loaded caches on large servers, youshould # probably increase this value to at least 10. The maximum # is 32. The default is 5. # # You must have at least one dnsserver process. # #Default: # dns_children 5
# TAG: dns_retransmit_interval # Initial retransmit interval for DNS queries. Theinterval is # doubled each time all configured DNS servers havebeen tried. # # #Default: # dns_retransmit_interval 5 seconds
# TAG: dns_timeout # DNS Query timeout. If no response is received to aDNS query # within this time then all DNS servers for thequeried domain # is assumed to be unavailable. # #Default: # dns_timeout 5 minutes
# TAG: dns_defnames on|off # Note: This option is only available if Squid is rebuilt with the # --disable-internal-dns option # # Normally the 'dnsserver' disables the RES_DEFNAMESresolver # option (see res_init(3)). This preventscaches in a hierarchy # from interpreting single-component hostnameslocally. To allow # dnsserver to handle single-component names, enablethis # option. # #Default: # dns_defnames off
# TAG: dns_nameservers # Use this if you want to specify a list of DNS nameservers # (IP addresses) to use instead of those given in your # /etc/resolv.conf file. # # Example: dns_nameservers 10.0.0.1 192.172.0.4 # #Default: # none
# TAG: diskd_program # Specify the location of the diskd executable. # Note that this is only useful if you have compiledin # diskd as one of the store io modules. # #Default: # diskd_program /usr/lib/squid/diskd
# TAG: unlinkd_program # Specify the location of the executable for filedeletion process. # #Default: # unlinkd_program /usr/lib/squid/unlinkd
# TAG: pinger_program # Note: This option is only available if Squid is rebuilt with the # --enable-icmp option # # Specify the location of the executable for thepinger process. # This is only useful if you configured Squid (duringcompilation) # with the '--enable-icmp' option. # #Default: # pinger_program /usr/lib/squid/
# TAG: redirect_program # Specify the location of the executable for the URLredirector. # Since they can perform almost any function thereisn't one included. # See the Release-Notes for information on how towrite one. # By default, a redirector is not used. # #Default: # none
# TAG: redirect_children # The number of redirector processes to spawn. If youstart # too few Squid will have to wait for them to processa backlog of # URLs, slowing it down. If you start too many theywill use RAM # and other system resources. # #Default: # redirect_children 5
# TAG: redirect_rewrites_host_header # By default Squid rewrites any Host: header inredirected # requests. If you are running a acceleratorthen this may # not be a wanted effect of a redirector. # #Default: # redirect_rewrites_host_header on
# TAG: redirector_access # If defined, this access list specifies whichrequests are # sent to the redirector processes. By defaultall requests # are sent. # #Default: # none
# TAG: authenticate_program # Specify the command for the externalauthenticator. Such a # program reads a line containing "username password"and replies # "OK" or "ERR" in an endless loop. If you usean authenticator, # make sure you have 1 acl of type proxy_auth. By default, the # authenticator_program is not used. # # If you want to use the traditional proxyauthentication, # jump over to the ../auth_modules/NCSA directory and # type: # % make # % make install # # Then, set this line to something like # # authenticate_program /usr/bin/ncsa_auth/usr/etc/passwd # #Default: # none
# TAG: authenticate_children # The number of authenticator processes to spawn(default 5). If you # start too few Squid will have to wait for them toprocess a backlog # of usercode/password verifications, slowing itdown. When password # verifications are done via a (slow) network you arelikely to need # lots of authenticator processes. # #Default: # authenticate_children 5
# TAG: authenticate_ttl # The time a checked username/password combinationremains cached. # If a wrong password is given for a cached user, theuser gets # removed from the username/password cache forcing arevalidation. # #Default: # authenticate_ttl 1 hour
# TAG: authenticate_ip_ttl # With this option you control how long a proxyauthentication # will be bound to a specific IP address. If arequest using # the same user name is received during this timethen access # will be denied and both users are required toreauthenticate # them selves. The idea behind this is to makeit annoying # for people to share their password to theirfriends, but # yet allow a dialup user to reconnect on a differentdialup # port. # # The default is 0 to disable the check. Recommendedvalue # if you have dialup users are no more than 60seconds to allow # the user to redial without hassle. If all yourusers are # stationary then higher values may be used. # # See also authenticate_ip_ttl_is_strict # #Default: # authenticate_ip_ttl 0 seconds
# TAG: authenticate_ip_ttl_is_strict # This option makes authenticate_ip_ttl a bitstricted. With this # enabled authenticate_ip_ttl will deny all accessfrom other IP # addresses until the TTL has expired, and the IPaddress "owning" # the userid will not be forced to reauthenticate. # #Default: # authenticate_ip_ttl_is_strict on
# OPTIONS FOR TUNING THE CACHE #-----------------------------------------------------------------------------
# TAG: wais_relay_host # TAG: wais_relay_port # Relay WAIS request to host (1st arg) at port (2arg). # #Default: # wais_relay_port 0
# TAG: request_header_max_size (KB) # This specifies the maximum size for HTTP headers ina request. # Request headers are usually relatively small (about512 bytes). # Placing a limit on the request header size willcatch certain # bugs (for example with persistent connections) andpossibly # buffer-overflow or denial-of-service attacks. # #Default: # request_header_max_size 10 KB
# TAG: request_body_max_size (KB) # This specifies the maximum size for an HTTP requestbody. # In other words, the maximum size of a PUT/POSTrequest. # A user who attempts to send a request with a bodylarger # than this limit receives an "Invalid Request" errormessage. # If you set this parameter to a zero, there will beno limit # imposed. # #Default: # request_body_max_size 1 MB
# TAG: reply_body_max_size (KB) # This option specifies the maximum size of a replybody. It # can be used to prevent users from downloading verylarge files, # such as MP3's and movies. The replysize is checked twice. # First when we get the reply headers, we check the # content-length value. If the content lengthvalue exists and # is larger than this parameter, the request isdenied and the # user receives an error message that says "therequest or reply # is too large." If there is no content-length, andthe reply # size exceeds this limit, the client's connection isjust closed # and they will receive a partial reply. # # NOTE: downstream caches probably can not detect apartial reply # if there is no content-length header, so they willcache # partial responses and give them out as hits. You should NOT # use this option if you have downstream caches. # # If you set this parameter to zero (the default),there will be # no limit imposed. # #Default: # reply_body_max_size 0
# TAG: refresh_pattern # usage: refresh_pattern [-i] regex min percent max[options] # # By default, regular expressions areCASE-SENSITIVE. To make # them case-insensitive, use the -i option. # # 'Min' is the time (in minutes) an object without anexplicit # expiry time should be considered fresh. Therecommended # value is 0, any higher values may cause dynamicapplications # to be erroneously cached unless the applicationdesigner # has taken the appropriate actions. # # 'Percent' is a percentage of the objects age (timesince last # modification age) an object without explicit expirytime # will be considered fresh. # # 'Max' is an upper limit on how long objects withoutan explicit # expiry time will be considered fresh. # # options: overrsde-expire # override-lastmod # reload-into-ims # ignore-reload # # override-expire enforces min ageeven if the server # sent a Expires: header. Doingthis VIOLATES the HTTP # standard. Enabling thisfeature could make you liable # for problems which it causes. # # override-lastmod enforces minage even on objects # that was modified recently. # # reload-into-ims changes clientno-cache or ``reload'' # to If-Modified-Since requests.Doing this VIOLATES the # HTTP standard. Enabling thisfeature could make you # liable for problems which itcauses. # # ignore-reload ignores a clientno-cache or ``reload'' # header. Doing this VIOLATES theHTTP standard. Enabling # this feature could make youliable for problems which # it causes. # # Please see the file doc/Release-Notes-1.1.txt for afull # description of Squid's refresh algorithm. Basically a # cached object is: (the order is changed from 1.1.X) # # FRESH if expires < now, elseSTALE # STALE if age > max # FRESH if lm-factor < percent,else STALE # FRESH if age < min # else STALE # # The refresh_pattern lines are checked in the orderlisted here. # The first entry which matches is used. Ifnone of the entries # match, then the default will be used. # # Note, you must uncomment all the default lines ifyou want # to change one. The default setting is only activeif none is # used. # #Default: # refresh_pattern ^ftp: 1440 20% 10080 # refresh_pattern ^gopher: 1440 0% 1440 # refresh_pattern . 0 20% 4320
# TAG: reference_age # As a part of normal operation, Squid performs LeastRecently # Used removal of cached objects. The LRU agefor removal is # computed dynamically, based on the amount of diskspace in # use. The dynamic value can be seen in theCache Manager 'info' # output. # # The 'reference_age' parameter defines the maximumLRU age. For # example, setting reference_age to '1 week' willcause objects # to be removed if they have not been accessed for aweek or # more. The default value is one year. # # Specify a number here, followed by units oftime. For example: # 1 week # 3.5 days # 4 months # 2.2 hours # # NOTE: this parameter is not used when using theenhanced # replacement policies, GDSH or LFUDA. # #Default: # reference_age 1 year
# TAG: quick_abort_min (KB) # TAG: quick_abort_max (KB) # TAG: quick_abort_pct (percent) # The cache can be configured to continue downloadingaborted # requests. This may be undesirable on slow(e.g. SLIP) links # and/or very busy caches. Impatient users maytie up file # descriptors and bandwidth by repeatedly requestingand # immediately aborting downloads. # # When the user aborts a request, Squid will check the # quick_abort values to the amount of data transfereduntil # then. # # If the transfer has less than 'quick_abort_min' KBremaining, # it will finish the retrieval. Setting'quick_abort_min' to -1 # will disable the quick_abort feature. # # If the transfer has more than 'quick_abort_max' KBremaining, # it will abort the retrieval. # # If more than 'quick_abort_pct' of the transfer hascompleted, # it will finish the retrieval. # #Default: # quick_abort_min 16 KB # quick_abort_max 16 KB # quick_abort_pct 95
# TAG: negative_ttl time-units # Time-to-Live (TTL) for failed requests. Certain types of # failures (such as "connection refused" and "404 NotFound") are # negatively-cached for a configurable amount oftime. The # default is 5 minutes. Note that this isdifferent from # negative caching of DNS lookups. # #Default: # negative_ttl 5 minutes
# TAG: positive_dns_ttl time-units # Time-to-Live (TTL) for positive caching ofsuccessful DNS lookups. # Default is 6 hours (360 minutes). If you wantto minimize the # use of Squid's ipcache, set this to 1, not 0. # #Default: # positive_dns_ttl 6 hours
# TAG: negative_dns_ttl time-units # Time-to-Live (TTL) for negative caching of failedDNS lookups. # #Default: # negative_dns_ttl 5 minutes
# TAG: range_offset_limit (bytes) # Sets a upper limit on how far into the the file aRange request # may be to cause Squid to prefetch the whole file.If beyond this # limit then Squid forwards the Range request as itis and the result # is NOT cached. # # This is to stop a far ahead range request (lets saystart at 17MB) # from making Squid fetch the whole object up to thatpoint before # sending anything to the client. # # A value of -1 causes Squid to always fetch theobject from the # beginning so that it may cache the result. (2.0style) # # A value of 0 causes Squid to never fetch more thanthe # client requested. (default) # #Default: # range_offset_limit 0 KB
# TIMEOUTS #-----------------------------------------------------------------------------
# TAG: connect_timeout time-units # Some systems (notably Linux) can not be relied uponto properly # time out connect(2) requests. Therefore theSquid process # enforces its own timeout on serverconnections. This parameter # specifies how long to wait for the connect tocomplete. The # default is two minutes (120 seconds). # #Default: # connect_timeout 2 minutes
# TAG: peer_connect_timeout time-units # This parameter specifies how long to wait for apending TCP # connection to a peer cache. The default is 30seconds. You # may also set different timeout values forindividual neighbors # with the 'connect-timeout' option on a 'cache_peer'line. # #Default: # peer_connect_timeout 30 seconds
# TAG: siteselect_timeout time-units # For URN to multiple URL's URL selection # #Default: # siteselect_timeout 4 seconds
# TAG: read_timeout time-units # The read_timeout is applied on server-sideconnections. After # each successful read(), the timeout will beextended by this # amount. If no data is read again after thisamount of time, # the request is aborted and logged withERR_READ_TIMEOUT. The # default is 15 minutes. # #Default: # read_timeout 15 minutes
# TAG: request_timeout # How long to wait for an HTTP request afterconnection # establishment. For persistent connections,wait this long # after the previous request completes. # #Default: # request_timeout 30 seconds
# TAG: client_lifetime time-units # The maximum amount of time that a client (browser)is allowed to # remain connected to the cache process. Thisprotects the Cache # from having a lot of sockets (and hence filedescriptors) tied up # in a CLOSE_WAIT state from remote clients that goaway without # properly shutting down (either because of a networkfailure or # because of a poor client implementation). Thedefault is one # day, 1440 minutes. # # NOTE: The default value is intended to bemuch larger than any # client would ever need to be connected to yourcache. You # should probably change client_lifetime only as alast resort. # If you seem to have many client connections tying up # filedescriptors, we recommend first tuning theread_timeout, # request_timeout, pconn_timeout and quick_abortvalues. # #Default: # client_lifetime 1 day
# TAG: half_closed_clients # Some clients may shutdown the sending side of theirTCP # connections, while leaving their receiving sidesopen. Sometimes, # Squid can not tell the difference between ahalf-closed and a # fully-closed TCP connection. By default,half-closed client # connections are kept open until a read(2) orwrite(2) on the # socket returns an error. Change this optionto 'off' and Squid # will immediately close client connections whenread(2) returns # "no more data to read." # #Default: # half_closed_clients on
# TAG: pconn_timeout # Timeout for idle persistent connections to serversand other # proxies. # #Default: # pconn_timeout 120 seconds
# TAG: ident_timeout # Maximum time to wait for IDENT requests. Ifthis is too high, # and you enabled 'ident_lookup', then you might besusceptible # to denial-of-service by having many ident requestsgoing at # once. # # Only src type ACL checks are fully supported. A src_domain # ACL might work at times, but it will not alwaysprovide # the correct result. # # This option may be disabled by using--disable-ident with # the configure script. # #Default: # ident_timeout 10 seconds
# TAG: shutdown_lifetime time-units # When SIGTERM or SIGHUP is received, the cache isput into # "shutdown pending" mode until all active socketsare closed. # This value is the lifetime to set for all opendescriptors # during shutdown mode. Any active clientsafter this many # seconds will receive a 'timeout' message. # #Default: # shutdown_lifetime 30 seconds
# ACCESS CONTROLS #-----------------------------------------------------------------------------
# TAG: acl # Defining an Access List # # acl aclname acltype string1 ... # acl aclname acltype "file" ... # # when using "file", the file should contain one itemper line # # acltype is one of src dst srcdomain dstdomainurl_pattern # urlpath_pattern time port protomethod browser user # # By default, regular expressions areCASE-SENSITIVE. To make # them case-insensitive, use the -i option. # # acl aclname src ip-address/netmask ... (clients IP address) # acl aclname src addr1-addr2/netmask ... (range of addresses) # acl aclname dst ip-address/netmask ... (URL host's IP address) # acl aclname myip ip-address/netmask ... (local socket IP address) # # acl aclname srcdomain .foo.com... # reverse lookup, client IP # acl aclname dstdomain .foo.com... # Destination server from URL # acl aclname srcdom_regex [-i] xxx ... #regex matching client name # acl aclname dstdom_regex [-i] xxx ... #regex matching server # # For dstdomain and dstdom_regex areverse lookup is tried if a IP # # based URL is used. The name "none" is usedif the reverse lookup # # fails. # # acl aclname time [day-abbrevs] [h1:m1-h2:m2] # day-abbrevs: # S - Sunday # M - Monday # T - Tuesday # W - Wednesday # H - Thursday # F - Friday # A - Saturday # h1:m1 must be less than h2:m2 # acl aclname url_regex [-i] ^http:// ... # regex matching on whole URL # acl aclname urlpath_regex [-i] \.gif$... # regex matching on URL path # acl aclname port 80 70 21... # acl aclname port 0-1024... # ranges allowed # acl aclname myport 3128 ... # (local socket TCP port) # acl aclname proto HTTP FTP ... # acl aclname method GET POST ... # acl aclname browser [-i] regexp # # pattern match on User-Agent header # acl aclname ident username ... # acl aclname ident_regex [-i] pattern ... # # string match on ident output. # # use REQUIRED to accept any non-null ident. # acl aclname src_as number ... # acl aclname dst_as number ... # # Except for access control, AS numbers canbe used for # # routing of requests to specific caches.Here's an # # example for routing all requests forAS#1241 and only # # those to mycache.mydomain.net: # # acl asexample dst_as 1241 # # cache_peer_access mycache.mydomain.netallow asexample # # cache_peer_access mycache_mydomain.netdeny all # # acl aclname proxy_auth username ... # acl aclname proxy_auth_regex [-i] pattern ... # # list of valid usernames # # use REQUIRED to accept any valid username. # # # # NOTE: when a Proxy-Authentication headeris sent but it is not # # needed during ACL checking the username isNOT logged # # in access.log. # # # # NOTE: proxy_auth requires a EXTERNALauthentication program # # to check username/password combinations(see # # authenticate_program). # # # # WARNING: proxy_auth can't be used in atransparent proxy. It # # collides with any authentication done byorigin servers. It may # # seem like it works at first, but itdoesn't. # # acl aclname snmp_community string ... # # A community string to limit access to yourSNMP Agent # # Example: # # # # acl snmppublicsnmp_community public # # acl aclname maxconn number # # This will be matched when the client's IPaddress has # # more than <number> HTTP connectionsestablished. # # acl req_mime_type mime-type1 ... # # regex match agains the mime type of therequest generated # # by the client. Can be used to detect fileupload or some # # types HTTP tunelling requests. # # NOTE: This does NOT match the reply. Youcannot use this # # to match the returned file type. # #Examples: #acl myexample dst_as 1241 #acl mynetwork src #acl password proxy_auth REQUIRED #acl fileupload req_mime_type -i ^multipart/form-data$ # #Recommended minimum configuration: acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl SSL_ports port 443 563 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 563 # https, snews acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 #multiling http acl CONNECT method CONNECT
# TAG: http_access # Allowing or Denying access based on defined accesslists # # Access to the HTTP port: # http_access allow|deny [!]aclname ... # # NOTE on default values: # # If there are no "access" lines present, the defaultis to deny # the request. # # If none of the "access" lines cause a match, thedefault is the # opposite of the last line in the list. If thelast line was # deny, then the default is allow. Conversely,if the last line # is allow, the default will be deny. For thesereasons, it is a # good idea to have an "deny all" or "allow all"entry at the end # of your access lists to avoid potential confusion. # #Default: ## http_access deny all http_access allow all # #Recommended minimum configuration: # # Only allow cachemgr access from localhost http_access allow manager localhost http_access deny manager # Deny requests to unknown ports http_access deny !Safe_ports # Deny CONNECT to other than SSL ports http_access deny CONNECT !SSL_ports # # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS # # And finally deny all other access to this proxy http_access allow localhost #http_access deny all http_access allow all
# TAG: icp_access # Allowing or Denying access to the ICP port based ondefined # access lists # # icp_access allow|deny [!]aclname ... # # See http_access for details # #Default: # icp_access deny all # #Allow ICP queries from eveyone icp_access allow all
# TAG: miss_access # Use to force your neighbors to use you as a siblinginstead of # a parent. For example: # # acl localclients src172.16.0.0/16 # miss_access allow localclients # miss_access deny !localclients # # This means that only your local clients are allowedto fetch # MISSES and all other clients can only fetch HITS. # # By default, allow all clients who passed thehttp_access rules # to fetch MISSES from us. # #Default setting: # miss_access allow all
# TAG: cache_peer_access # Similar to 'cache_peer_domain' but provides moreflexibility by # using ACL elements. # # cache_peer_access cache-host allow|deny [!]aclname... # # The syntax is identical to 'http_access' and theother lists of # ACL elements. See the comments for'http_access' below, or # the Squid FAQ(http://www.squid-cache.org/FAQ/FAQ-10.html). # #Default: # none
# TAG: proxy_auth_realm # Specifies the realm name which is to be reported tothe client for # proxy authentication (part of the text the userwill see when # prompted their username and password). # #Default: # proxy_auth_realm Squid proxy-caching web server
# TAG: ident_lookup_access # A list of ACL elements which, if matched, cause anident # (RFC 931) lookup to be performed for thisrequest. For # example, you might choose to always perform identlookups # for your main multi-user Unix boxes, but not foryour Macs # and PCs. By default, ident lookups are notperformed for # any requests. # # To enable ident lookups for specific clientaddresses, you # can follow this example: # # acl ident_aware_hosts src 198.168.1.0/255.255.255.0 # ident_lookup_access allow ident_aware_hosts # ident_lookup_access deny all # # This option may be disabled by using--disable-ident with # the configure script. # #Default: # ident_lookup_access deny all
# ADMINISTRATIVE PARAMETERS #-----------------------------------------------------------------------------
# TAG: cache_mgr # Email-address of local cache manager who willreceive # mail if the cache dies. The default is"webmaster." # #Default: # cache_mgr root
# TAG: cache_effective_user # TAG: cache_effective_group # # If the cache is run as root, it will change itseffective/real # UID/GID to the UID/GID specified below. Thedefault is to # change to UID to nobody and GID to nobody. # # If Squid is not started as root, the default is tokeep the # current UID/GID. Note that if Squid is notstarted as root then # you cannot set http_port to a value lower than 1024. # #Default: # cache_effective_user nobody # cache_effective_group nobody visible_hostname localhost # TAG: visible_hostname # If you want to present a special hostname in errormessages, etc, # then define this. Otherwise, the return valueof gethostname() # will be used. If you have multiple caches in acluster and # get errors about IP-forwarding you must set them tohave individual # names with this setting. # #Default: # none
# TAG: unique_hostname # If you want to have multiple machines with the same # 'visible_hostname' then you must give each machinea different # 'unique_hostname' so that forwarding loops can bedetected. # #Default: # none
# TAG: hostname_aliases # A list of other DNS names that your cache has. # #Default: # none
# OPTIONS FOR THE CACHE REGISTRATION SERVICE #----------------------------------------------------------------------------- # # This section contains parameters for the (optional)cache # announcement service. This service isprovided to help # cache administrators locate one another in order tojoin or # create cache hierarchies. # # An 'announcement' message is sent (via UDP) to theregistration # service by Squid. By default, theannouncement message is NOT # SENT unless you enable it with 'announce_period'below. # # The announcement message includes your hostname,plus the # following information from this configuration file: # # http_port # icp_port # cache_mgr # # All current information is processed regularly andmade # available on the Web athttp://www.ircache.net/Cache/Tracker/.
# TAG: announce_period # This is how frequently to send cacheannouncements. The # default is `0' which disables sending theannouncement # messages. # # To enable announcing your cache, just uncomment theline # below. # #Default: # announce_period 0 # #To enable announcing your cache, just uncomment the line below. #announce_period 1 day
# TAG: announce_host # TAG: announce_file # TAG: announce_port # announce_host and announce_port set the hostnameand port # number where the registration message will be sent. # # Hostname will default to 'tracker.ircache.net' andport will # default default to 3131. If the 'filename'argument is given, # the contents of that file will be included in theannounce # message. # #Default: # announce_host tracker.ircache.net # announce_port 3131
# HTTPD-ACCELERATOR OPTIONS #-----------------------------------------------------------------------------
# TAG: httpd_accel_host # TAG: httpd_accel_port # If you want to run Squid as an httpd accelerator,define the # host name and port number where the real HTTPserver is. # # If you want virtual host support then specify thehostname # as "virtual". # # If you want virtual port support then specify theport as "0". # # NOTE: enabling httpd_accel_host disablesproxy-caching and # ICP. If you want these features enabled also,then set # the 'httpd_accel_with_proxy' option. # #Default: # httpd_accel_port 80
# TAG: httpd_accel_single_host on|off # If you are running Squid as a accelerator and havea single backend # server then set this to on. This causes Squid toforward the request # to this server irregardles of what any redirectorsor Host headers # says. # # Leave this at off if you have multiple backendservers, and use a # redirector (or host table or private DNS) to mapthe requests to the # appropriate backend servers. Note that the mappingneeds to be a # 1-1 mapping between requested and backend (fromredirector) domain # names or caching will fail, as cacing is performedusing the # URL returned from the redirector. # # See also redirect_rewrites_host_header. # #Default: # httpd_accel_single_host off
# TAG: httpd_accel_with_proxy on|off # If you want to use Squid as both a local httpdaccelerator # and as a proxy, change this to 'on'. Note howeverthat your # proxy users may have trouble to reach theaccelerated domains # unless their browsers are configured not to usethis proxy for # those domains (for example via the no_proxy browserconfiguration # setting) # #Default: # httpd_accel_with_proxy off
# TAG: httpd_accel_uses_host_header on|off # HTTP/1.1 requests include a Host: header which isbasically the # hostname from the URL. Squid can be anaccelerator for # different HTTP servers by looking at thisheader. However, # Squid does NOT check the value of the Host header,so it opens # a big security hole. We recommend that thisoption remain # disabled unless you are sure of what you are doing. # # However, you will need to enable this option if yourun Squid # as a transparent proxy. Otherwise, virtualservers which # require the Host: header will not be properlycached. # #Default: # httpd_accel_uses_host_header off
# MISCELLANEOUS #-----------------------------------------------------------------------------
# TAG: dns_testnames # The DNS tests exit as soon as the first site issuccessfully looked up # # This test can be disabled with the -D command lineoption. # #Default: # dns_testnames netscape.com internic.net nlanr.net microsoft.com
# TAG: logfile_rotate # Specifies the number of logfile rotations to makewhen you # type 'squid -k rotate'. The default is 10,which will rotate # with extensions 0 through 9. Settinglogfile_rotate to 0 will # disable the rotation, but the logfiles are stillclosed and # re-opened. This will enable you to rename thelogfiles # yourself just before sending the rotate signal. # # Note, the 'squid -k rotate' command normally sendsa USR1 # signal to the running squid process. Incertain situations # (e.g. on Linux with Async I/O), USR1 is used forother # purposes, so -k rotate uses another signal. It is best to get # in the habit of using 'squid -k rotate' instead of'kill -USR1 # <pid>'. # #Default: # logfile_rotate 0
# TAG: append_domain # Appends local domain name to hostnames without anydots in # them. append_domain must begin with a period. # #Example: # append_domain .yourdomain.com # #Default: # none
# TAG: tcp_recv_bufsize (bytes) # Size of receive buffer to set for TCPsockets. Probably just # as easy to change your kernel's default. Setto zero to use # the default buffer size. # #Default: # tcp_recv_bufsize 0 bytes
# TAG: err_html_text # HTML text to include in error messages. Makethis a "mailto" # URL to your admin address, or maybe just a link toyour # organizations Web page. # # To include this in your error messages, you mustrewrite # the error template files (found in the "errors"directory). # Wherever you want the 'err_html_text' line toappear, # insert a %L tag in the error template file. # #Default: # none
# TAG: deny_info # Usage: deny_info err_page_name acl # Example: deny_info ERR_CUSTOM_ACCESS_DENIED bad_guys # # This can be used to return a ERR_ page for requestswhich # do not pass the 'http_access' rules. A singleACL will cause # the http_access check to fail. If a'deny_info' line exists # for that ACL then Squid returns a correspondingerror page. # # You may use ERR_ pages that come with Squid orcreate your own pages # and put them into the configured errors/ directory. # #Default: # none
# TAG: memory_pools on|off # If set, Squid will keep pools of allocated (butunused) memory # available for future use. If memory is apremium on your # system and you believe your malloc libraryoutperforms Squid # routines, disable this. # #Default: # memory_pools on
# TAG: memory_pools_limit (bytes) # Used only with memory_pools on: # memory_pools_limit 50 MB # # If set to a non-zero value, Squid will keep at mostthe specified # limit of allocated (but unused) memory in memorypools. All free() # requests that exceed this limit will be handled byyour malloc # library. Squid does not pre-allocate any memory,just safe-keeps # objects that otherwise would be free()d. Thus, itis safe to set # memory_pools_limit to a reasonably high value evenif your # configuration will use less memory. # # If not set (default) or set to zero, Squid willkeep all memory it # can. That is, there will be no limit on the totalamount of memory # used for safe-keeping. # # To disable memory allocation optimization, do notset # memory_pools_limit to 0. Set memory_pools to "off"instead. # # An overhead for maintaining memory pools is nottaken into account # when the limit is checked. This overhead is closeto four bytes per # object kept. However, pools may actually _save_memory because of # reduced memory thrashing in your malloc library. # #Default: # none
# TAG: forwarded_for on|off # If set, Squid will include your system's IP addressor name # in the HTTP requests it forwards. By defaultit looks like # this: # # X-Forwarded-For: 192.1.2.3 # # If you disable this, it will appear as # # X-Forwarded-For: unknown # #Default: # forwarded_for on
# TAG: log_icp_queries on|off # If set, ICP queries are logged to access.log. Youmay wish # do disable this if your ICP load is VERY high tospeed things # up or to simplify log analysis. # #Default: # log_icp_queries on
# TAG: icp_hit_stale on|off # If you want to return ICP_HIT for stale cacheobjects, set this # option to 'on'. If you have siblingrelationships with caches # in other administrative domains, this should be'off'. If you only # have sibling relationships with caches under yourcontrol, then # it is probably okay to set this to 'on'. # #Default: # icp_hit_stale off
# TAG: minimum_direct_hops # If using the ICMP pinging stuff, do direct fetchesfor sites # which are no more than this many hops away. # #Default: # minimum_direct_hops 4
# TAG: minimum_direct_rtt # If using the ICMP pinging stuff, do direct fetchesfor sites # which are no more than this many rtt millisecondsaway. # #Default: # minimum_direct_rtt 400
# TAG: cachemgr_passwd # Specify passwords for cachemgr operations. # # Usage: cachemgr_passwd password action action ... # # Some valid actions are (see cache manager menu fora full list): # 5min # 60min # asndb # authenticator # cbdata # client_list # comm_incoming # config * # counters # delay # digest_stats # dns # events # filedescriptors # fqdncache # histograms # http_headers # info # io # ipcache # mem # menu # netdb # non_peers # objects # pconn # peer_select # redirector # refresh # server_list # shutdown * # store_digest # storedir # utilization # via_headers # vm_objects # # * Indicates actions which will not be performedwithout a # valid password, others can be performed ifnot listed here. # # To disable an action, set the password to "disable". # To allow performing an action without a password,set the # password to "none". # # Use the keyword "all" to set the same password forall actions. # #Example: # cachemgr_passwd secret shutdown # cachemgr_passwd lesssssssecret info stats/objects # cachemgr_passwd disable all # #Default: # none
# TAG: store_avg_object_size (kbytes) # Average object size, used to estimate number ofobjects your # cache can hold. Seedoc/Release-Notes-1.1.txt. The default is # 13 KB. # #Default: # store_avg_object_size 13 KB
# TAG: store_objects_per_bucket # Target number of objects per bucket in the storehash table. # Lowering this value increases the total number ofbuckets and # also the storage maintenance rate. Thedefault is 50. # #Default: # store_objects_per_bucket 20
# TAG: client_db on|off # If you want to disable collecting per-clientstatistics, then # turn off client_db here. # #Default: # client_db on
# TAG: netdb_low # TAG: netdb_high # The low and high water marks for the ICMPmeasurement # database. These are counts, notpercents. The defaults are # 900 and 1000. When the high water mark isreached, database # entries will be deleted until the low mark isreached. # #Default: # netdb_low 900 # netdb_high 1000
# TAG: netdb_ping_period # The minimum period for measuring a site. There will be at # least this much delay between successive pings tothe same # network. The default is five minutes. # #Default: # netdb_ping_period 5 minutes
# TAG: query_icmp on|off # If you want to ask your peers to include ICMP datain their ICP # replies, enable this option. # # If your peer has configured Squid (duringcompilation) with # '--enable-icmp' then that peer will send ICMP pingsto origin server # sites of the URLs it receives. If you enablethis option then the # ICP replies from that peer will include the ICMPdata (if available). # Then, when choosing a parent cache, Squid willchoose the parent with # the minimal RTT to the origin server. Whenthis happens, the # hierarchy field of the access.log will be # "CLOSEST_PARENT_MISS". This option is off bydefault. # #Default: # query_icmp off
# TAG: test_reachability on|off # When this is 'on', ICP MISS replies will beICP_MISS_NOFETCH # instead of ICP_MISS if the target host is NOT inthe ICMP # database, or has a zero RTT. # #Default: # test_reachability off
# TAG: buffered_logs on|off # Some log files (cache.log, useragent.log) arewritten with # stdio functions, and as such they can be buffered or # unbuffered. By default they will beunbuffered. Buffering them # can speed up the writing slightly (though you areunlikely to # need to worry). # #Default: # buffered_logs off
# TAG: reload_into_ims on|off # When you enable this option, client no-cache or``reload'' # requests will be changed to If-Modified-Sincerequests. # Doing this VIOLATES the HTTP standard. Enabling this # feature could make you liable for problems which it # causes. # # see also refresh_pattern for a more selectiveapproach. # # This option may be disabled by using--disable-http-violations # with the configure script. # #Default: # reload_into_ims off
# TAG: always_direct # Usage: always_direct allow|deny [!]aclname ... # # Here you can use ACL elements to specify requestswhich should # ALWAYS be forwarded directly to originservers. For example, # to always directly forward requests for localservers use # something like: # # acl local-servers dstdomainmy.domain.net # always_direct allow local-servers # # To always forward FTP requests directly, use # # acl FTP proto FTP # always_direct allow FTP # # NOTE: There is a similar, but opposite option named # 'never_direct'. You need to be aware that"always_direct deny # foo" is NOT the same thing as "never_direct allowfoo". You # may need to use a deny rule to exclude amore-specific case of # some other rule. Example: # # acl local-external dstdomainexternal.foo.net # acl local-serversdstdomain foo.net # always_direct deny local-external # always_direct allow local-servers # # This option replaces some v1.1 options such aslocal_domain # and local_ip. # #Default: # none
# TAG: never_direct # Usage: never_direct allow|deny [!]aclname ... # # never_direct is the opposite ofalways_direct. Please read # the description for always_direct if you have notalready. # # With 'never_direct' you can use ACL elements tospecify # requests which should NEVER be forwarded directlyto origin # servers. For example, to force the use of aproxy for all # requests, except those in your local domain usesomething like: # # acl local-servers dstdomainfoo.net # acl all src 0.0.0.0/0.0.0.0 # never_direct deny local-servers # never_direct allow all # # or if squid is inside a firewall and there is localintranet # servers inside the firewall then use something like: # # acl local-intranet dstdomainfoo.net # acl local-external dstdomainexternal.foo.net # always_direct deny local-external # always_direct allowlocal-intranet # never_direct allow all # # This option replaces some v1.1 options such asinside_firewall # and firewall_ip. # #Default: # none
# TAG: anonymize_headers # Usage: anonymize_headers allow|deny header_name ... # # This option replaces the old 'http_anonymizer'option with # something that is much more configurable. Youmay now # specify exactly which headers are to be allowed, orwhich # are to be removed from outgoing requests. # # There are two methods of using this option. You may either # allow specific headers (thus denying all others),or you # may deny specific headers (thus allowing allothers). # # For example, to achieve the same behavior as the old # 'http_anonymizer standard' option, you should use: # # anonymize_headers deny FromReferer Server # anonymize_headers denyUser-Agent WWW-Authenticate Link # # Or, to reproduce the old 'http_anonymizer paranoid'feature # you should use: # # anonymize_headers allow AllowAuthorization Cache-Control # anonymize_headers allowContent-Encoding Content-Length # anonymize_headers allowContent-Type Date Expires Host # anonymize_headers allowIf-Modified-Since Last-Modified # anonymize_headers allow LocationPragma Accept # anonymize_headers allowAccept-Encoding Accept-Language # anonymize_headers allowContent-Language Mime-Version # anonymize_headers allowRetry-After Title Connection # anonymize_headers allowProxy-Connection # # NOTE: You can not mix "allow" and "deny". All'anonymize_headers' # lines must have the same second argument. # # By default, all headers are allowed (no anonymizingis # performed). # #Default: # none
# TAG: fake_user_agent # If you filter the User-Agent header with'anonymize_headers' it # may cause some Web servers to refuse yourrequest. Use this to # fake one up. For example: # # fake_user_agent Nutscrape/1.0 (CP/M; 8-bit) # (credit to Paul Southworth pauls@etext.org for thisone!) # #Default: # none
# TAG: icon_directory # Where the icons are stored. These are normally keptin # /usr/lib/squid/icons # #Default: # icon_directory /usr/lib/squid/icons
# TAG: error_directory # Directory where the error files are read from. # /usr/lib/squid/errors contains sets of error files # in different languages. The default error directory # is /etc/squid/errors, which is a link to one ofthese # error sets. # # If you wish to create your own versions of theerror files, # either to customize them to suit your language orcompany, # copy the template English files to another # directory and point this tag at them. # #error_directory /etc/squid/errors # #Default: # error_directory /etc/squid/errors
# TAG: minimum_retry_timeout (seconds) # This specifies the minimum connect timeout, forwhen the # connect timeout is reduced to compensate for theavailability # of multiple IP addresses. # # When a connection to a host is initiated, and thathost has # several IP addresses, the default connectiontimeout is reduced # by dividing it by the number of addresses. So, a site with 15 # addresses would then have a timeout of 8 secondsfor each # address attempted. To avoid having thetimeout reduced to the # point where even a working host would not have achance to # respond, this setting is provided. Thedefault, and the # minimum value, is five seconds, and the maximumvalue is sixty # seconds, or half of connect_timeout, whichever isgreater and # less than connect_timeout. # #Default: # minimum_retry_timeout 5 seconds
# TAG: maximum_single_addr_tries # This sets the maximum number of connection attemptsfor a # host that only has one address (formultiple-address hosts, # each address is tried once). # # The default value is three tries, the (notrecommended) # maximum is 255 tries. A warning message willbe generated # if it is set to a value greater | |