Your Ad Here
Ê×Ò³ | ±à³ÌÓïÑÔ | ÍøÕ¾½¨Éè | ÓÎÏ·ÌìÌà | ³åÀ˱¦µä | ÍøÂ簲ȫ | ²Ù×÷ϵͳ | Èí¼þʱ¿Õ | Ó²¼þÖ¸ÄÏ | ²¡¶¾Ïà¹Ø | IT ÈÏÖ¤
ÈíÑ¶ÍøÂç > ²Ù×÷ϵͳ > Linux > squid·þÎñµÄÓ¦ÓÃ[ת]
¡¾±ê  Ìâ¡¿£ºsquid·þÎñµÄÓ¦ÓÃ[ת]
¡¾¹Ø¼ü×Ö¡¿£ºsquid
¡¾À´  Ô´¡¿£ºhttp://www.cublog.cn/u/23204/showart.php?id=159969

squid·þÎñµÄÓ¦ÓÃ[ת]

Your Ad Here
squid·þÎñµÄÓ¦ÓÃ
³õʼ»¯cache
# /s/squid/sbin/squid -z
Æô¶¯squid
# /s/squid/etc/rc.d/squid.sh start
@ ÉèÖÃipfilter
ΪÁËʵÏÖ͸Ã÷µÄ¹¦ÄÜ£¬ÐèÒª½«ËùÓжÔ80¶Ë¿ÚµÄÇëÇóתµ½squidµÄ3128¶Ë¿ÚÉÏ£¬ÒÔʵÏÖ¶Ô¿Í»§¶Ë͸Ã÷µÄ¹¦ÄÜ¡£ÔÚ/etc/ipnat.rulesÖмÓÈë:
rdr fxp1 0.0.0.0/0 port 80 -> 127.0.0.1 3128
Ë¢ÐÂipnatÅäÖãº
# ipnat -Cf /etc/ipnat.rules
Ò»ÇÐÍê³É£¬¿Í»§¶ËÎÞÐèÈκÎÉèÖ㬸ù±¾¸Ð¾õ²»µ½´úÀíµÄ´æÔÚ£¬¶øÇÒ·ÃÎÊËÙ¶ÈÃ÷ÏÔ±ä¿ì
 
͸Ã÷´úÀí
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_user_host_header on
ÔÚLinuxÉÏ£¬¿ÉÒÔÓÃiptables/ipchainsÖ±½Ó½«¶ÔWeb¶Ë¿Ú80µÄÇëÇóÖ±½Óת·¢µ½Squid¶Ë¿Ú3128£¬ÓÉSquid½ÓÊÖ£¬¶øÓû§ä¯ÀÀÆ÷ÈÔÈ»ÈÏΪËü·ÃÎʵÄÊǶԷ½µÄ80¶Ë¿Ú¡£ÀýÈçÒÔÏÂÕâÌõÃüÁ
iptables -t nat -A PREROUTING -s 192.168.0.200/32 -p tcp --dport 80 -j REDIRECT 3128
¾ÍÊǽ«192.168.0.200µÄËùÓÐÕë¶Ô80¶Ë¿ÚµÄ·ÃÎÊÖØ¶¨Ïòµ½3128¶Ë¿Ú¡£

ÆÕͨ´úÀí·þÎñÆ÷
ÔÚÕâ¸öÀý×ÓÖУ¬´úÀí·þÎñÆ÷ͬʱҲÊÇÍø¹Ø£¬ÄÚ²¿ÍøÂç½Ó¿Úeth0µÄIPµØÖ·Îª192.168.0.1£¬Íâ²¿ÍøÂç½Ó¿Úeth1µÄIPµØÖ·Îª202.103.x.x¡£ÏÂÃæÊÇÒ»¸ö»ù±¾µÄ´úÀíËùÐèÒªÅäÖÃÑ¡Ï
http_port 192.168.0.1:3128
  ĬÈ϶˿ÚÊÇ3128£¬µ±È»Ò²¿ÉÒÔÊÇÈÎºÎÆäËü¶Ë¿Ú£¬Ö»Òª²»ÓëÆäËü·þÎñ·¢Éú³åÍ»¼´¿É¡£ÎªÁ˰²È«Æð¼û£¬ÔÚÇ°Ãæ¼ÓÉÏIPµØÖ·£¬Squid¾Í²»»á¼àÌýÍⲿµÄÍøÂç½Ó¿Ú¡£
  ÏÂÃæµÄÅäÖÃÑ¡ÏîÊÇ·þÎñÆ÷¹ÜÀíÕߵĵç×ÓÓʼþ£¬µ±´íÎó·¢Éúʱ£¬¸ÃµØÖ·»áÏÔʾÔÚ´íÎóÒ³ÃæÉÏ£¬±ãÓÚÓû§ÁªÏµ£º
cache_mgr start@soocol.com
  ÒÔÏÂÕâЩ²ÎÊý¸æËßSquid»º´æµÄÎļþϵͳ¡¢Î»Öúͻº´æ²ßÂÔ£º
cache_dir ufs /var/squid
cache_mem 32MB
cache_swap_low 90
cache_swap_high 95
¡¡¡¡ÔÚÕâÀSquid»á½«/var/squidĿ¼×÷Ϊ±£´æ»º´æÊý¾ÝµÄĿ¼£¬Ã¿´Î´¦ÀíµÄ»º´æ´óСÊÇ32Õ××Ö½Ú£¬µ±»º´æ¿Õ¼äʹÓôﵽ95%ʱ£¬ÐµÄÄÚÈݽ«È¡´ú¾ÉµÄ¶ø²»Ö±½ÓÌí¼Óµ½Ä¿Â¼ÖУ¬Ö±µ½¿Õ¼äÓÖϽµµ½90%²ÅÍ£Ö¹ÕâÒ»»î¶¯¡£Èç¹û²»ÏëSquid»º´æÈκÎÎļþ£¬ÈçijЩ´æ´¢¿Õ¼äÓÐÏÞµÄרÓÐϵͳ£¬¿ÉÒÔʹÓÃnullÎļþϵͳ£¨ÕâÑù²»ÐèÒªÄÇЩ»º´æ²ßÂÔ£©£º
cache_dir null /tmp
¡¡¡¡ÏÂÃæµÄ¼¸¸ö¹ØÓÚ»º´æµÄ²ßÂÔÅäÖÃÖУ¬½ÏÖ÷ÒªµÄÊǵÚÒ»ÐУ¬¼´Óû§µÄ·ÃÎʼǼ£¬Í¨¹ý·ÖÎöËüÀ´Á˽âËùÓÐÓû§·ÃÎʵÄÏ꾡µØÖ·
cache_access_log /var/squid/access.log
cache_log /var/squid/cache.log
cache_store_log /var/squid/store.log
¡¡¡¡ÏÂÃæÕâÐÐÅäÖÃÊÇÔÚ½Ïа汾ÖгöÏֵIJÎÊý£¬¸æËßSquidÔÚ´íÎóÒ³ÃæÖÐÏÔʾµÄ·þÎñÆ÷Ãû³Æ£º
visible_hostname No1.proxy
¡¡¡¡ÒÔÏÂÅäÖøæËßSquidÈçºÎ´¦ÀíÓû§£¬¶Ôÿ¸öÇëÇóµÄIPµØÖ·×÷Ϊµ¥¶ÀµØÖ·´¦Àí£º
client_mask 255.255.255.255
 
 
################################################################################
µÚ4Õ ¿ìËÙÅäÖÃÏòµ¼
4.1 squid.conf Óï·¨
Squid µÄÅäÖÃÎļþÏà¶Ô¹æ·¶¡£ËüÓëÆäËûÐí¶àunix ³ÌÐòÏàËÆ¡£Ã¿ÐÐÒÔÅäÖÃÖ¸Áʼ£¬ºóÃæ¸ú×ÅÊý×ÖÖµ»ò¹Ø¼ü×Ö¡£ÔÚ¶ÁÈ¡ÅäÖÃÎļþʱ£¬squid ºöÂÔ¿ÕÐкÍ×¢Ê͵ôµÄÐУ¨ÒÔ#¿ªÊ¼£©¡£ÈçÏÂÊÇһЩÅäÖÃÐÐʾÀý£º
cache_log /squid/var/cache.log
# define the localhost ACL
acl Localhost src 127.0.0.1/32
connect_timeout 2 minutes
log_fqdn on
ijЩָÁîȡΨһֵ¡£ÔÚÕâЩÇéÐÎÏ£¬Öظ´¸³Óè¸ÃÖ¸ÁͬµÄÖµ£¬½«¸²¸ÇÇ°ÃæµÄÖµ¡£ÀýÈ磬
ÏÂÃæÊÇÒ»¸öÁ¬½Ó³¬Ê±Öµ¡£µÚÒ»ÐÐÎÞЧ£¬ÒòΪµÚ¶þÐи²¸ÇÁËËü£º
connect_timeout 2 minutes
connect_timeout 1 hour
ÁíÍ⣬ijЩָÁîÈ¡ÁбíÖµ¡£ÔÚÕâЩÇéÐÎÏ£¬Ã¿Ò»¸öÐÂÔöµÄÖµ¶¼ÓÐЧ¡£"À©Õ¹·½Ê½"Ö¸ÁîÒÔÕâÖÖ·½·¨¹¤×÷£º
extension_methods UNGET
extension_methods UNPUT
extension_methods UNPOST
¶ÔÕâЩ»ùÓÚÁбíµÄÖ¸ÁÄãͨ³£ÄÜÔÚͬһÐÐÖи³Óè¶à¸öÖµ£º
extension_methods UNGET UNPUT UNPOST
Ðí¶àÖ¸ÁîÓÐͨÓÃÀàÐÍ¡£ÀýÈ磬Á¬½Ó³¬Ê±ÖµÊÇÒ»¸öʱ¼ä¹æ·¶£¬ÔÚÊý×ÖºóÃæ¸ú×Åʱ¼äµ¥Ôª¡£ÀýÈ磺
connect_timeout 3 hours
client_lifetime 4 days
negative_ttl 27 minutes
ÀàËÆµÄ£¬´óÁ¿µÄÖ¸ÁîÖ¸ÏòÎļþ´óС»òÕßÄÚ´æ¶î¶È¡£ÀýÈ磬Äã¿ÉÒÔÕâÑù±àд´óС¹æ·¶£ºÊ®½øÖÆÊý×ÖºóÃæ¸úbytes,KB,MB »òGB.ÀýÈ磺
minimum_object_size 12 bytes
request_header_max_size 10 KB
maximum_object_size 187 MB
ÁíÒ»ÖÖÖµµÃÌáÆðµÄÀàÐÍÊÇ´¥·¢Æ÷£¬ËüµÄÖµÊÇon »òÕßoff¡£Ðí¶àÖ¸ÁîʹÓøÃÀàÐÍ¡£ÀýÈ磺
server_persistent_connections on
strip_query_terms off
prefer_direct on
ͨ³££¬ÅäÖÃÎļþÖ¸ÁîÄÜÒÔÈκÎ˳Ðò³öÏÖ¡£È»¶ø£¬Èç¹ûij¸öÖ¸ÁîÖ¸ÏòµÄÖµ±»ÆäËûÖ¸ÁîËù¶¨Ò壬ÄÇô˳Ðò¾ÍºÜÖØÒª¡£·ÃÎÊ¿ØÖÆÁбíÊǸöºÃµÄÀý×Ó¡£acl ±»ÓÃÔÚhttp_access ¹æÔò֮ǰ±ØÐë±»¶¨Ò壺
acl Foo src 1.2.3.4
http_access deny Foo
squid.conf ÎļþÀïµÄÐí¶à¶«Î÷ÊÇ´óСдÃô¸ÐµÄ£¬ÀýÈçÖ¸ÁîÃû¡£Äã²»Äܽ«http_port д³ÉHTTP_port¡£
ĬÈϵÄsquid.conf Îļþ°üº¬Á˶Ôÿ¸öÖ¸ÁîµÄ´óÁ¿×¢ÊÍ£¬ÒÔ¼°Ö¸ÁîµÄĬÈÏÖµ¡£ÀýÈ磺
# TAG: persistent_request_timeout
# How long to wait for the next HTTP request on a persistent
# connection after the previous request completes.
#
#Default:
# persistent_request_timeout 1 minute
ÿ´Î°²×°squid ºó£¬µ±Ç°Ä¬ÈÏÅäÖÃÎļþ´æ·ÅÔÚ$prefix/etc Ŀ¼ÏµÄsquid.conf.default¡£¼ÈȻָÁîÿ´Î¶¼ÓÐËù¸Ä±ä£¬ÄãÄܲο¼¸ÃÎĵµ£¬ÒÔ»ñÈ¡×î½üµÄ¸üС£
¸ÃÕÂʣϵIJ¿·ÖÊǹØÓÚÔÚ¿ªÊ¼ÔËÐÐsquid ֮ǰ£¬Äã±ØÐëÖªµÀµÄÉÙÊýÖ¸Áî¡£

4.2 User IDs
Äã¿ÉÄÜÖªµÀ£¬unix ½ø³ÌºÍÎļþÓµÓÐÎļþºÍ×éÊôÖ÷µÄÊôÐÔ¡£Äã±ØÐëÑ¡Ôñij¸öÓû§ºÍ×鏸squid¡£¸ÃÓû§ºÍ×éµÄ×éºÏ£¬±ØÐë¶Ô´ó²¿·Ösquid Ïà¹ØµÄÎļþºÍĿ¼ÓжÁºÍдµÄȨÏÞ¡£
ÎҸ߶ÈÍÆ¼ö´´½¨ÃûΪ"squid"µÄÓû§ºÍ×é¡£Õâ±ÜÃâÁËijÈËÀûÓÃsquid À´¶ÁȡϵͳÖÐµÄÆäËûÎļþ¡£¼ÙÈç²»Ö¹Ò»¸öÈËÓµÓжÔsquid µÄ¹ÜÀíȨÏÞ£¬Äã¿ÉÒÔ½«ËûÃǼӵ½squid ×éÀï¡£
unix ½ø³Ì¼Ì³ÐÁËËüÃǸ¸½ø³ÌµÄÊôÖ÷ÊôÐÔ¡£ÄǾÍÊÇ˵£¬¼ÙÈçÄãÒÔjoe Óû§À´Æô¶¯squid£¬squid Ò²ÒÔjoe À´ÔËÐС£¼ÙÈçÄã²»ÏëÒÔjoe À´ÔËÐÐsquid£¬ÄãÐèÒªÔ¤ÏȸıäÄãµÄÓû§ID¡£ÕâÊÇsu ÃüÁîµÄµäÐ͹¦ÄÜ¡£ÀýÈ磺
joe% su - squid
squid% /usr/local/squid/sbin/squid
²»ÐÒµÄÊÇ£¬ÔËÐÐsquid ²¢·Ç×ÜÊÇÈç´Ë¼òµ¥¡£ÔÚijЩÇé¿öÏ£¬Äã±ØÐëÒÔroot À´Æô¶¯squid£¬ÕâÒÀÀµÓÚÄãµÄÅäÖá£ÀýÈ磬½ö½öroot Äܰó¶¨TCP Ì×½Ó×Öµ½ÌØÈ¨¶Ë¿ÚÉÏ£¬Èç80¡£¼ÙÈçÄã±ØÐëÒÔroot À´Æô¶¯squid£¬Äã±ØÐëÉèÖÃcache_effective_user Ö¸Áî¡£Ëü¸æËßsquid£¬ÔÚÖ´ÐÐÍêÐèÒªÌØ±ðȨÏÞµÄÈÎÎñºó£¬±ä³ÉÄĸöÓû§¡£ÀýÈç:
cache_effective_user squid
ÄãÌṩµÄ¸ÃÃû×Ö±ØÐëÊÇÓÐЧÓû§£¨ÔÚ/etc/passwd ÎļþÀ¡£Çë×¢Òâ½ö½öµ±ÄãÒÔroot À´Æô¶¯squid ʱ£¬Äã²ÅÐèÒªÓõ½¸ÃÖ¸Áî¡£½ö½öroot ÓÐÄÜÁ¦À´ËæÒâ¸Ä±äÓû§Éí·Ý¡£¼ÙÈçÄãÒÔjoe À´Æô¶¯squid£¬Ëü²»Äܸı䵽squid Óû§¡£
Äã¿ÉÄܳ¢ÊÔ²»ÉèÖÃcache_effective_user£¬Ö±½ÓÒÔroot À´ÔËÐÐsquid¡£¼ÙÈçÄãÊÔ¹ý£¬Äã»á·¢ÏÖsquid ¾Ü¾øÔËÐС£ÕâÎ¥±³Á˰²È«¹æÔò¡£¼ÙÈçÍⲿ¹¥»÷ÕßÓÐÄÜÁ¦Î£¼°»òÀûÓÃsquid£¬ËûÄÜ»ñÈ¡¶ÔϵͳµÄÈ«²¿·ÃÎÊȨ¡£¾¡¹ÜÎÒÃÇŬÁ¦Ê¹squid °²È«ºÍÉÙbug£¬µ«»¹ÊÇÎÈÖØµãºÃ¡£
¼ÙÈçÄãûÓÐÉèÖÃcache_effective_user,ÒÔroot À´Æô¶¯squid£¬squid ʹÓÃnobody ×÷ΪĬÈÏÖµ¡£²»¹ÜÄãÑ¡ÔñʲôÓû§ID £¬ ÇëÈ·ÈÏËüÓжÔÏÂÃæÄ¿Â¼µÄ¶Á·ÃÎÊȨ£º$prefix/etc,$prefix/libexec,$prefix/share¡£¸ÃÓû§ID Ò²±ØÐëÓжÔÈÕÖ¾ÎļþºÍ»º´æÄ¿Â¼µÄд·ÃÎÊ
Ȩ¡£
squid Ò²ÓÐÒ»¸öcache_effective_group Ö¸Áµ«ÄãÒ²Ðí²»±ØÉèÖÃËü¡£Ä¬Èϵģ¬squid ʹÓÃcache_effective_user µÄĬÈÏ×飨´Ó/etc/passwd Îļþ¶ÁÈ¡£©¡£

4.3 ¶Ë¿ÚºÅ
http_port Ö¸Áî¸æËßsquid ÔÚÄĸö¶Ë¿ÚÕìÌýHTTP ÇëÇó¡£Ä¬È϶˿ÚÊÇ3128£º
http_port 3128
¼ÙÈçÄ㽫squid ×÷Ϊ¼ÓËÙÆ÷ÔËÐУ¨¼û15 Õ£©£¬ÄãÒ²Ðí¸Ã½«ËüÉèΪ80¡£
ÄãÄÜʹÓø½¼ÓµÄhttp_port ÐУ¬À´Ö¸Ê¾squid ÕìÌýÔÚ¶à¸ö¶Ë¿ÚÉÏ¡£¼ÙÈçÄã±ØÐëÖ§³Ö¿Í»§×飨ËüÃDZ»ÅäÖõò»Ò»Ö£©£¬Õâµã¾Í¾­³£ÓÐÓá£ÀýÈ磬À´×Ôij¸ö²¿ÃŵÄä¯ÀÀÆ÷·¢ËÍÇëÇóµ½3128£¬
È»¶øÁíÒ»¸ö²¿ÃÅʹÓÃ80 ¶Ë¿Ú¡£¼òµ¥µÄ½«Á½¸ö¶Ë¿ÚºÅÁоٳöÀ´£º
http_port 3128
http_port 8080
ÄãÒ²ÄÜʹÓÃhttp_port Ö¸ÁîÀ´Ê¹squid ÕìÌýÔÚÖ¸¶¨µÄ½Ó¿ÚµØÖ·ÉÏ¡£µ±squid ×÷Ϊ·À»ðǽÔËÐÐʱ£¬ËüÓÐÁ½¸öÍøÂç½Ó¿Ú£ºÒ»¸öÄÚ²¿µÄºÍÒ»¸öÍⲿµÄ¡£Äã¿ÉÄܲ»Ïë½ÓÊÜÀ´×ÔÍⲿµÄhttp ÇëÇó¡£ÎªÁËʹsquid ½ö½öÕìÌýÔÚÄÚ²¿½Ó¿ÚÉÏ£¬¼òµ¥µÄ½«IP µØÖ··ÅÔڶ˿ںÅÇ°Ãæ£º
http_port 192.168.1.1:3128

4.4 ÈÕÖ¾Îļþ·¾¶
ÎÒ½«ÔÚµÚ13 ÕÂÌÖÂÛËùÓÐsquid µÄÈÕ־ϸ½Ú¡£ÄãÏÖÔÚÄã¹Ø×¢µÄΨһÊÂÇéÊÇ£¬squid ½«ËüµÄÈÕÖ¾·ÅÔںδ¦¡£Ä¬ÈϵÄÈÕ־Ŀ¼ÊÇsquid °²×°Î»ÖÃϵÄlogs Ŀ¼¡£ÀýÈ磬¼ÙÈçÄãÔÚ./configure
ʱûÓÐʹÓÃ--prefix=Ñ¡ÏÄÇôĬÈϵÄÈÕÖ¾Îļþ·¾¶ÊÇ/usr/local/squid/var/logs¡£
Äã±ØÐëÈ·ÈÏÈÕÖ¾ÎļþËù´æ·ÅµÄ´ÅÅÌλÖÿռä×ã¹»¡£ÔÚsquid дÈÕ־ʱÈç¹û½ÓÊܵ½´íÎó£¬Ëü»áÍ˳öºÍÖØÆô¡£¸ÃÐÐΪµÄÖ÷ÒªÀíÓÉÓ¦ÒýÆðÄãµÄ×¢Òâ¡£squid ÏëÈ·ÈÏÄã²»»á¶ªÊ§ÈκÎÖØÒªµÄÈÕÖ¾ÐÅÏ¢£¬ÌرðÊÇÄãµÄϵͳ±»ÀÄÓûòÕß±»¹¥»÷ʱ¡£
squid ÓÐÈý¸öÖ÷ÒªµÄÈÕÖ¾Îļþ£ºcache.log£¬access.log£¬store.log.µÚÒ»¸öÎļþ¼´cache.log£¬°üº¬×´Ì¬ÐԵĺ͵÷ÊÔÐÔµÄÏûÏ¢¡£µ±Äã¸Õ¿ªÊ¼ÔËÐÐsquid ʱ£¬ÄãÓ¦ÃÜÇеĹØ×¢¸ÃÎļþ¡£¼ÙÈçsquid¾Ü¾øÔËÐУ¬ÀíÓÉÒ²Ðí»á³öÏÖÔÚcache.log ÎļþµÄ½áβ´¦¡£ÔÚÕý³£Ìõ¼þÏ£¬¸ÃÎļþ²»»á±äµÃºÜ´ó¡£Ò²Çë×¢Ò⣬¼ÙÈçÄãÒÔ-s Ñ¡ÏîÀ´ÔËÐÐsquid£¬ÖØÒªµÄcache.log ÏûÏ¢Ò²¿É±»Ë͵½ÄãµÄsyslog½ø³Ì¡£Í¨¹ýʹÓÃcache_log Ö¸ÁÄã¿ÉÒԸıä¸ÃÈÕÖ¾ÎļþµÄ·¾¶£º
cache_log /squid/logs/cache.log
access.log Îļþ°üº¬Á˶Ôsquid ·¢ÆðµÄÿ¸ö¿Í»§ÇëÇóµÄµ¥Ò»ÐС£Ã¿ÐÐÆ½¾ùÔ¼150 ¸ö×Ö½Ú¡£Ò²¾ÍÊÇ˵£¬ÔÚ½ÓÊÜÒ»°ÙÍòÌõ¿Í»§ÇëÇóºó£¬ËüµÄÌå»ýÔ¼ÊÇ150M¡£ÇëʹÓÃcache_access_log Ö¸ÁîÀ´¸Ä±ä¸ÃÈÕÖ¾ÎļþµÄ·¾¶£º
cache_access_log /squid/logs/access.log
¼ÙÈçÒòΪijЩÀíÓÉ£¬Äã²»Ïësquid ¼Ç¼¿Í»§¶ËÇëÇóÈÕÖ¾£¬ÄãÄÜÖ¸¶¨ÈÕÖ¾ÎļþµÄ·¾¶Îª/dev/null.
store.log Îļþ¶Ô´ó¶àÊýcache ¹ÜÀíÔ±À´Ëµ²¢·ÇºÜÓÐÓá£Ëü°üº¬Á˽øÈëºÍÀ뿪»º´æµÄÿ¸öÄ¿±êµÄ¼Ç¼¡£Æ½¾ù¼Ç¼´óСµäÐ͵ÄÊÇ175-200 ×Ö½Ú¡£È»¶ø£¬squid ²»ÔÚstore.log Àï¶Ôcacheµã»÷´´½¨½Ó¿Ú£¬ËùÒÔËü±Èaccess.log °üº¬ÉٵöàµÄ¼Ç¼¡£ÇëʹÓÃcache_store_log Ö¸ÁîÀ´¸Ä±äËüµÄλÖãº
cache_store_log /squid/logs/store.log
ͨ¹ýÖ¸¶¨Â·¾¶Îªnone£¬ÄãÄÜÇáÒ×µÄÍêÈ«½ûÖ¹store.log ÈÕÖ¾£º
cache_store_log none
¼ÙÈçÄ㲻СÐÄ£¬squid µÄÈÕÖ¾ÎļþÔö¼ÓûÓÐÏÞÖÆ¡£Ä³Ð©²Ù×÷ϵͳ¶Ôµ¥¸öÎļþÇ¿ÖÆÖ´ÐÐ2GµÄ´óСÏÞÖÆ£¬¼´Ê¹ÄãÓгä×ãµÄ´ÅÅ̿ռ䡣³¬¹ý¸ÃÏÞÖÆ»áµ¼ÖÂд´íÎó£¬ÕâÑùsquid ¾Í»áÍ˳ö¡£ÎªÁ˱£Ö¤ÈÕÖ¾Îļþ´óСºÏÀí£¬ÄãÓ¦´´½¨ÈÎÎñÀ´ÓйæÂɵÄÖØÃüÃûºÍ´ò°üÈÕÖ¾¡£squid ÓÐÄÚ½¨¹¦ÄÜÀ´Ê¹Õâ¸öÈÝÒ××öµ½¡£Çë¼û13.7 Õ¹ØÓÚÈÕÖ¾ÂÖÑ­µÄ½âÊÍ¡£

4.5 ·ÃÎÊ¿ØÖÆ
ÔÚµÚ6 ÕÂÀïÓиü¶àµÄ¹ØÓÚ·ÃÎÊ¿ØÖƵÄÃèÊö¡£ÏÖÔÚ£¬ÎÒÖ»½²ÊöÉÙÁ¿µÄ·ÃÎÊ¿ØÖÆ·½·¨£¬ÒÔʹÈÈÐĵĶÁÕßÄÜ¿ìËÙ¿ªÊ¼Ê¹ÓÃsquid¡£
squid ĬÈϵÄÅäÖÃÎļþ¾Ü¾øÃ¿Ò»¸ö¿Í»§ÇëÇó¡£ÔÚÈκÎÈËÄÜʹÓôúÀí֮ǰ£¬Äã±ØÐëÔÚsquid.conf ÎļþÀï¼ÓÈ븽¼ÓµÄ·ÃÎÊ¿ØÖƹæÔò¡£×î¼òµ¥µÄ·½·¨¾ÍÊǶ¨ÒåÒ»¸öÕë¶Ô¿Í»§IP µØÖ·µÄACL ºÍÒ»¸ö·ÃÎʹæÔò£¬¸æËßsquid ÔÊÐíÀ´×ÔÕâЩµØÖ·µÄHTTP ÇëÇó¡£squid ÓÐÐí¶à²»Í¬µÄACLÀàÐÍ¡£src ÀàÐÍÆ¥Åä¿Í»§IP µØÖ·£¬squid »áÕë¶Ô¿Í»§HTTP ÇëÇó¼ì²éhttp_access ¹æÔò¡£ÕâÑù£¬ÄãÐèÒªÔö¼ÓÁ½ÐУº
acl MyNetwork src 192.168.0.0/16
http_access allow MyNetwork
Ç뽫ÕâЩÐзÅÔÚÕýÈ·µÄλÖá£http_access µÄ˳Ðò·Ç³£ÖØÒª£¬µ«ÊÇacl ÐеÄ˳ÐòÄã²»±Ø½éÒâ¡£ÄãÒ²¸Ã×¢ÒâĬÈϵÄÅäÖÃÎļþ°üº¬ÁËÒ»Ð©ÖØÒªµÄ·ÃÎÊ¿ØÖÆ£¬Äã²»Ó¦¸Ã¸Ä±ä»òɾ³ýËüÃÇ£¬³ý·ÇÄãÍêÈ«Àí½âËüÃǵÄÒâÒå¡£ÔÚÄãµÚÒ»´Î±à¼­squid.conf Îļþʱ£¬Çë¿´ÈçÏÂ×¢ÊÍ£º
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
ÔÚ¸Ã×¢ÊÍÖ®ºó£¬ÒÔ¼°"http_access deny all"֮ǰ²åÈëÄã×Ô¼ºµÄйæÔò¡£
ΪÁ˳¹µ×˵Ã÷£¬ÈçÏÂÊÇÒ»¸öºÏÀíµÄ³õʼ·ÃÎÊ¿ØÖÆÅäÖ㬰üÀ¨ÍƼöµÄĬÈÏ¿ØÖƺÍÔçÏȵÄÀý×Ó£º
acl All src 0/0
acl Manager proto cache_object
acl Localhost src 127.0.0.1/32
acl Safe_ports port 80 21 443 563 70 210 280 488 591 777 1025-65535
acl SSL_ports 443 563
acl CONNECT method CONNECT
acl MyNetwork src 192.168.0.0/16
http_access allow Manager Localhost
http_access deny Manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow MyNetwork
http_access deny All

4.6 ¿É¼ûÖ÷»úÃû
Ï£ÍûÄã²»±Øµ£ÐÄvisible_hostname Ö¸ÁȻ¶ø£¬¼ÙÈçsquid ²»ÄÜ·¢ÏÖËüËùÔËÐеĻúÆ÷µÄÖ÷»úÃû£¬Äã¾Í±ØÐëÉèÖÃËü¡£Èç¹û·¢ÉúÕâÑùµÄÊ£¬squid ±§Ô¹ºÍ¾Ü¾øÔËÐУº
% squid -Nd1
FATAL: Could not determine fully qualified hostname. Please set 'visible_hostname'
ÓдóÁ¿µÄÀíÓÉʹsquid ÐèÒªÖªµÀÖ÷»úÃû£º
+ Ö÷»úÃû³öÏÖÔÚsquid µÄ´íÎóÏûÏ¢ÀÕâ°ïÖúÓû§Ñé֤DZÔÚÎÊÌâµÄÔ´Í·¡£
+ Ö÷»úÃû³öÏÖÔÚsquid ת·¢µÄcache µ¥ÔªµÄHTTP Via Í·Àï¡£µ±ÇëÇóµ½´ïԭʼÖ÷»úʱ£¬ViaÍ·°üº¬ÁËÔÚ´«Êä¹ý³ÌÖÐÉæ¼°µÄ´úÀíÁÐ±í¡£squid ҲʹÓÃVia Í·À´¼ì²âת·¢»·Â·¡£ÎÒ½«ÔÚµÚ10ÕÂÀïÌÖÂÛת·¢»·Â·¡£
squid ¶ÔÌØ¶¨ÊÂÎñʹÓÃÄÚ²¿URL£¬ÀýÈçFTP Ŀ¼ÁбíµÄͼ±ê¡£µ±squid ¶ÔFTP Ŀ¼²úÉúHTML Ò³ÃæÊ±£¬Ëü²åÈëСͼ±êÓÃÒÔÖ¸Ã÷¸ÃĿ¼ÖеÄÎļþÀàÐÍ¡£Í¼±êURL °üº¬ÁËcache µÄÖ÷»úÃû£¬ÒÔ±ãweb ä¯ÀÀÆ÷ÄÜÖ±½Ó´Ósquid ÇëÇóËüÃÇ¡£
ÿ¸ö´Ósquid ÏìÓ¦µÄHTTP »Ø¸´°üº¬ÁËX-Cache Í·¡£Õâ²¢·Ç¹Ù·½HTTP Í·¡£ËüÊÇÒ»¸öÀ©Õ¹Í·£¬ÓÃÒÔÖ¸Ã÷¸ÃÏìÓ¦ÊÇcache µã»÷»¹ÊÇcache ¶ªÊ§¡£¼ÈÈ»ÇëÇóºÍÏìÓ¦¿ÉÄܾ­¹ý¶à¸öcache£¬Ã¿¸öX-Cache Í·°üº¬ÁËcache ±¨¸æµã»÷»ò¶ªÊ§µÄÃû×Ö¡£ÈçÏÂÊÇÒ»¸öͨ¹ý2 ¸öcache µÄÏìӦʾÀý£º
HTTP/1.0 200 OK
Date: Mon, 29 Sep 2003 22:57:23 GMT
Content-type: text/html
Content-length: 733
X-Cache: HIT from bo2.us.ircache.net
X-Cache: MISS from bo1.us.ircache.net
squid ÔÚÆô¶¯Ê±ÊÔͼ×Ô¶¯»ñÈ¡Ö÷»úÃû¡£Ê×ÏÈËüµ÷ÓÃgethostname()º¯Êý£¬Õâͨ³£ÄÜ·µ»ØÕýÈ·µÄÖ÷»úÃû¡£½Ó×Å£¬squid µ÷ÓÃgethostbyname()º¯Êý³¢ÊÔ¶ÔÖ÷»úÃû½øÐÐDNS ²éѯ¡£¸Ãº¯ÊýµäÐ͵ķµ»ØIP µØÖ·ºÍϵͳµÄ¹æ·¶Ãû¡£¼ÙÈçgethostbyname()³É¹¦£¬squid ÔÚ´íÎóÏûÏ¢ÀVia Í·ÀïµÈµØ·½Ê¹ÓÃÕâ¸ö¹æ·¶Ãû¡£
ÒòΪ´óÁ¿µÄÀíÓÉ£¬squid ¿ÉÄܲ»Äܼì²âµ½ËüµÄ¹æ·¶Ö÷»úÃû£¬°üÀ¨£º
+ Ö÷»úÃû¿ÉÄÜδÉèÖá£
+ Ö÷»úÃû¿ÉÄÜ´ÓDNS ÇøÓò»ò/etc/hosts ÎļþÀﶪʧ¡£
squid ϵͳµÄDNS ¿Í»§¶ËÅäÖÿÉÄܲ»ÕýÈ·»ò¶ªÊ§¡£ÔÚunix ϵͳÉÏ£¬Äã¸Ã¼ì²é/etc/resolv.conf ºÍ/etc/host.conf Îļþ¡£
¼ÙÈçÄã¿´µ½ÉÏÊöµÄÖÂÃü´íÎó£¬Äã±ØÐëÐÞÕýÖ÷»úÃûºÍDNS ÐÅÏ¢£¬»òÕßÏÔʽµÄ¸øsquid Ö¸Ã÷Ö÷»úÃû¡£ÔÚ´ó¶àÊýÇé¿öÏ£¬ÇëÈ·ÈÏ"hostname"ÃüÁî·µ»ØÒ»¸öÍêÈ«¹æ·¶µÄÖ÷»úÃû£¬²¢ÇÒÔÚ/etc/hosts ÎļþÀïÔö¼ÓÕâ¸ö½Ó¿Ú¡£¼ÙÈçÕâÑù²»³É¹¦£¬ÇëÔÚsquid.conf ÀïÉèÖÿɼûÖ÷»úÃû£º
visible_hostname squid.packet-pushers.net

4.7 ¹ÜÀíÁªÏµÐÅÏ¢
ÄãÓ¦¸ÃÉèÖÃcache_mgr Ö¸Áî×÷Ϊ¶ÔÓû§µÄ°ïÖú¡£ËüÊÇÒ»¸öemail µØÖ·£¬¼ÙÈçÎÊÌâ·¢Éú£¬Óû§ÄÜдПøËü¡£cache_mgr µØÖ·Ä¬ÈϳöÏÖÔÚsquid µÄ´íÎóÏûÏ¢Àï¡£ÀýÈ磺
cache_mgr squid@web-cache.net

4.8 ÏÂÒ»²½
ÔÚ´´½¨Á˳õ²½µÄÅäÖÃÎļþºó£¬Äã¶àÉÙ×¼±¸Ê×´ÎÔËÐÐsquid ÁË¡£Çë×ñÑ­ÏÂÃæÕ½ڵĽ¨Òé¡£
µ±ÄãÕÆÎÕÁËÆô¶¯ºÍÍ£Ö¹squid ºó£¬Äã¸Ã»¨·ÑһЩʱ¼äÀ´¸ÄÉÆÅäÖÃÎļþ¡£Äã¿ÉÄÜÏëÔö¼Ó¸ü¸ß¼¶µÄ·ÃÎÊ¿ØÖÆ£¬ÕâÔÚµÚ6 ÕÂÀïÓÐÃèÊö¡£¼ÈÈ»ÎÒÔÚÕâÀïûÓÐÌÖÂÛ´ÅÅÌcache£¬Äã¸Ã»¨Ð©Ê±¼äÔĶÁµÚ7 ºÍµÚ8 Õ¡£
µÚ5ÕÂ ÔËÐÐSquid
5.1 squid ÃüÁîÐÐÑ¡Ïî
ÔÚ¿ªÊ¼ÆäËûÊÂÇé֮ǰ£¬ÈÃÎÒÃÇÏÈ¿´Ò»ÏÂsquid µÄÃüÁîÐÐÑ¡Ïî¡£ÕâÀïµÄÐí¶àÑ¡ÏîÄã´Ó²»»áʹÓã¬ÁíÍâÓÐЩ½ö½öÔÚµ÷ÊÔÎÊÌâʱÓÐÓá£
-a port
Ö¸¶¨ÐµÄhttp_port Öµ¡£¸ÃÑ¡Ï¸ÇÁËÀ´×Ôsquid.conf µÄÖµ¡£È»¶øÇë×¢Ò⣬ÄãÄÜÔÚsquid.confÀïÖ¸¶¨¶à¸öÖµ¡£-a Ñ¡Ïî½ö½ö¸²¸ÇÅäÖÃÎļþÀïµÄµÚÒ»¸öÖµ¡££¨¸ÃÑ¡ÏîʹÓÃ×Öĸa ÊÇÒòΪÔÚHarvest cache ÀHTTP ¶Ë¿Ú±»½Ð×öASCII ¶Ë¿Ú£©
-d level
ÈÃsquid ½«ËüµÄµ÷ÊÔÐÅϢдµ½±ê×¼´íÎ󣨼ÙÈçÅäÖÃÁË£¬¾ÍÊÇcache.log ºÍsyslog£©¡£level²ÎÊýÖ¸¶¨ÁËÏÔʾÔÚ±ê×¼´íÎóÀïµÄÏûÏ¢µÄ×î´óµÈ¼¶¡£ÔÚ¶àÊýÇé¿öÏ£¬d1 ¹¤×÷Á¼ºÃ¡£Çë¼û16.2Õ¹ØÓÚµ÷ÊԵȼ¶µÄÃèÊö¡£
-f file
Ö¸¶¨ÁíÒ»¸öÅäÖÃÎļþ¡£
-h
ÏÔʾÓ÷¨¡£
-k function
ָʾsquid Ö´Ðв»Í¬µÄ¹ÜÀí¹¦ÄÜ¡£¹¦ÄܲÎÊýÊÇÏÂÁÐÖ®Ò»£ºreconfigure£¬rotate£¬shutdown£¬interrupt£¬kill£¬debug£¬check£¬or parse¡£
+ reconfigure µ¼ÖÂÔËÐÐÖеÄsquid ÖØÐ¶ÁÈ¡ÅäÖÃÎļþ¡£
+ rotateµ¼ÖÂsquid ¹ö¶¯ËüµÄÈÕÖ¾£¬Õâ°üÀ¨Á˹رÕÈÕÖ¾£¬ÖØÃüÃû£¬ºÍÔٴδò¿ªËüÃÇ¡£
+ shutdown ·¢Ë͹رÕsquid ½ø³ÌµÄÐźš£
+ interrupt Á¢¿Ì¹Ø±Õsquid£¬²»±ØµÈ´ý»î¶¯»á»°Íê³É¡£
+ kill ·¢ËÍKILL ÐźŸøsquid£¬ÕâÊǹرÕsquid µÄ×îºó±£Ö¤¡£
+ debug ½«squid ÉèÖóÉÍêÈ«µÄµ÷ÊÔģʽ£¬¼ÙÈçÄãµÄcache ºÜ棬ËüÄÜѸËÙµÄÓÃÍêÄãµÄ´ÅÅ̿ռ䡣
+ check ¼òµ¥µÄ¼ì²éÔËÐÐÖеÄsquid ½ø³Ì£¬·µ»ØµÄÖµÏÔʾsquid ÊÇ·ñÔÚÔËÐС£
+ ×îºó£¬parse ¼òµ¥µÄ½âÎösquid.conf Îļþ£¬Èç¹ûÅäÖÃÎļþ°üº¬´íÎ󣬽ø³Ì·µ»Ø·ÇÁãÖµ¡£
-s
¼¤»î½«ÈÕÖ¾¼Ç¼µ½syslog ½ø³Ì¡£squid ʹÓÃLOCAL4 syslog É豸¡£0 ¼¶±ðµ÷ÊÔÐÅÏ¢ÒÔÓÅÏȼ¶LOG_WARNING ±»¼Ç¼£¬1 ¼¶±ðÏûÏ¢ÒÔLOG_NOTICE ±»¼Ç¼¡£¸ü¸ß¼¶µÄµ÷ÊÔÐÅÏ¢²»»á±»·¢Ë͵½syslogd.Äã¿ÉÒÔÔÚ/etc/syslogd.conf ÎļþÀïʹÓÃÈçϽӿڣº
local4.warning /var/log/squid.log
-u port
Ö¸¶¨ÁíÒ»¸öICP ¶Ë¿ÚºÅ£¬¸²¸Çµôsquid.conf ÎļþÀïµÄicp_port¡£
-v
´òÓ¡°æ±¾ÐÅÏ¢¡£
-z
³õʼ»¯cache£¬»òÕß½»»»£¬Ä¿Â¼¡£ÔÚÊ×´ÎÔËÐÐsquid£¬»òÕßÔö¼ÓеÄcache Ŀ¼ʱ£¬Äã±ØÐëʹÓøÃÑ¡Ïî¡£
-C
×èÖ¹°²×°Ä³Ð©Ðźžä±ú£¬ËüÃDz¶»ñÌØ¶¨µÄÖÂÃüÐźÅÀýÈçSIGBUS ºÍSIGSEGV¡£Õý³£µÄ£¬ÕâЩÐźű»squid ²¶»ñ£¬ÒÔ±ãËüÄܸɾ»µÄ¹Ø±Õ¡£È»¶ø£¬²¶»ñÕâЩÐźſÉÄÜÈÃÒÔºóµ÷ÊÔÎÊÌâÀ§ÄÑ¡£Ê¹ÓøÃÑ¡ÏÖÂÃüµÄÐźŵ¼ÖÂËüÃǵÄĬÈ϶¯×÷£¬Í¨³£ÊÇcoredump¡£
-D
½ûÖ¹³õʼ»¯DNS ²âÊÔ¡£Õý³£Çé¿öÏ£¬squid Ö±µ½ÑéÖ¤ËüµÄDNS ¿ÉÓòÅÄÜÆô¶¯¡£¸ÃÑ¡Ïî×èÖ¹ÁËÕâÑùµÄ¼ì²â¡£ÄãÒ²ÄÜÔÚsquid.conf ÎļþÀï¸Ä±ä»òɾ³ýdns_testnames Ñ¡Ïî¡£
-F
ÈÃsquid ¾Ü¾øËùÓеÄÇëÇó£¬Ö±µ½ËüÖØÐ½¨Á¢Æð´æ´¢ÔªÊý¾Ý¡£¼ÙÈçÄãµÄϵͳºÜ棬¸ÃÑ¡Ïî¿ÉÒÔ¼õ¶ÌÖØ½¨´æ´¢ÔªÊý¾ÝµÄʱ¼ä¡£È»¶ø£¬Èç¹ûÄãµÄcache ºÜ´ó£¬Öؽ¨¹ý³Ì¿ÉÄܻỨ·ÑºÜ³¤µÄʱ¼ä¡£
-N
×èÖ¹squid ±ä³Éºǫ́·þÎñ½ø³Ì¡£
-R
×èÖ¹squid ÔÚ°ó¶¨HTTP ¶Ë¿Ú֮ǰʹÓÃSO_REUSEADDR Ñ¡Ïî¡£
-V
¼¤»îÐéÄâÖ÷»ú¼ÓËÙģʽ¡£ÀàËÆÓÚsquid.conf ÎļþÀïµÄhttpd_accel_host virtual Ö¸Áî¡£
-X
Ç¿ÆÈÍêÕûµ÷ÊÔģʽ£¬ÈçÄãÔÚsquid.conf ÎļþÀïÖ¸¶¨debug_options ALL,9 Ò»Ñù¡£
-Y
ÔÚÖØ½¨´æ´¢ÔªÊý¾Ýʱ£¬·µ»ØICP_MISS_NOFETCH ´úÌæICP_MISS.浵ĸ¸cache ÔÚÖØ½¨Ê±£¬¸ÃÑ¡Ïî¿ÉÒÔµ¼ÖÂ×îÉٵĸºÔØ¡£Çë¼û10.6.1.2 Õ¡£

5.2 ¶ÔÅäÖÃÎļþ²é´í
ÔÚ¿ªÆôsquid ֮ǰ£¬ÄãÓ¦¸Ã½÷É÷µÄÑéÖ¤ÅäÖÃÎļþ¡£ÕâµãÈÝÒ××öµ½£¬ÔËÐÐÈçÏÂÃüÁî¼´¿É£º
%squid -k parse
¼ÙÈçÄã¿´²»µ½Êä³ö£¬ÅäÖÃÎļþÓÐЧ£¬ÄãÄܼÌÐøºóÃæµÄ²½Öè¡£
È»¶ø£¬Èç¹ûÅäÖÃÎļþ°üº¬´íÎó£¬squid »á¸æËßÄ㣺
squid.conf line 62: http_access allow okay2
aclParseAccessLine: ACL name 'okay2' not found.
ÕâÀïÄã¿ÉÒÔ¿´µ½£¬62 ÐеÄhttp_access Ö¸ÁîÖ¸ÏòµÄACL ²»´æÔÚ¡£ÓÐʱºò´íÎóÐÅÏ¢ºÜÉÙ£º
FATAL: Bungled squid.conf line 76: memory_pools
ÔÚÕâ¸öÇéÐÎÀÎÒÃÇÍü¼ÇÁËÔÚ76 ÐеÄmemory_pools Ö¸Áîºó·ÅÖÃon »òoff¡£
½¨ÒéÄãÑø³Éϰ¹ß£ºÔÚÿ´ÎÐÞ¸ÄÅäÖÃÎļþºó£¬Ê¹ÓÃsquid -k parse¡£¼ÙÈçÄã²»Ô¸Âé·³£¬²¢ÇÒÄãµÄÅäÖÃÎļþÓдíÎó£¬squid »á¸æËßÄã¹ØÓÚËüÃǶøÇҾܾøÆô¶¯¡£¼ÙÈçÄã¹ÜÀí×Å´óÁ¿µÄcache£¬Ò²ÐíÄã»á±à¼­½Å±¾À´×Ô¶¯Æô¶¯£¬Í£Ö¹ºÍÖØÅäÖÃsquid¡£ÄãÄÜÔڽű¾ÀïʹÓøù¦ÄÜ£¬À´È·ÈÏÅäÖÃÎļþÊÇÓÐЧµÄ¡£

5.3 ³õʼ»¯cache Ŀ¼
ÔÚ³õ´ÎÔËÐÐsquid ֮ǰ£¬»òÕßÎÞÂÛºÎʱÄãÔö¼ÓÁËеÄcache_dir£¬Äã±ØÐë³õʼ»¯cache Ŀ¼¡£ÃüÁîºÜ¼òµ¥£º
%squid ¨Cz
¶ÔUFS Ïà¹ØµÄ´æ´¢»úÖÆ£¨ufs,aufs,and diskd;¼ûµÚ8 Õ£©£¬¸ÃÃüÁîÔÚÿ¸öcache_dir ÏÂÃæ´´½¨ÁËËùÐèµÄ×ÓĿ¼¡£Äã²»±Øµ£ÐÄsquid »áÆÆ»µÄãµÄµ±Ç°cache Ŀ¼£¨Èç¹ûÓеϰ£©¡£
Ôڸý׶ÎÊôÖ÷ºÍÐí¿ÉȨÊÇͨ³£Óöµ½µÄÎÊÌâ¡£squid ÔÚÌØ¶¨µÄÓû§ID ÏÂÔËÐУ¬ÕâÔÚsquid.conf ÎļþÀïµÄcache_effective_user ÀïÖ¸¶¨¡£Óû§ID ±ØÐë¶Ôÿ¸öcache_dir Ŀ¼ÓжÁºÍдȨÏÞ¡£·ñÔò£¬Ä㽫¿´µ½ÈçÏÂÐÅÏ¢£º
Creating Swap Directories
FATAL: Failed to make swap directory /usr/local/squid/var/cache/00:
(13) Permission denied
ÔÚÕâÑùµÄÇéÐÎÏ£¬Äã¸ÃÈ·ÈÏ/usr/local/squid/var/cache Ŀ¼µÄËùÓÐ×é³É¶¼¿É±»squid.conf¸ø¶¨µÄÓû§ID ·ÃÎÊ¡£×îÖÕµÄ×é¼þ--cache Ŀ¼--±ØÐë¶Ô¸ÃÓû§ID ¿Éд¡£
cache Ŀ¼³õʼ»¯¿ÉÄÜ»¨·ÑһЩʱ¼ä£¬ÒÀÀµÓÚcache Ŀ¼µÄ´óСºÍÊýÁ¿£¬ÒÔ¼°´ÅÅÌÇý¶¯Æ÷µÄËÙ¶È¡£¼ÙÈçÄãÏë¹Û²ìÕâ¸ö¹ý³Ì£¬ÇëʹÓÃ-X Ñ¡Ï
%squid ¨CzX

5.4 ÔÚÖÕ¶Ë´°¿ÚÀï²âÊÔsquid
Ò»µ©ÄãÒѾ­³õʼ»¯cache Ŀ¼£¬¾Í¿ÉÒÔÔÚÖÕ¶Ë´°¿ÚÀïÔËÐÐsquid£¬½«ÈÕÖ¾¼Ç¼µ½±ê×¼´íÎó¡£ÕâÑù£¬ÄãÄÜÇáÒ׵Ķ¨Î»ÈκδíÎó»òÎÊÌ⣬²¢ÇÒÈ·ÈÏsquid ÊÇ·ñ³É¹¦Æô¶¯¡£Ê¹ÓÃ-N Ñ¡ÏîÀ´±£³Ösquid ÔÚǰ̨ÔËÐУ¬-d1 Ñ¡ÏîÔÚ±ê×¼´íÎóÀïÏÔʾ1 ¼¶±ðµÄµ÷ÊÔÐÅÏ¢¡£
%squid -N -d1
Ä㽫¿´µ½ÀàËÆÓÚÒÔϵÄÊä³ö£º
2003/09/29 12:57:52| Starting Squid Cache
version 2.5.STABLE4 for i386-unknown-freebsd4.8...
2003/09/29 12:57:52| Process ID 294
2003/09/29 12:57:52| With 1064 file descriptors available
2003/09/29 12:57:52| DNS Socket created on FD 4
2003/09/29 12:57:52| Adding nameserver 206.107.176.2 from /etc/resolv.conf
2003/09/29 12:57:52| Adding nameserver 205.162.184.2 from /etc/resolv.conf
2003/09/29 12:57:52| Unlinkd pipe opened on FD 9
2003/09/29 12:57:52| Swap maxSize 102400 KB, estimated 7876 objects
2003/09/29 12:57:52| Target number of buckets: 393
2003/09/29 12:57:52| Using 8192 Store buckets
2003/09/29 12:57:52| Max Mem size: 8192 KB
2003/09/29 12:57:52| Max Swap size: 102400 KB
2003/09/29 12:57:52| Rebuilding storage in /usr/local/squid/var/cache (DIRTY)
2003/09/29 12:57:52| Using Least Load store dir selection
2003/09/29 12:57:52| Set Current Directory to /usr/local/squid/var/cache
2003/09/29 12:57:52| Loaded Icons.
2003/09/29 12:57:52| Accepting HTTP connections at 0.0.0.0, port 3128, FD 11.
2003/09/29 12:57:52| Accepting ICP messages at 0.0.0.0, port 3130, FD 12.
2003/09/29 12:57:52| WCCP Disabled.
2003/09/29 12:57:52| Ready to serve reques
¼ÙÈçÄã¿´µ½´íÎóÏûÏ¢£¬Äã¸ÃÊ×ÏÈÐÞÕýËü¡£Çë¼ì²éÊä³öÐÅÏ¢µÄ¿ªÊ¼¼¸ÐÐÒÔ·¢ÏÖ¾¯¸æÐÅÏ¢¡£×îÆÕͨµÄ´íÎóÊÇÎļþ/Ŀ¼Ðí¿ÉÎÊÌ⣬ºÍÅäÖÃÎļþÓï·¨´íÎó¡£¼ÙÈçÄã¿´µ½Ò»Ìõ²»ÒýÆð×¢ÒâµÄ´íÎóÏûÏ¢£¬Çë¼û16 ÕÂÖйØÓÚsquid ¹ÊÕÏ´¦ÀíµÄ½¨ÒéºÍÐÅÏ¢¡£Èç¹û»¹²»ÐУ¬Çë¼ì²ésquid FAQ£¬»ò²éÕÒÓʼþÁбíÀ´»ñµÃ½âÊÍ¡£
Ò»µ©Äã¼ûµ½"Ready to serve requests"ÏûÏ¢£¬¾Í¿ÉÓÃһЩHTTP ÇëÇóÀ´²âÊÔsquid¡£ÅäÖÃÄãµÄä¯ÀÀÆ÷ʹÓÃsquid ×÷Ϊ´úÀí£¬È»ºó´ò¿ªÄ³¸öweb Ò³Ãæ¡£¼ÙÈçsquid ¹¤×÷Õý³££¬Ò³Ã汻ѸËÙÔØÈ룬¾ÍÏóûʹÓÃsquid Ò»Ñù¡£ÁíÍ⣬Äã¿ÉÒÔʹÓÃsquidclient ³ÌÐò£¬ËüËæsquid ·¢²¼£º
% squidclient http://www.squid-cache.org/
¼ÙÈçËüÕý³£¹¤×÷£¬squid µÄÖ÷Ò³html Îļþ»áÔÚÄãµÄÖÕ¶Ë´°¿ÚÀï¹ö¶¯¡£Ò»µ©È·ÈÏsquid ¹¤×÷Õý³££¬ÄãÄÜÖжÏsquid ½ø³Ì£¨ÀýÈçʹÓÃctrl-c£©²¢ÇÒÔÚºǫ́ÔËÐÐsquid¡£

5.5 ½«squid ×÷Ϊ·þÎñ½ø³ÌÔËÐÐ
Õý³£Çé¿öÏÂÄãÏ뽫squid ÒÔºǫ́½ø³ÌÔËÐУ¨²»³öÏÖÔÚÖÕ¶Ë´°¿ÚÀ¡£×îÈÝÒ׵ķ½·¨ÊǼòµ¥Ö´ÐÐÈçÏÂÃüÁ
%squid ¨Cs
-s Ñ¡Ïîµ¼ÖÂsquid ½«ÖØÒªµÄ״̬ºÍ¾¯¸æÐÅϢдµ½syslogd¡£squid ʹÓÃLOCAL4 É豸£¬ºÍLOG_WARNING ºÍLOG_NOTICE ÓÅÏÈȨ¡£syslog ½ø³Ìʵ¼Ê¿ÉÄÜ»á»ò²»»á¼Ç¼squid µÄÏûÏ¢£¬ÕâÒÀÀµÓÚËü±»ÈçºÎÅäÖá£Í¬ÑùµÄÏûÏ¢±»Ð´½øcache.log Îļþ£¬ËùÒÔ¼ÙÈçÄãÔ¸Ò⣬ºöÂÔ-s Ñ¡ÏîÒ²Êǰ²È«µÄ¡£
µ±Ä㲻ʹÓÃ-N Ñ¡ÏîÀ´Æô¶¯squid£¬squid ×Ô¶¯ÔÚºǫ́ÔËÐв¢ÇÒ´´½¨¸¸/×Ó½ø³Ì¶Ô¡£×Ó½ø³Ì×öËùÓеÄʵ¼Ê¹¤×÷¡£¸¸½ø³ÌÈ·ÈÏ×Ó½ø³Ì×ÜÔÚÔËÐС£ÕâÑù£¬¼ÙÈç×Ó½ø³ÌÒâÍâÖÕÖ¹£¬¸¸½ø³ÌÆô¶¯ÁíÍâÒ»¸ö×Ó½ø³ÌÒÔʹsquid Õý³£¹¤×÷¡£Í¨¹ý¹Û²ìsyslog ÏûÏ¢£¬ÄãÄÜ¿´µ½¸¸/×Ó½ø³Ì½»»¥×÷Óá£
Jul 31 14:58:35 zapp squid[294]: Squid Parent: child process 296 started
ÕâÀïÏÔʾµÄ¸¸½ø³ÌID ÊÇ294£¬×Ó½ø³ÌÊÇ296¡£µ±Äã²é¿´ps µÄÊä³ö£¬Äã¿ÉÒÔ¿´µ½×Ó½ø³ÌÒÔ(squid)ÐÎʽ³öÏÖ£º
%ps ax | grep squid
294 ?? Is 0:00.01 squid -sD
296 ?? S 0:00.27 (squid) -sD (squid)
¼ÙÈçsquid ½ø³ÌÒâÍâÖÕÖ¹£¬¸¸½ø³ÌÆô¶¯ÁíÒ»¸ö¡£ÀýÈ磺
Jul 31 15:02:53 zapp squid[294]: Squid Parent: child process 296 exited due to signal 6
Jul 31 15:02:56 zapp squid[294]: Squid Parent: child process 359 started
ÔÚijЩÇéÐÎÏ£¬squid ×Ó½ø³Ì¿ÉÄÜÁ¢¼´ÖÕÖ¹¡£ÎªÁË·ÀֹƵ·±µÄÆô¶¯×Ó½ø³Ì£¬¼ÙÈç×Ó½ø³ÌÁ¬Ðø5 ´ÎûÓÐÔËÐÐÖÁÉÙ10 ÃëÖÓ£¬¸¸½ø³Ì»á·ÅÆú¡£
Jul 31 15:13:48 zapp squid[455]: Squid Parent: child process 474 exited with status 1
Jul 31 15:13:48 zapp squid[455]: Exiting due to repeated, frequent failures
Èç¹û·¢ÉúÕâÑùµÄÊ£¬Çë¼ì²ésyslog ºÍsquid µÄcache.log ÒÔ·¢ÏÖ´íÎó¡£

5.5.1 squid_start ½Å±¾
µ±squid ÒÔºǫ́½ø³ÌÔËÐÐʱ£¬Ëü²éÕÒsquid Ö´ÐгÌÐòĿ¼ÏµÄÃûΪsquid_start µÄÎļþ¡£¼ÙÈç·¢ÏÖ£¬¸Ã³ÌÐòÔÚ¸¸½ø³Ì´´½¨×Ó½ø³Ì֮ǰ±»Ö´ÐС£ÄãÄÜʹÓøýű¾Íê³ÉÌØ¶¨µÄ¹ÜÀíÈÎÎñ£¬ÀýÈç֪ͨijÈËsquid ÔÚÔËÐУ¬¹ÜÀíÈÕÖ¾ÎļþµÈ¡£³ý·Çsquid_start ³ÌÐò´æÔÚ£¬squid ²»»á´´½¨×Ó½ø³Ì¡£
squid_start ½Å±¾ÔÚÄãʹÓþø¶Ô»òÏà¶Ô·¾¶Æô¶¯squid ʱ²Å¿ªÊ¼¹¤×÷¡£»»¾ä»°Ëµ£¬squid ²»Ê¹ÓÃPATH »·¾³±äÁ¿À´¶¨Î»squid_start.ÕâÑù£¬ÄãÓ¦¸ÃÑø³Éϰ¹ßÕâÑùÆô¶¯squid£º
% /usr/local/squid/sbin/squid ¨CsD
¶ø²»ÒªÕâÑù£º
%squid ¨CsD

5.6 Æô¶¯½Å±¾
ͨ³£ÄãÏ£Íûsquid ÔÚÿ´Î¼ÆËã»úÖØÆôºó×Ô¶¯Æô¶¯¡£¶Ô²»Í¬µÄ²Ù×÷ϵͳ£¬ËüÃÇµÄÆô¶¯½Å±¾ÈçºÎ¹¤×÷Ò²ºÜ²»Í¬¡£ÎÒÔÚÕâÀïÃèÊöһЩͨÓõĻ·¾³£¬µ«¶ÔÄã×Ô¼ºµÄÌØÊâ²Ù×÷ϵͳ£¬Ò²Ðí¸ÃÓÐÌØÊâµÄ´¦Àí·½·¨¡£

5.6.1 /etc/rc.local
×îÈÝÒ׵ĻúÖÆÖ®Ò»ÊÇ/etc/rc.local ½Å±¾¡£ÕâÊǸö¼òµ¥µÄshell ½Å±¾£¬ÔÚÿ´ÎϵͳÆô¶¯Ê±ÒÔroot ÔËÐС£Ê¹Óøýű¾À´Æô¶¯squid ·Ç³£ÈÝÒ×£¬Ôö¼ÓÒ»ÐÐÈçÏ£º
/usr/local/squid/sbin/squid ¨Cs
µ±È»ÄãµÄ°²×°Î»ÖÿÉÄܲ»Í¬£¬»¹ÓÐÄã¿ÉÄÜҪʹÓÃÆäËûÃüÁîÐÐÑ¡Ïî¡£²»ÒªÔÚÕâÀïʹÓÃ-NÑ¡Ïî¡£
¼ÙÈçÒòΪijЩÀíÓÉ£¬ÄãûÓÐʹÓÃcache_effective_user Ö¸ÁÄã¿ÉÒÔ³¢ÊÔʹÓÃsu À´ÈÃsquidÒÔ·Çroot Óû§ÔËÐУº
/usr/bin/su nobody -c '/usr/local/squid/sbin/squid -s'

5.6.2 init.d ºÍrc.d
init.d ºÍrc.d »úÖÆÊ¹ÓöÀÁ¢µÄshell ½Å±¾À´Æô¶¯²»Í¬µÄ·þÎñ¡£ÕâЩ½Å±¾Í¨³£ÔÚÏÂÁÐĿ¼֮ÖУº/sbin/init.d, /etc/init.d, /usr/local/etc/rc.d.½Å±¾Í¨³£»ñÈ¡µ¥Ò»ÃüÁîÐвÎÊý£¬ÊÇstart »òstop¡£Ä³Ð©ÏµÍ³½ö½öʹÓÃstart ²ÎÊý¡£ÈçÏÂÊÇÆô¶¯squid µÄ»ù±¾½Å±¾£º
#!/bin/sh
# this script starts and stops Squid
case "$1" in
start)
/usr/local/squid/sbin/squid -s
echo -n ' Squid'
;;
stop)
/usr/local/squid/sbin/squid -k shutdown
;;
esac
Linux Óû§¿ÉÄÜÔÚÆô¶¯squid ֮ǰÐèÒªÉèÖÃÎļþÃèÊö·ûÏÞÖÆ¡£ÀýÈ磺
echo 8192 >; /proc/sys/fs/file-max
limit -HSn 8192
ΪÁËʹÓøýű¾£¬ÏÈÕÒµ½½Å±¾´æ·ÅµÄĿ¼¡£¸øËüÒ»¸öÓÐÒâÒåµÄÃû×Ö£¬ÀàËÆÓÚÆäËûµÄϵͳÆô¶¯½Å±¾¡£¿ÉÒÔÊÇS98squid »òsquid.sh¡£Í¨¹ýÖØÆô¼ÆËã»úÀ´²âÊԸýű¾£¬¶ø²»Òª¼ÙÏëËü»áÕý³£¹¤×÷¡£

5.6.3 /etc/inittab
ijЩ²Ù×÷ϵͳ֧³ÖÁíÒ»ÖÖ»úÖÆ£¬ÊÇ/etc/inittab Îļþ¡£ÔÚÕâЩϵͳÖУ¬init ½ø³ÌÆô¶¯ºÍÍ£Ö¹»ùÓÚÔËÐеȼ¶µÄ·þÎñ¡£µäÐ͵Äinittab ½Ó¿ÚÀàËÆÈç´Ë£º
sq:2345nce:/usr/local/squid/sbin/squid ¨Cs
ʹÓøýӿڣ¬init ½ø³ÌÆô¶¯squid Ò»´Î²¢ÇÒËæºóÍü¼ÇËü¡£squid È·ÈÏËüפÁôÔÚÔËÐÐ״̬£¬ÏóÇ°ÃæÃèÊöµÄÒ»Ñù¡£»òÕߣ¬ÄãÄÜÕâÑù×ö:
sq:2345:respawn:/usr/local/squid/sbin/squid ¨CNs
ÕâÀïÎÒÃÇʹÓÃÁËrespawn Ñ¡Ï¼ÙÈç½ø³Ì²»´æÔÚinit »áÖØÆôsquid¡£¼ÙÈçʹÓÃrespawn£¬ÇëÈ·ÈÏʹÓÃ-N Ñ¡Ïî¡£
Ôڱ༭Íêinittab Îļþºó£¬Ê¹ÓÃÏÂÃæµÄÃüÁîÀ´Ê¹init ÖØÐ¶ÁÈ¡ËüµÄÅäÖÃÎļþºÍÆô¶¯squid£º
# init q

5.7 chroot »·¾³
ijЩÈËϲ»¶ÔÚchroot »·¾³ÔËÐÐsquid¡£ÕâÊÇunix µÄ¹¦ÄÜ£¬¸øÓè½ø³ÌеÄroot ÎļþϵͳĿ¼¡£ÔÚsquid Êܰ²È«Íþвʱ£¬ËüÌṩ¶îÍâµÈ¼¶µÄ°²È«±£»¤¡£¼ÙÈç¹¥»÷ÕßÔÚijÖ̶ֳÈÉÏͨ¹ýsquid»ñÈ¡Á˶ԲÙ×÷ϵͳµÄ·ÃÎÊȨ£¬Ëý½ö½öÄÜ·ÃÎÊÔÚchroot ÎļþϵͳÖеÄÎļþ¡£ÔÚchroot Ê÷Ö®ÍâµÄϵͳÎļþ£¬Ëý²»¿É·ÃÎÊ¡£
×îÈÝÒ×ÔÚchroot »·¾³ÀïÔËÐÐsquid µÄ·½·¨ÊÇ£¬ÔÚsquid.conf ÎļþÀïÖ¸¶¨ÐµÄroot Ŀ¼£¬ÈçÏ£º
chroot /new/root/directory
chroot()ϵͳµ÷ÓÃÐèÒª³¬¼¶Óû§È¨ÏÞ£¬ËùÒÔÄã±ØÐëÒÔroot À´Æô¶¯squid¡£
chroot »·¾³²»ÊÇΪunix ÐÂÊÖ×¼±¸µÄ¡£ËüÓеãÂé·³£¬ÒòΪÄã±ØÐëÔÚеÄroot Ŀ¼ÀïÖØ¸´·ÅÖôóÁ¿µÄÎļþ¡£ÀýÈ磬¼ÙÈçĬÈϵÄÅäÖÃÎļþÕý³£ÔÚ/usr/local/squid/etc/squid.conf£¬²¢ÇÒÄãʹÓÃchroot Ö¸ÁÄÇôÎļþ±ØÐëλÓÚ/new/root/directory/usr/local/squid/etc/squid.conf.Äã±ØÐ뽫λÓÚ$prefix/etc,$prefix/share,$prefix/libexec ϵÄËùÓÐÎļþ¿½±´µ½chroot Ŀ¼¡£ÇëÈ·ÈÏ$prefix/var ºÍcache Ŀ¼ÔÚchroot Ŀ¼ÖдæÔںͿÉд¡£
ͬÑùµÄ£¬ÄãµÄ²Ù×÷ϵͳÐèÒª½«´óÁ¿µÄÎļþ·ÅÔÚchroot Ŀ¼ÀÀýÈç/etc/resolv.conf ºÍ/dev/null.¼ÙÈçÄãʹÓÃÍⲿ¸¨Öú³ÌÐò£¬ÀýÈçÖØ¶¨ÏòÆ÷£¨¼û11 Õ£©»òÕßÑéÖ¤Æ÷£¨¼û12 Õ£©£¬ÄãÒ²ÐèÒªÀ´×Ô/usr/lib µÄijЩ¹²Ïí¿â¡£Äã¿ÉÒÔʹÓÃldd ¹¤¾ßÀ´²éÕÒ¸ø¶¨µÄ³ÌÐòÐèÒªÄÄЩ¹²Ïí¿â£º
% ldd /usr/local/squid/libexec/ncsa_auth
/usr/local/squid/libexec/ncsa_auth:
libcrypt.so.2 =>; /usr/lib/libcrypt.so.2 (0x28067000)
libm.so.2 =>; /usr/lib/libm.so.2 (0x28080000)
libc.so.4 =>; /usr/lib/libc.so.4 (0x28098000)
Äã¿ÉÒÔʹÓÃchroot ÃüÁîÀ´²âÊÔ¸¨Öú³ÌÐò£º
# chroot /new/root/directory /usr/local/squid/libexec/ncsa_auth
/usr/libexec/ld-elf.so.1: Shared object "libcrypt.so.2" not found
¸ü¶àµÄ¹ØÓÚchroot µÄÐÅÏ¢£¬Çë¼ûÄãϵͳÖÐchroot()µÄmanpage¡£

5.8 ֹͣsquid
×ȫµÄÍ£Ö¹squid µÄ·½·¨ÊÇʹÓÃsquid -k shutdown ÃüÁ
%squid -k shutdown
¸ÃÃüÁî·¢ËÍTERM Ðźŵ½ÔËÐÐÖеÄsquid ½ø³Ì¡£ÔÚ½ÓÊܵ½TERM Ðźźó£¬squid ¹Ø±Õ½øÀ´µÄÌ×½Ó×ÖÒÔ¾ÜÊÕÐÂÇëÇó¡£È»ºóËüµÈ´ýÒ»¶Îʱ¼ä£¬ÓÃÒÔÍê³ÉÍâ³öÇëÇó¡£Ä¬ÈÏʱ¼äÊÇ30 Ã룬Äã¿ÉÒÔÔÚshutdown_lifetime Ö¸ÁîÀï¸ü¸ÄËü¡£
¼ÙÈçÒòΪijЩÀíÓÉ£¬squid.pid Îļþ¶ªÊ§»ò²»¿É¶Á£¬squid -k ÃüÁî»áʧ°Ü¡£ÔÚ´ËÇéÐÎÏ£¬Äã¿ÉÒÔÓÃps ÕÒµ½squid µÄ½ø³ÌID£¬È»ºóÊÖ¹¤É±ËÀsquid¡£ÀýÈ磺
%ps ax |grep squid
¼ÙÈçÄã¿´µ½²»Ö¹Ò»¸ösquid ½ø³Ì£¬ÇëɱËÀÒÔ(squid)ÏÔʾµÄÄǸö¡£ÀýÈ磺
% ps ax | grep squid
294 ?? Is 0:00.01 squid -sD
296 ?? S 0:00.27 (squid) -sD (squid)
% kill -TERM 296
ÔÚ·¢ËÍTERM Ðźźó£¬ÄãÒ²ÐíÏë²é¿´ÈÕÖ¾£¬ÒÔÈ·ÈÏsquid Òѹرգº
% tail -f logs/cache.log
2003/09/29 21:49:30| Preparing for shutdown after 9316 requests
2003/09/29 21:49:30| Waiting 10 seconds for active connections to finish
2003/09/29 21:49:30| FD 11 Closing HTTP connection
2003/09/29 21:49:31| Shutting down...
2003/09/29 21:49:31| FD 12 Closing ICP connection
2003/09/29 21:49:31| Closing unlinkd pipe on FD 9
2003/09/29 21:49:31| storeDirWriteCleanLogs: Starting...
2003/09/29 21:49:32| Finished. Wrote 253 entries.
2003/09/29 21:49:32| Took 0.1 seconds (1957.6 entries/sec).
2003/09/29 21:49:32| Squid Cache (Version 2.5.STABLE4): Exiting normally.
¼ÙÈçÄãʹÓÃsquid -k interrupt ÃüÁsquid Á¢¼´¹Ø±Õ£¬²»ÓõȴýÍê³É»î¶¯ÇëÇó¡£ÕâÓëÔÚkill Àï·¢ËÍINT ÐźÅÏàͬ¡£

5.9 ÖØÅäÖÃÔËÐÐÖеÄsquid ½ø³Ì
ÔÚÄãÁ˽âÁ˸ü¶à¹ØÓÚsquid µÄ֪ʶºó£¬Äã»á·¢ÏÖ¶Ôsquid.conf Îļþ×öÁËÐí¶à¸Ä¶¯¡£ÎªÁËÈÃÐÂÉèÖÃÉúЧ£¬Äã¿ÉÒԹرպÍÖØÆôsquid,»òÕßÔÚsquid ÔËÐÐʱ£¬ÖØÅäÖÃËü¡£
ÖØÅäÖÃÔËÐÐÖеÄsquid ×îºÃµÄ·½·¨ÊÇʹÓÃsquid -k reconfigure ÃüÁ
%squid -k reconfigure
µ±ÄãÔËÐиÃÃüÁîʱ£¬HUP Ðźű»·¢Ë͵½ÔËÐÐÖеÄsquid ½ø³Ì¡£È»ºósquid ¶ÁÈ¡ºÍ½âÎösquid.conf Îļþ¡£¼ÙÈç²Ù×÷³É¹¦£¬Äã¿ÉÒÔÔÚcache.log Àï¿´µ½ÕâЩ£º
2003/09/29 22:02:25| Restarting Squid Cache (version 2.5.STABLE4)...
2003/09/29 22:02:25| FD 12 Closing HTTP connection
2003/09/29 22:02:25| FD 13 Closing ICP connection
2003/09/29 22:02:25| Cache dir '/usr/local/squid/var/cache' size remains unchanged
at 102400 KB
2003/09/29 22:02:25| DNS Socket created on FD 5
2003/09/29 22:02:25| Adding nameserver 10.0.0.1 from /etc/resolv.conf
2003/09/29 22:02:25| Accepting HTTP connections at 0.0.0.0, port 3128, FD 9.
2003/09/29 22:02:25| Accepting ICP messages at 0.0.0.0, port 3130, FD 11.
2003/09/29 22:02:25| WCCP Disabled.
2003/09/29 22:02:25| Loaded Icons.
2003/09/29 22:02:25| Ready to serve requests.
ÔÚʹÓÃreconfigure Ñ¡ÏîʱÄãÐë½÷É÷£¬ÒòΪËù×öµÄ¸Ä±ä¿ÉÄܻᵼÖÂÖÂÃü´íÎó¡£ÀýÈ磬Çë×¢Òâsquid ¹Ø±ÕºÍÖØÐ´ò¿ª½øÀ´µÄHTTP ºÍICP Ì×½Ó×Ö£»¼ÙÈçÄ㽫http_port ¸Ä±äΪsquid ²»ÄÜ´ò¿ªµÄ¶Ë¿Ú£¬Ëü»á·¢ÉúÖÂÃü´íÎó²¢Í˳ö¡£
ÔÚsquid ÔËÐÐʱ£¬Ä³Ð©Ö¸ÁîºÍºÍÑ¡Ïî²»Äܸı䣬°üÀ¨£º
+ ɾ³ýcache Ŀ¼£¨cache_dir Ö¸Á
+ ¸Ä±ästore_log Ö¸Áî
+ ¸Ä±äcoss cache_dir µÄ¿é´óСÊýÖµ¡£ÊÂʵÉÏ£¬ÎÞÂÛºÎʱÄã¸Ä±äÁ˸ÃÖµ£¬Äã±ØÐëÖØÐ³õʼ»¯coss cache_dir¡£
+ coredump_dir Ö¸ÁîÔÚÖØÅäÖùý³ÌÖв»±»¼ì²é¡£ËùÒÔ£¬ÔÚsquid ÒѾ­Æô¶¯Á˺ó£¬Äã²»ÄÜÈÃsquid ¸Ä±äËüµÄµ±Ç°Ä¿Â¼¡£
solaris Óû§ÔÚÖØÅäÖÃsquid ¹ý³ÌÖпÉÄÜÓöµ½ÆäËûÎÊÌâ¡£solaris µÄstdio Ö´ÐÐ×é¼þÀïµÄfopen()µ÷ÓÃÒªÇóʹÓÃСÓÚ256 µÄδÓÃÎļþÃèÊö·û¡£FILE ½á¹¹ÒÔ8 λֵ´æ´¢¸ÃÎļþÃèÊö·û¡£Õý³£Çé¿öÏÂÕâ²»¹¹³ÉÎÊÌ⣬ÒòΪsquid ʹÓõײãI/O£¨ÀýÈçopen()£©À´´ò¿ªcache Îļþ¡£È»¶ø£¬ÔÚÖØÅäÖùý³ÌÖеÄijЩÈÎÎñʹÓÃfopen()£¬Õâ¾ÍÓпÉÄÜʧ°Ü£¬ÒòÎªÇ°ÃæµÄ256 ¸öÎļþÃèÊö·ûÒѱ»·ÖÅä³öÈ¥¡£

5.10 ¹ö¶¯ÈÕÖ¾Îļþ
³ý·ÇÄãÔÚsquid.conf Àï½ûÖ¹£¬squid »áд´óÁ¿µÄÈÕÖ¾Îļþ¡£Äã±ØÐëÖÜÆÚÐԵĹö¶¯ÈÕÖ¾Îļþ£¬ÒÔ×èÖ¹ËüÃDZäµÃÌ«´ó¡£squid ½«´óÁ¿µÄÖØÒªÐÅϢдÈëÈÕÖ¾£¬¼ÙÈçд²»½øÈ¥ÁË£¬squid »á·¢Éú´íÎó²¢Í˳ö¡£ÎªÁ˺ÏÀí¿ØÖÆ´ÅÅ̿ռäÏûºÄ£¬ÔÚcron ÀïʹÓÃÈçÏÂÃüÁ
%squid -k rotate
ÀýÈ磬ÈçÏÂÈÎÎñ½Ó¿ÚÔÚÿÌìµÄÔçÉÏ4 µã¹ö¶¯ÈÕÖ¾£º
0 4 * * * /usr/local/squid/sbin/squid -k rotate
¸ÃÃüÁî×öÁ½¼þÊ¡£Ê×ÏÈ£¬Ëü¹Ø±Õµ±Ç°´ò¿ªµÄÈÕÖ¾Îļþ¡£È»ºó£¬Í¨¹ýÔÚÎļþÃûºó¼ÓÊý×ÖÀ©Õ¹Ãû£¬ËüÖØÃüÃûcache.log,store.log,ºÍaccess.log¡£ÀýÈ磬cache.log ±ä³Écache.log.0,cache.log.0±ä³Écache.log.1,Èç´Ë¼ÌÐø£¬¹ö¶¯µ½logfile_rotate Ñ¡ÏîÖ¸¶¨µÄÖµ¡£
squid ½ö½ö±£´æÃ¿¸öÈÕÖ¾ÎļþµÄ×îºólogfile_rotate °æ±¾¡£¸üÀϵİ汾ÔÚÖØÃüÃû¹ý³ÌÖб»É¾³ý¡£¼ÙÈçÄãÏë±£´æ¸ü¶àµÄ¿½±´£¬ÄãÐèÒªÔö¼Ólogfile_rotate ÏÞÖÆ£¬»òÕß±àд½Å±¾ÓÃÓÚ½«ÈÕÖ¾ÎļþÒÆ¶¯µ½ÆäËûλÖá£
Çë¼û13.7 Õ¹ØÓÚ¹ö¶¯ÈÕÖ¾µÄÆäËûÐÅÏ¢¡£
6£®·ÃÎÊ¿ØÖÆ
6.1 ·ÃÎÊ¿ØÖÆÔªËØ
ACL ÔªËØÊÇSquid µÄ·ÃÎÊ¿ØÖƵĻù´¡¡£ÕâÀï¸æËßÄãÈçºÎÖ¸¶¨°üÀ¨IP µØÖ·£¬¶Ë¿ÚºÅ£¬Ö÷»úÃû£¬ºÍURL Æ¥ÅäµÈ±äÁ¿¡£Ã¿¸öACL ÔªËØÓиöÃû×Ö£¬ÔÚ±àд·ÃÎÊ¿ØÖƹæÔòʱÐèÒªÒýÓÃËüÃÇ¡£»ù±¾µÄACL ÔªËØÓï·¨ÈçÏ£º
acl name type value1 value2 ...
ÀýÈ磺
acl Workstations src 10.0.0.0/16
ÔÚ¶àÊýÇé¿öÏ£¬ÄãÄܶÔÒ»¸öACL ÔªËØÁоٶà¸öÖµ¡£ÄãÒ²¿ÉÒÔÓжà¸öACL ÐÐʹÓÃͬһ¸öÃû×Ö¡£ÀýÈ磬ÏÂÁÐÁ½ÐÐÅäÖÃÊǵȼ۵ģº
acl http_ports port 80 8000 8080
acl Http_ports port 80
acl Http_ports port 8000
acl Http_ports port 8080
6.1.1 һЩ»ù±¾µÄACL ÀàÐÍ
Squid ´óÔ¼ÓÐ25 ¸ö²»Í¬µÄACL ÀàÐÍ£¬ÆäÖеÄһЩÓÐͨÓûù±¾ÀàÐÍ¡£ÀýÈ磬src ºÍdst ACLʹÓÃIP µØÖ·×÷ΪËüÃǵĻù±¾ÀàÐÍ¡£Îª±ÜÃâÈß³¤£¬ÎÒÊ×ÏÈÃèÊö»ù±¾ÀàÐÍ£¬È»ºóÔÚ½ÓÏÂÀ´Õ½ÚÀïÃèÊöÿÖÖACL ÀàÐÍ¡£
6.1.1.1 IP µØÖ·
ʹÓöÔÏó£ºsrc,dst,myip
squid ÔÚACL ÀïÖ¸¶¨IP µØÖ·Ê±£¬ÓµÓÐÇ¿ÓÐÁ¦µÄÓï·¨¡£ÄãÄÜÒÔ×ÓÍø£¬µØÖ··¶Î§£¬ÓòÃûµÈÐÎʽ±àдµØÖ·¡£squid Ö§³Ö±ê×¼IP µØÖ·Ð´·¨£¨ÓÉ¡±.¡±Á¬½ÓµÄ4 ¸öСÓÚ256 µÄÊý×Ö£©ºÍÎÞÀàÓò¼ä·Óɹ淶¡£ÁíÍ⣬¼ÙÈçÄãºöÂÔÑÚÂ룬squid »á×Ô¶¯¼ÆËãÏàÓ¦µÄÑÚÂë¡£ÀýÈ磬ÏÂÀýÖеÄÿ×éÊÇÏàµÈµÄ£º
acl Foo src 172.16.44.21/255.255.255.255
acl Foo src 172.16.44.21/32
acl Foo src 172.16.44.21
acl Xyz src 172.16.55.32/255.255.255.248
acl Xyz src 172.16.55.32/28
acl Bar src 172.16.66.0/255.255.255.0
acl Bar src 172.16.66.0/24
acl Bar src 172.16.66.0
µ±ÄãÖ¸¶¨ÑÚÂëʱ£¬squid »á¼ì²éÄãµÄ¹¤×÷¡£Èç¹ûÄãµÄÑÚÂëÔÚIP µØÖ·µÄ·ÇÁãλ֮Í⣬squid»á¸æ¾¯¡£ÀýÈ磬ÏÂÁÐÐе¼Ö¸澯£º
acl Foo src 127.0.0.1/8
aclParseIpData: WARNING: Netmask masks away part of the specified IP in 'Foo'
ÕâÀïµÄÎÊÌâÊÇ/8 ÑÚÂ루255.0.0.0£©ÔÚ×îºóÈý¸ö×Ö½ÚÀï¶¼ÊÇÁãÖµ£¬µ«ÊÇIP µØÖ·127.0.0.1²»ÊÇÕâÑùµÄ¡£squid ¾¯¸æÄãÕâ¸öÎÊÌ⣬ÒÔ±ãÄãÏû³ýÆçÒå¡£ÕýÈ·µÄд·¨ÊÇ£º
acl Foo src 127.0.0.1/32
or:
acl Foo src 127.0.0.0/8
ÓÐʱºòÄã¿ÉÄÜÏëÁоٶà¸öÏàÁÚ×ÓÍø£¬ÔÚÕâÑùµÄÇé¿öÏ£¬Í¨¹ýÖ¸¶¨µØÖ··¶Î§ºÜÈÝÒ××öµ½¡£ÀýÈ磺
acl Bar src 172.16.10.0-172.16.19.0/24
ÕâµÈ¼Ûµ«¸ßЧÓÚÏÂÃæµÄÐУº
acl Foo src 172.16.10.0/24
acl Foo src 172.16.11.0/24
acl Foo src 172.16.12.0/24
acl Foo src 172.16.13.0/24
acl Foo src 172.16.14.0/24
acl Foo src 172.16.15.0/24
acl Foo src 172.16.16.0/24
acl Foo src 172.16.18.0/24
acl Foo src 172.16.19.0/24
×¢ÒâʹÓÃIP µØÖ··¶Î§£¬ÑÚÂëÖ»ÄÜȡһ¸ö¡£Äã²»ÄÜΪ·¶Î§ÀïµÄµØÖ·ÉèÖöà¸ö²»Í¬ÑÚÂë¡£
ÄãÒ²ÄÜÔÚIP ACL ÀïÖ¸¶¨Ö÷»úÃû£¬ÀýÈ磺
acl Squid dst www.squid-cache.org
squid ÔÚÆô¶¯Ê±£¬½«Ö÷»úÃûת»»³ÉIP µØÖ·¡£Ò»µ©Æô¶¯£¬squid ²»»á¶ÔÖ÷»úÃûµÄµØÖ··¢ÆðµÚ¶þ´ÎDNS ²éѯ¡£ÕâÑù£¬¼ÙÈçÔÚsquid ÔËÐÐÖеØÖ·ÒѸı䣬squid ²»»á×¢Òâµ½¡£
¼ÙÈçÖ÷»úÃû±»½âÎö³É¶à¸öIP µØÖ·£¬squid ½«Ã¿Ò»¸öÔö¼Óµ½ACL Àï¡£×¢ÒâÄãÒ²¿ÉÒÔ¶ÔÖ÷»úÃûʹÓÃÍøÂçÑÚÂë¡£
ÔÚ»ùÓÚµØÖ·µÄACL ÀïʹÓÃÖ÷»úÃûͨ³£ÊÇ»µ×ö·¨¡£squid ÔÚ³õʼ»¯ÆäËû×é¼þ֮ǰ£¬ÏȽâÎöÅäÖÃÎļþ£¬ËùÒÔÕâЩDNS ²éѯ²»Ê¹ÓÃsquid µÄ·Ç×èÈûIP »º´æ½Ó¿Ú¡£´úÌæµÄ£¬ËüÃÇʹÓÃ×èÈû»úÖÆµÄgethostbyname()º¯Êý¡£ÕâÑù£¬½«ACL Ö÷»úÃûת»»µ½IP µØÖ·µÄ¹ý³Ì»áÑÓ»ºsquid µÄÆô¶¯¡£³ý·Ç¾ø¶Ô±ØÒª£¬ÇëÔÚsrc,dst,ºÍmyip ACL Àï±ÜÃâʹÓÃÖ÷»úÃû¡£
squid ÒÔÒ»ÖÖ½Ð×ösplay tree µÄÊý¾Ý½á¹¹ÔÚÄÚ´æÀï´æ´¢IP µØÖ·ACL £¨ Çë¼ûhttp://www.link.cs.cmu.edu/splay/£©¡£splay tree ÓÐһЩÓÐȤµÄ×ÔÎÒµ÷ÕûµÄÌØÐÔ£¬ÆäÖÐÖ®Ò»ÊÇÔÚ²éѯ·¢Éúʱ£¬Áбí»á×Ô¶¯¾ÀÕýËü×Ô¼ºµÄλÖᣵ±Ä³¸öÆ¥ÅäÔªËØÔÚÁбíÀï·¢ÏÖʱ£¬¸ÃÔªËØ±ä³ÉеÄÊ÷¸ù¡£Ôڸ÷½·¨ÖУ¬×î½ü²Î¿¼µÄÌõÄ¿»áÒÆ¶¯µ½Ê÷µÄ¶¥²¿£¬Õâ¼õÉÙÁ˽«À´²éѯµÄʱ¼ä¡£
ÊôÓÚͬһACL ÔªËØµÄËùÓеÄ×ÓÍøºÍ·¶Î§²»ÄÜÖØµü¡£Èç¹ûÓдíÎó£¬squid »á¾¯¸æÄã¡£ÀýÈ磬Èçϲ»±»ÔÊÐí£º
acl Foo src 1.2.3.0/24
acl Foo src 1.2.3.4/32
Ëüµ¼ÖÂsquid ÔÚcache.log Àï´òÓ¡¾¯¸æ£º
WARNING: '1.2.3.4' is a subnetwork of '1.2.3.0/255.255.255.0'
WARNING: because of this '1.2.3.4' is ignored to keep splay tree searching predictable
WARNING: You should probably remove '1.2.3.4' from the ACL named 'Foo'
ÔÚ¸ÃÇéÐÎÏ£¬ÄãÐèÒªÐÞÕýÕâ¸öÎÊÌ⣬¿ÉÒÔɾ³ýÆäÖÐÒ»¸öACL Öµ£¬»òÕß½«ËüÃÇ·ÅÖÃÔÚ²»Í¬µÄACL ÁбíÖС£

6.1.1.2 ÓòÃû
ʹÓöÔÏó£ºsrcdomain,dstdomain,ºÍcache_host_domain Ö¸ÁîÓòÃû¼òµ¥µÄ¾ÍÊÇDNS Ãû×Ö»òÇøÓò¡£ÀýÈ磬ÏÂÃæÊÇÓÐЧµÄÓòÃû£º
www.squid-cache.org
squid-cache.org
org
ÓòÃûACL ÓеãÉî°Â£¬ÒòΪÏà¶ÔÓÚÆ¥ÅäÓòÃûºÍ×ÓÓòÓеã΢ÃîµÄ²î±ð¡£µ±ACL ÓòÃûÒÔ"."¿ªÍ·£¬squid ½«Ëü×÷ΪͨÅä·û£¬ËüÆ¥ÅäÔÚ¸ÃÓòµÄÈκÎÖ÷»úÃû£¬ÉõÖÁÓòÃû×ÔÉí¡£Ïà·´µÄ£¬Èç¹ûACL ÓòÃû²»ÒÔ"."¿ªÍ·£¬squid ʹÓþ«È·µÄ×Ö·û´®±È½Ï£¬Ö÷»úÃûͬÑù±ØÐë±»Ñϸñ¼ì²é¡£
±í6-1 ÏÔʾÁËsquid µÄÆ¥ÅäÓòºÍÖ÷»úÃûµÄ¹æÔò¡£µÚÒ»ÁÐÏÔʾÁËÈ¡×ÔURL ÇëÇóµÄÖ÷»úÃû£¨»òÕßsrcdomain ACL µÄ¿Í»§Ö÷»úÃû£©¡£µÚ¶þÁÐÖ¸Ã÷ÊÇ·ñÖ÷»úÃûÆ¥Åälrrr.org¡£µÚÈýÁÐÏÔʾÊÇ·ñÖ÷»úÃûÆ¥Åä.lrrr.org ACL¡£ÄãÄÜ¿´µ½£¬Î¨Ò»µÄ²»Í¬ÔÚµÚ¶þ¸öʵÀýÀï¡£
Table 6-1. Domain name matching
___________________________________________________________________
__URL hostname_____Matches ACL lrrr.org? ____Matches ACL .lrrr.org?
__lrrr.org_________Yes_______________________Yes
__i.am.lrrr.org____No________________________Yes
__iamlrrr.org______No________________________No
___________________________________________________________________
**˵Ã÷£ºÎªÁ˱íÏÖ±í¸ñÐÎ×´£¬¡°__¡±½ö´ú±í¿Õ¸ñ·Ö¸ô·û£¬Ã»ÓÐÈκÎʵ¼ÊÒâÒ壨¶ÎÓþ ×¢ÊÍ£©¡£
ÓòÃûÆ¥Åä¿ÉÄÜÈÃÈËÃÔ»ó£¬ËùÒÔÇë¿´µÚ¶þ¸öÀý×ÓÒÔ±ãÄãÄÜÕæÕýÀí½âËü¡£ÈçÏÂÊÇÁ½¸öÉÔ΢²»Í¬µÄACL£º
acl A dstdomain foo.com
acl B dstdomain .foo.com
Óû§¶Ôhttp://www.foo.com/µÄÇëÇóÆ¥ÅäACL B£¬µ«²»Æ¥ÅäA¡£ACL A ÒªÇóÑϸñµÄ×Ö·û´®
Æ¥Å䣬Ȼ¶øACL B ÀïÁìÍ·µÄµã¾ÍÏñͨÅä·û¡£
ÁíÍ⣬Óû§¶Ôhttp://foo.com/µÄÇëÇóͬʱƥÅäA ºÍB¡£¾¡¹ÜÔÚURL Ö÷»úÃûÀïµÄfoo.comÇ°ÃæÃ»ÓÐ×Ö·û£¬µ«ACL B ÀïÁìÍ·µÄµãÈÔÈ»µ¼ÖÂÒ»¸öÆ¥Åä¡£
squid ʹÓÃsplay tree µÄÊý¾Ý½á¹¹À´´æ´¢ÓòÃûACL£¬¾ÍÏñËü´¦ÀíIP µØÖ·Ò»Ñù¡£È»¶ø£¬squidµÄÓòÃûÆ¥Åä»úÖÆ¸øsplay tree ÌṩÁËÒ»¸öÓÐȤµÄÎÊÌâ¡£splay tree ¼¼ÊõÒªÇóΨһ¼üȥƥÅäÈÎÒâÌØ¶¨ËÑË÷ÌõÄ¿¡£ÀýÈ磬ÈÃÎÒÃǼÙÉèËÑË÷ÌõÄ¿ÊÇi.am.lrrr.org¡£¸ÃÖ÷»úÃûͬʱƥÅä.lrrr.orgºÍ.am.lrrr.org¡£ÊÂʵÉϾÍÊÇÁ½¸öACL ֵƥÅäͬһ¸öÖ÷»úÃûÈÅÂÒÁËsplay »úÖÆ¡£»»¾ä»°Ëµ£¬ÔÚÅäÖÃÎļþÀï·ÅÖÃÈçÏÂÓï¾äÊÇ´íÎóµÄ£º
acl Foo dstdomain .lrrr.org   .am.lrrr.org
¼ÙÈçÄãÕâÑù×ö£¬squid »á²úÉúÈçϾ¯¸æÐÅÏ¢£º
WARNING: '.am.lrrr.org' is a subdomain of '.lrrr.org'
WARNING: because of this '.am.lrrr.org' is ignored to keep splay tree searching predictable
WARNING: You should probably remove '.am.lrrr.org' from the ACL named 'Foo'
ÔÚ¸ÃÇé¿öÏÂÄãÓ¦×ñÑ­squid µÄ½¨Ò顣ɾ³ýÆäÖÐÒ»ÌõÏà¹ØµÄÓòÃû£¬ÒÔ±ãsquid Ã÷È·ÖªµÀÄãµÄÒâͼ¡£×¢ÒâÄãÄÜÔÚ²»Í¬µÄACL ÀïÈÎÒâʹÓÃÕâÑùµÄÓòÃû£º
acl Foo dstdomain .lrrr.org
acl Bar dstdomain .am.lrrr.org
ÕâÊÇÔÊÐíµÄ£¬ÒòΪÿ¸öÃüÃûACL ʹÓÃËü×Ô¼ºµÄsplay tree.

6.1.1.3 Óû§Ãû
ʹÓöÔÏó£ºident£¬proxy_auth
¸ÃÀàÐ͵ÄACL ±»Éè¼Æ³ÉÆ¥ÅäÓû§Ãû¡£squid ¿ÉÄÜͨ¹ýRFC 1413 ident ЭÒé»òÕßͨ¹ýHTTPÑé֤ͷÀ´»ñÈ¡Óû§Ãû¡£Óû§Ãû±ØÐë±»ÑϸñÆ¥Åä¡£ÀýÈ磬bob ²»Æ¥Åäbobby¡£squid Ò²ÓÐÏà¹ØµÄACL ¶ÔÓû§ÃûʹÓÃÕýÔò±í´ïʽƥÅ䣨ident_regex ºÍproxy_auth_regex£©¡£
Äã¿ÉÒÔʹÓõ¥´Ê"REQUIRED"×÷ÎªÌØÊâֵȥƥÅäÈÎÒâÓû§Ãû¡£¼ÙÈçsquid ²»ÄܲéÃ÷Óû§Ãû£¬ACL ²»Æ¥Åä¡£µ±Ê¹ÓûùÓÚÓû§ÃûµÄ·ÃÎÊ¿ØÖÆÊ±£¬squid ͨ³£ÕâÑùÅäÖá£

6.1.1.4 ÕýÔò±í´ïʽ
ʹÓöÔÏó£ºsrcdom_regex£¬dstdom_regex£¬url_regex£¬urlpath_regex£¬browser£¬referer_regex£¬ident_regex£¬proxy_auth_regex£¬req_mime_type£¬rep_mime_type
´óÁ¿µÄACL ʹÓÃÕýÔò±í´ïʽÀ´Æ¥Åä×Ö·û´®£¨ÍêÕûµÄÕýÔò±í´ïʽ²Î¿¼£¬Çë¼ûO'Reilly µÄMastering Regular Expressions Ò»Ê飩¡£¶Ôsquid À´Ëµ£¬×ʹÓõÄÕýÔò±í´ïʽ¹¦ÄÜÓÃÒÔÆ¥Åä×Ö·û´®µÄ¿ªÍ·»ò½áβ¡£ÀýÈ磬^×Ö·ûÊÇÌØÊâÔª×Ö·û£¬ËüÆ¥ÅäÐлò×Ö·û´®µÄ¿ªÍ·£º
^http://
¸ÃÕýÔò±í´ïʽƥÅäÈÎÒâÒÔhttp://¿ªÍ·µÄURL¡£$Ò²ÊÇÌØÊâµÄÔª×Ö·û£¬ÒòΪËüÆ¥ÅäÐлò×Ö
·û´®µÄ½áβ£º
.jpg$
ʵ¼ÊÉÏ£¬¸ÃʾÀýÒ²ÓÐЩ´íÎó£¬ÒòΪ.×Ö·ûÒ²ÊÇÌØÊâÔª×Ö·û¡£ËüÊÇÆ¥ÅäÈÎÒâµ¥¸ö×Ö·ûµÄͨÅä·û¡£ÎÒÃÇʵ¼ÊÏëÒªµÄÓ¦¸ÃÊÇ£º
\.jpg$
·´Ð±¸Ü¶ÔÕâ¸ö"."½øÐÐתÒå¡£¸ÃÕýÔò±í´ïʽƥÅäÒÔ.jpg ½áβµÄÈÎÒâ×Ö·û´®¡£¼ÙÈçÄ㲻ʹÓÃ^»ò$×Ö·û£¬ÕýÔò±í´ïʽµÄÐÐΪ¾ÍÏó±ê×¼×Ó´®ËÑË÷¡£ËüÃÇÆ¥ÅäÔÚ×Ö·û´®ÀïÈκÎλÖóöÏֵĵ¥´Ê»ò´Ê×é¡£
¶ÔËùÓеÄsquid ÕýÔò±í´ïʽÀ࣬Äã¿ÉÒÔʹÓôóСдÃô¸ÐµÄÑ¡ÏƥÅäÊÇĬÈÏ´óСдÃô¸ÐµÄ¡£ÎªÁË´óСд²»Ãô¸Ð£¬ÔÚACL ÀàÐͺóÃæÊ¹ÓÃ-i Ñ¡Ïî¡£ÀýÈ磺
acl Foo url_regex -i ^http://www

6.1.1.5 TCP ¶Ë¿ÚºÅ
ʹÓöÔÏó£ºport£¬myport
¸ÃÀàÐÍÊÇÏà¶ÔµÄ¡£ÖµÊǸö±ðµÄ¶Ë¿ÚºÅ»ò¶Ë¿Ú·¶Î§¡£»ØÏëÒ»ÏÂTCP ¶Ë¿ÚºÅÊÇ16 λֵ£¬ÕâÑùËüµÄÖµ±ØÐë´óÓÚ0 ºÍСÓÚ65536¡£ÈçÏÂÊÇһЩʾÀý:
acl Foo port 123
acl Bar port 1-1024

6.1.1.6 ×ÔÖ÷ϵͳºÅ
ʹÓöÔÏó£ºsrc_as£¬dst_as
Internet ·ÓÉÆ÷ʹÓÃ×ÔÖ÷ϵͳ(AS)ºÅÀ´´´½¨Â·ÓÉ±í¡£»ù±¾ÉÏ£¬Ä³¸öAS ºÅÖ¸Ïò±»Í¬Ò»×éÖ¯¹ÜÀíµÄIP ÍøÂ緶Χ¡£ÀýÈ磬ÎÒµÄISP ·ÖÅäÁËÈçÏÂÍøÂç¿é£º134.116.0.0/16, 137.41.0.0/16, 206.168.0.0/16,ºÍÆäËû¸ü¶à¡£ÔÚInternet ·ÓɱíÀÕâÐ©ÍøÂç±»¹«²¼ÎªÊôÓÚAS 3404¡£µ±Â·ÓÉÆ÷ת·¢°üʱ£¬ËüÃǵäÐ͵ÄÑ¡Ôñ¾­¹ý×îÉÙAS µÄ·¾¶¡£¼ÙÈçÕâЩ¶ÔÄã²»ÖØÒª£¬Çë²»±Ø¹Ø×¢ËüÃÇ¡£AS »ù´¡µÄACL ½ö½ö±»ÍøÂçgurus ʹÓá£
ÈçÏÂÊÇ»ùÓÚAS µÄÀàÐÍÈçºÎ¹¤×÷µÄ£ºµ±squid Ê×ÏÈÆô¶¯Ê±£¬Ëü·¢ËÍÒ»ÌõÌØÊâµÄ²éѯµ½Ä³¸öwhois ·þÎñÆ÷¡£²éѯÓï¾ä»ù±¾ÊÇ£º¡°¸æËßÎÒÄĸöIP ÍøÂçÊôÓÚ¸ÃAS ºÅ¡±¡£ÕâÑùµÄÐÅÏ¢±»RADBÊÕ¼¯ºÍ¹ÜÀí¡£Ò»µ©Squid ½ÓÊܵ½IP ÍøÂçÁÐ±í£¬ËüÏàËÆµÄ½«ËüÃÇ×÷ΪIP »ù´¡µÄACL ¶Ô´ý¡£
»ùÓÚAS µÄÀàÐͽö½öÔÚISP ½«ËûÃǵÄRADB ÐÅÏ¢±£³ÖÓëÈÕ¸üÐÂʱ²Å¹¤×÷Á¼ºÃ¡£Ä³Ð©ISP¸üÐÂRADB ±ÈÆäËûÈË×öµÃ¸üºÃ£»¶øÐí¶à¸ù±¾²»¸üÐÂËü¡£Çë×¢Òâsquid ½ö½öÔÚÆô¶¯»òÕßreconfigure ʱ²Å½«AS ºÅת»»ÎªÍøÂçµØÖ·¡£¼ÙÈçISP ¸üÐÂÁËËüµÄRADB ½Ó¿Ú£¬³ý·ÇÄãÖØÆô»òÕßÖØÅäÖÃsquid£¬squid ²»»áÖªµÀÕâ¸ö¸Ä±ä¡£
ÁíÍâµÄÇé¿öÊÇ£¬ÔÚÄãµÄsquid Æô¶¯Ê±£¬RADB¿ÉÄܲ»¿Éµ½´ï¡£¼ÙÈçSquid ²»ÄÜÁªÏµÉÏRADB·þÎñÆ÷£¬Ëü´Ó·ÃÎÊ¿ØÖÆÅäÖÃÀïɾ³ýAS ½Ó¿Ú¡£Ä¬ÈϵÄwhois ·þÎñÆ÷ÊÇwhois.ra.net£¬¶ÔÐí¶àÓû§À´ËµÌ«Ò£Ô¶Á˶ø²»¿ÉÐÅÀµ¡£

6.1.2 ACL ÀàÐÍ
ÏÖÔÚÎÒÃÇÄܰѽ¹µã·ÅÔÚACL ÀàÐÍ×ÔÉíÉÏ¡£ÎÒÔÚÕâÀï°´ÕÕÖØÒªÐԵĽµÐòÀ´ÁоÙËüÃÇ¡£

6.1.2.1 src
IP µØÖ·ÔÚ·ÃÎÊ¿ØÖÆÔªËØÀïÊÇ×îÆÕ±éʹÓõġ£´ó²¿·ÖÕ¾µãʹÓÃIP µØÖ·À´¿ØÖƿͻ§ÔÊÐí»ò²»ÔÊÐí·ÃÎÊSquid¡£src ÀàÐÍÖ¸¿Í»§Ô´IP µØÖ·¡£Ò²¾ÍÊÇ˵£¬µ±src ACL ³öÏÖÔÚ·ÃÎÊ¿ØÖÆÁбíÀïʱ£¬squid ½«ËüÓë·¢²¼ÇëÇóµÄ¿Í»§IP µØÖ·½øÐбȽϡ£
Õý³£Çé¿öÏÂÄãÔÊÐíÀ´×ÔÄÚÍøÖÐÖ÷»úµÄÇëÇ󣬲¢×èÈûÆäËûµÄ¡£ÀýÈ磬¼ÙÈçÄãµÄµ¥Î»Ê¹ÓÃ192.168.0.0 ×ÓÍø£¬Äã¿ÉÒÔÕâÑùÖ¸¶¨ACL£º
acl MyNetwork src 192.168.0.0
¼ÙÈçÄãÓÐÐí¶à×ÓÍø£¬ÄãÄÜÔÚͬһ¸öacl ÐÐÀïÃæÁоÙËüÃÇ£º
acl MyNetwork src 192.168.0.0 10.0.1.0/24 10.0.5.0/24 172.16.0.0/12
squid ÓÐÐí¶àÆäËûACL ÀàÐÍÓÃÒÔ¼ì²é¿Í»§µØÖ·¡£srcdomain ÀàÐͱȽϿͻ§µÄÍêÕû¿ÉÑéÖ¤ÓòÃû¡£ËüÒªÇó·´ÏòDNS ²éѯ£¬Õâ¿ÉÄÜ»áÑÓ»º´¦Àí¸ÃÇëÇó¡£srcdom_regex ACL ÊÇÀàËÆµÄ£¬µ«ËüÔÊÐíÄãʹÓÃÕýÔò±í´ïʽÀ´Æ¥ÅäÓòÃû¡£×îºó£¬src_as ÀàÐͱȽϿͻ§µÄAS ºÅ¡£

6.1.2.2 dst
dst ÀàÐÍÖ¸Ïòԭʼ·þÎñÆ÷£¨Ä¿±ê£©IP µØÖ·¡£ÔÚijЩÇé¿öÏ£¬ÄãÄÜʹÓøÃÀàÐÍÀ´×èÖ¹ÄãµÄÓû§·ÃÎÊÌØ¶¨web Õ¾µã¡£È»¶ø£¬ÔÚʹÓÃdst ACL ʱÄãÐë½÷É÷¡£´ó²¿·Ösquid ½ÓÊܵ½µÄÇëÇóÓÐԭʼ·þÎñÆ÷Ö÷»úÃû¡£ÀýÈ磺
GET http://www.web-cache.com/ HTTP/1.0
ÕâÀwww.web-cache.com ÊÇÖ÷»úÃû¡£µ±·ÃÎÊÁÐ±í¹æÔò°üº¬ÁËdst ÔªËØÊ±£¬squid ±ØÐëÕÒµ½¸ÃÖ÷»úÃûµÄIP µØÖ·¡£¼ÙÈçsquid µÄIP »º´æ°üº¬Á˸ÃÖ÷»úÃûµÄÓÐЧ½Ó¿Ú£¬ÕâÌõACL ±»Á¢¼´¼ì²â¡£·ñÔò£¬ÔÚDNS ²éѯæµʱ£¬squid »áÑÓ»º´¦Àí¸ÃÇëÇó¡£Õâ¶ÔijЩÇëÇóÀ´Ëµ»áÔì³ÉÑÓʱ¡£
ΪÁ˱ÜÃâÑÓʱ£¬Äã¸Ã¾¡¿ÉÄܵÄʹÓÃdstdomain ACL ÀàÐÍÀ´´úÌædst¡£
ÈçÏÂÊǼòµ¥µÄdst ACL ʾÀý£º
acl AdServers dst 1.2.3.0/24
Çë×¢Ò⣬dst ACL ´æÔÚµÄÎÊÌâÊÇ£¬ÄãÊÔͼÔÊÐí»ò¾Ü¾ø·ÃÎʵÄԭʼ·þÎñÆ÷¿ÉÄÜ»á¸Ä±äËüµÄIP µØÖ·¡£¼ÙÈçÄã²»¹ØÐÄÕâÑùµÄ¸Ä±ä£¬ÄǾͲ»±ØÂ鷳ȥÉý¼¶squid.conf¡£Äã¿ÉÒÔÔÚacl ÐÐÀï·ÅÉÏÖ÷»úÃû£¬µ«ÄÇÑù»áÑÓ»ºÆô¶¯ËÙ¶È¡£¼ÙÈçÄãµÄACL ÐèÒªÐí¶àÖ÷»úÃû£¬ÄãÒ²Ðí¸ÃÔ¤´¦ÀíÅäÖÃÎļþ£¬½«Ö÷»úÃûת»»³ÉIP µØÖ·¡£

6.1.2.3 myip
myip ÀàÐÍÖ¸Squid µÄIP µØÖ·£¬Ëü±»¿Í»§Á¬½Ó¡£µ±ÄãÔÚsquid »úÉÏÔËÐÐnetstat -n ʱ£¬Äã¼ûµ½ËüÃÇλÓÚ±¾µØµØÖ·ÁС£´ó²¿·Ösquid °²×°²»Ê¹ÓøÃÀàÐÍ¡£Í¨³£ËùÓеĿͻ§Á¬½Óµ½Í¬Ò»¸öIP µØÖ·£¬ËùÒÔ¸ÃACLÔªËØ½ö½öµ±ÏµÍ³Óжà¸öIP µØÖ·Ê±²ÅÓÐÓá£
ΪÁËÀí½âmyipΪºÎÓÐÓ㬿¼ÂÇij¸öÓÐÁ½¸ö×ÓÍøµÄ¹«Ë¾ÍøÂç¡£ÔÚ×ÓÍø1µÄÓû§ÊdzÌÐòÔ±ºÍ¹¤³Ìʦ¡£×ÓÍø2°üÀ¨»á¼Æ£¬Êг¡ºÍÆäËû¹ÜÀí²¿ÃÅ¡£ÕâÑùÇé¿öϵÄsquid ÓÐÈý¸öÍøÂç½Ó¿Ú£ºÒ»¸öÁ¬½Ó×ÓÍø1£¬Ò»¸öÁ¬½Ó×ÓÍø2£¬µÚÈý¸öÁ¬½Óµ½ÍⲿÒòÌØÍø¡£
µ±ÕýÈ·µÄÅäÖÃʱ£¬ËùÓÐÔÚ×ÓÍø1 µÄÓû§Á¬½Óµ½squid λÓÚ¸Ã×ÓÍøµÄIP µØÖ·£¬ÀàËÆµÄ£¬×ÓÍø2 µÄÓû§Á¬½Óµ½squid µÄµÚ¶þ¸öIP µØÖ·¡£ÕâÑùÄã¾Í¿ÉÒÔ¸øÓè×ÓÍø1 µÄ¼¼Êõ²¿Ô±¹¤ÍêÈ«µÄ·ÃÎÊȨ£¬È»¶øÏÞÖÆ¹ÜÀí²¿ÃŵÄÔ±¹¤½ö½öÄÜ·ÃÎʹ¤×÷Ïà¹ØµÄÕ¾µã¡£
ACL ¿ÉÄÜÈçÏ£º
acl Eng myip 172.16.1.5
acl Admin myip 172.16.2.5
È»¶øÇë×¢Ò⣬ʹÓøûúÖÆÄã±ØÐëÌØ±ðСÐÄ£¬×èÖ¹À´×Ôij¸ö×ÓÍøµÄÓû§Á¬½Ósquid λÓÚÁíÒ»×ÓÍøµÄIP µØÖ·¡£·ñÔò£¬ÔÚ»á¼ÆºÍÊг¡×ÓÍøµÄ´ÏÃ÷µÄÓû§£¬Äܹ»Í¨¹ý¼¼Êõ²¿×ÓÍø½øÐÐÁ¬½Ó£¬´Ó¶øÈƹýÄãµÄÏÞÖÆ¡£

6.1.2.4 dstdomain
ÔÚijЩÇé¿öÏ£¬Äã·¢ÏÖ»ùÓÚÃû×ֵķÃÎÊ¿ØÖƷdz£ÓÐÓá£Äã¿ÉÒÔʹÓÃËüÃÇÈ¥×èÈû¶ÔijЩվµãµÄ·ÃÎÊ£¬È¥¿ØÖÆsquid ÈçºÎת·¢ÇëÇó£¬ÒÔ¼°ÈÃijЩÏìÓ¦²»¿É»º´æ¡£dstdomain Ö®ËùÒԷdz£ÓÐÓã¬ÊÇÒòΪËü¼ì²éÇëÇóurl ÀïµÄÖ÷»úÃû¡£
È»¶øÊ×ÏÈÎÒÏëÉêÃ÷ÈçÏÂÁ½ÐеIJ»Í¬£º
acl A dst www.squid-cache.org
acl B dstdomain www.squid-cache.org
A ʵ¼ÊÉÏÊÇIP µØÖ·ACL¡£µ±Squid ½âÎöÅäÖÃÎļþʱ£¬Ëü²éѯwww.squid-cache.org µÄIPµØÖ·£¬²¢½«ËüÃÇ´æÔÚÄÚ´æÀï¡£Ëü²»±£´æÃû×Ö¡£¼ÙÈçÔÚsquid ÔËÐÐʱIP µØÖ·¸Ä±äÁË£¬squid »á¼ÌÐøÊ¹ÓþɵĵØÖ·¡£
È»¶ødstdomain ACL ÒÔÓòÃûÐÎʽ´æ´¢£¬²¢·ÇIP µØÖ·¡£µ±squid ¼ì²éACL B ʱ£¬Ëü¶ÔURLµÄÖ÷»úÃû²¿·ÖʹÓÃ×Ö·û´®±È½Ï¹¦ÄÜ¡£ÔÚ¸ÃÇéÐÎÏ£¬Ëü²¢²»ÕæÕý¹ØÐÄÊÇ·ñwww.squid-cache.org
µÄIP µØÖ·¸Ä±äÁË¡£
ʹÓÃdstdomain ACL µÄÖ÷ÒªÎÊÌâÊÇijЩURL ʹÓÃIP µØÖ·´úÌæÖ÷»úÃû¡£¼ÙÈçÄãµÄÄ¿±êÊÇʹÓÃdstdomain ACL À´×èÈû¶ÔijЩվµãµÄ·ÃÎÊ£¬´ÏÃ÷µÄÓû§ÄÜÊÖ¹¤²éѯվµãµÄIP µØÖ·£¬È»ºó½«ËüÃÇ·ÅÔÚURL Àï¡£ÀýÈ磬ÏÂÃæµÄ2 ÐÐURL ´øÀ´Í¬ÑùµÄÒ³Ãæ£º
http://www.squid-cache.org/docs/FAQ/
http://206.168.0.9/docs/FAQ/
µÚÒ»ÐÐÄܱ»dstdomain ACL ÇáÒׯ¥Å䣬µ«µÚ¶þÐв»ÄÜ¡£ÕâÑù£¬¼ÙÈçÄãÒÀ¿¿dstdomain ACL£¬ÄãÒ²¸ÃͬÑù×èÈûËùÓÐʹÓÃIP µØÖ·´úÌæÖ÷»úÃûµÄÇëÇó¡£Çë¼û6.3.8 Õ½ڡ£

6.1.2.5 srcdomain
srcdomain ACL Ò²ÓеãÂé·³¡£ËüÒªÇó¶Ôÿ¸ö¿Í»§IP µØÖ·½øÐÐËùνµÄ·´ÏòDNS ²éѯ¡£¼¼ÊõÉÏ£¬squid ÇëÇó¶Ô¸ÃµØÖ·µÄDNS PTR ¼Ç¼¡£DNS µÄÏìÓ¦--ÍêÕû¿ÉÑéÖ¤ÓòÃû(FQDN)--ÊÇsquidÆ¥ÅäACL ÖµµÄ¶«Î÷¡££¨Çë²Î¿¼O'Reilly's DNS and BIND ÕÒµ½¸ü¶à¹ØÓÚDNS PTR ¼Ç¼µÄÐÅÏ¢£©Ê¹ÓÃdst ACL,FQDN ²éѯ»áµ¼ÖÂÑÓʱ¡£ÇëÇó»á±»ÑÓ»º´¦ÀíÖ±µ½FQDN ÏìÓ¦·µ»Ø¡£FQDNÏìÓ¦±»»º´æÏÂÀ´£¬ËùÒÔsrcdomain ²éѯͨ³£½öÔÚ¿Í»§Ê×´ÎÇëÇóʱÑÓʱ¡£
²»ÐÒµÄÊÇ£¬srcdomain ²éѯÓÐʱ²»Äܹ¤×÷¡£Ðí¶à×éÖ¯²¢Ã»Óб£³ÖËûÃǵķ´Ïò²éѯÊý¾Ý¿âÓëÈÕ¸üС£¼ÙÈçijµØÖ·Ã»ÓÐPTR ¼Ç¼£¬ACL ¼ì²éʧ°Ü¡£ÔÚ¸ÃÇéÐÎÏ£¬ÇëÇó¿ÉÄÜ»áÑÓʱ·Ç³£³¤Ê±¼ä£¨ÀýÈç2 ·ÖÖÓ£©Ö±µ½DNS ²éѯ³¬Ê±¡£¼ÙÈçÄãʹÓÃsrcdomain ACL£¬ÇëÈ·ÈÏÄã×Ô¼ºµÄDNS in-addr.arpa ÇøÓòÅäÖÃÕýÈ·²¢ÇÒÔÚ¹¤×÷ÖС£¼ÙÈçÕâÑù£¬Äã¿ÉÒÔʹÓÃÈçϵÄACL£º
acl LocalHosts srcdomain .users.example.com

6.1.2.6 port
ÄãºÜ¿ÉÄÜÏëʹÓÃport ACL À´ÏÞÖÆ¶ÔijЩԭʼ·þÎñÆ÷¶Ë¿ÚºÅµÄ·ÃÎÊ¡£¾ÍÏñÎÒ¼´½«½²µ½µÄ£¬squid Æäʵ²»Á¬½Óµ½Ä³Ð©·þÎñ£¬ÀýÈçemail ºÍIRC ·þÎñ¡£port ACL ÔÊÐíÄ㶨Òåµ¥¶ÀµÄ¶Ë¿Ú»ò¶Ë¿Ú·¶Î§¡£ÀýÈ磺
acl HTTPports port 80 8000-8010 8080
HTTP ÔÚÉè¼ÆÉÏÓëÆäËûЭÒéÀàËÆ£¬ÀýÈçSMTP¡£ÕâÒâζ×Å´ÏÃ÷µÄÓû§Í¨¹ýת·¢email ÏûÏ¢µ½SMTP ·þÎñÆ÷ÄÜÆÛÆ­squid¡£Email ת·¢ÊÇÀ¬»øÓʼþµÄÖ÷ÒªÔ­ÒòÖ®Ò»£¬ÎÒÃDZØÐë´¦ÀíËüÃÇ¡£ÀúÊ·ÉÏ£¬À¬»øÓʼþÓÐÕæÕýµÄÓʼþ·þÎñÆ÷¡£È»¶ø½üÀ´£¬Ô½À´Ô½¶àµÄÀ¬»øÓʼþÖÆÔìÕßʹÓÿª·ÅHTTP ´úÀíÀ´Òþ²ØËûÃǵÄ×Ù¼£¡£Äã¿Ï¶¨²»ÏëSquid ±»µ±³ÉÀ¬»øÓʼþת·¢Æ÷¡£¼ÙÈçÊÇÕâÑù£¬ÄãµÄIP µØÖ·ºÜ¿ÉÄܱ»Ðí¶àÓʼþת·¢ºÚÃûµ¥¶³½á£¨MAPS,ORDB,spamhaus µÈ£©¡£³ýemail Ö®Í⣬»¹ÓÐÆäËûÐí¶àTCP/IP ·þÎñÊÇsquid ²»ÓëÆäͨÐŵġ£ÕâЩ°üÀ¨IRC,Telnet,POP,ºÍNNTP¡£ÄãµÄÕë¶Ô¶Ë¿ÚµÄ²ßÂÔ±ØÐë±»ÅäÖóɾܾøÒÑ֪ΣÏն˿ڣ¬²¢ÔÊÐíÊ£Ïµģ»»òÕßÔÊÐíÒÑÖª°²È«¶Ë¿Ú£¬²¢¾Ü¾øÊ£Ïµġ£
ÎÒµÄ̬¶È±È½Ï±£ÊØ£¬½ö½öÔÊÐí°²È«µÄ¶Ë¿Ú¡£Ä¬ÈϵÄsquid.conf °üº¬ÁËÏÂÃæµÄ°²È«¶Ë¿ÚACL£º
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
http_access deny !Safe_ports
ÕâÊǸö½ÏÃ÷ÖǵÄÅäÖá£ËüÔÊÐíÓû§Á¬½Óµ½ÈκηÇÌØÈ¨¶Ë¿Ú£¨1025£­65535£©£¬µ«½ö½öÖ¸¶¨µÄÌØÈ¨¶Ë¿Ú¿ÉÒÔ±»Á¬½Ó¡£¼ÙÈçÄãµÄÓû§ÊÔͼ·ÃÎÊij¸öURLÈçÏ£ºhttp://www.lrrr.org:123/£¬squid»á·µ»Ø·ÃÎʾܾø´íÎóÏûÏ¢¡£ÔÚijЩÇéÐÎÏ£¬ÎªÁËÈÃÄãµÄÓû§ÂúÒ⣬Äã¿ÉÄÜÐèÒªÔö¼ÓÁíÍâµÄ¶Ë¿ÚºÅ¡£
¿íËɵÄ×ö·¨ÊÇ£¬¾Ü¾ø¶ÔÌØ±ðΣÏյĶ˿ڵķÃÎÊ¡£Squid FAQ °üÀ¨ÁËÈçÏÂʾÀý£º
acl Dangerous_ports 7 9 19 22 23 25 53 109 110 119
http_access deny Dangerous_ports
ʹÓÃDangerous_ports µÄ±×¶ËÊÇsquid ¶Ô¼¸ºõÿ¸öÇëÇó¶¼ÒªËÑË÷Õû¸öÁÐ±í¡£Õâ¶ÔCPU Ôì³ÉÁ˶îÍâµÄ¸ºµ£¡£´ó¶àÊýÇé¿öÏ£¬99%µ½´ïsquidµÄÇëÇóÊǶÔ80¶Ë¿ÚµÄ£¬Ëü²»³öÏÖÔÚΣÏÕ¶Ë¿ÚÁбíÀï¡£ËùÓÐÇëÇó¶Ô¸Ã±íµÄËÑË÷²»»áµ¼ÖÂÆ¥Åä¡£µ±È»£¬ÕûÊý±È½ÏÊÇ¿ìËٵIJÙ×÷£¬²»»áÏÔȻӰÏìÐÔÄÜ¡£
£¨ÒëÕß×¢£ºÕâÀïµÄÒâ˼ÊÇ£¬Á½Õß¶¼Òª¶ÔÁÐ±í½øÐÐËÑË÷ºÍÆ¥Åä¡£ÔÚµÚÒ»ÖÖÇé¿öÏ£¬ËüËÑË÷°²È«¶Ë¿ÚÁÐ±í²¢Æ¥Åä80£¬ÏÔÈ»µÚÒ»¸öÔªËØ¾ÍÆ¥Åä³É¹¦ÁË¡£¶øµÚ¶þÖÖÇé¿öÖУ¬»áËÑË÷ΣÏÕ¶Ë¿ÚÁÐ±í²¢ÊÔͼƥÅä80£¬µ±È»Î£Ïն˿ڲ»»á°üÀ¨80£¬ËùÒÔÿ´Î¶Ô80 µÄÇëÇó¶¼ÒªËÑË÷ÍêÕû¸öÁÐ±í£¬ÕâÑù¾Í»áÓ°ÏìÐÔÄÜ¡££©

6.1.2.7 myport
squid Ò²ÓÐmyport ACL¡£port ACL Ö¸Ïòԭʼ·þÎñÆ÷µÄ¶Ë¿ÚºÅ£¬myport Ö¸Ïòsquid ×Ô¼ºµÄ¶Ë¿ÚºÅ£¬ÓÃÒÔ½ÓÊܿͻ§ÇëÇó¡£¼ÙÈçÄãÔÚhttp_port Ö¸ÁîÀïÖ¸¶¨²»Ö¹Ò»¸ö¶Ë¿ÚºÅ£¬ÄÇôsquid ¾Í¿ÉÒÔÔÚ²»Í¬µÄ¶Ë¿ÚÉÏÕìÌý¡£
¼ÙÈçÄ㽫squid ×÷ΪվµãHTTP ¼ÓËÙÆ÷ºÍÓû§´úÀí·þÎñÆ÷£¬ÄÇômyport ACL ÌØ±ðÓÐÓá£Äã¿ÉÒÔÔÚ80 ÉϽÓÊܼÓËÙÇëÇó£¬ÔÚ3128 ÉϽÓÊÜ´úÀíÇëÇó¡£Äã¿ÉÄÜÏëÈÃËùÓÐÈË·ÃÎʼÓËÙÆ÷£¬µ«½ö½öÄã×Ô¼ºµÄÓû§ÄÜÒÔ´úÀíÐÎʽ·ÃÎÊsquid¡£ÄãµÄACL ¿ÉÄÜÈçÏ£º
acl AccelPort myport 80
acl ProxyPort myport 3128
acl MyNet src 172.16.0.0/22
http_access allow AccelPort # anyone
http_access allow ProxyPort MyNet # only my users
http_access deny ProxyPort # deny others

6.1.2.8 method
method ACL Ö¸HTTP ÇëÇó·½·¨¡£GET ÊǵäÐ͵Ä×î³£Ó÷½·¨£¬½ÓÏÂÀ´ÊÇPOST,PUT£¬ºÍÆäËû¡£ÏÂÀý˵Ã÷ÈçºÎʹÓÃmethod ACL£º
acl Uploads method PUT POST
Squid ÖªµÀÏÂÁбê×¼HTTP ·½·¨£ºGET, POST, PUT, HEAD, CONNECT, TRACE,OPTIONS ºÍDELETE¡£ÁíÍ⣬squid Á˽âÏÂÁÐÀ´×ÔWEBDAV ¹æ·¶£¬RFC 2518 µÄ·½·¨£ºPROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK¡£Ä³Ð©Microsoft ²úƷʹÓ÷DZê×¼µÄWEBDAV ·½·¨£¬ËùÒÔsquid Ò²Á˽âËüÃÇ£ºBMOVE, BDELETE, BPROPFIND¡£×îºó£¬Äã¿ÉÒÔÔÚextension_methods Ö¸ÁîÀïÅäÖÃsquid È¥Àí½âÆäËûµÄÇëÇó·½·¨¡£Çë¼û¸½Â¼A¡£
×¢ÒâCONNECT ·½·¨·Ç³£ÌØÊâ¡£ËüÊÇÓÃÓÚͨ¹ýHTTP ´úÀíÀ´·âװijÖÖÇëÇóµÄ·½·¨£¨Çë¼ûRFC 2817:Upgrading to TLS Within HTTP/1.1£©¡£ÔÚ´¦ÀíCONNECT ·½·¨ºÍÔ¶³Ì·þÎñÆ÷µÄ¶Ë¿ÚºÅÊ±Ó¦ÌØ±ð½÷É÷¡£¾ÍÏñÇ°ÃæÕ½ڽ²¹ýµÄÒ»Ñù£¬Ä㲻ϣÍûsquid Á¬½Óµ½Ä³Ð©Ô¶³Ì·þÎñ¡£Äã¸ÃÏÞÖÆCONNECT ·½·¨½ö½öÄÜÁ¬½Óµ½HTTPS/SSL »òNNTPS ¶Ë¿Ú£¨443 ºÍ563£©¡£Ä¬ÈϵÄsquid.conf ÕâÑù×ö£º
acl CONNECT method CONNECT
acl SSL_ports 443 563
http_access allow CONNECT SSL_ports
http_access deny CONNECT
ÔÚ¸ÃÅäÖÃÀsquid ½ö½öÔÊÐí¼ÓÃÜÇëÇóµ½¶Ë¿Ú443£¨HTTPS/SSL£©ºÍ563£¨NNTPS£©¡£CONNECT ·½·¨¶ÔÆäËû¶Ë¿ÚµÄÇëÇó¶¼±»¾Ü¾ø¡£
PURGE ÊÇÁíÒ»¸öÌØÊâµÄÇëÇó·½·¨¡£ËüÊÇSquid µÄרÓз½·¨£¬Ã»ÓÐÔÚÈκÎRFC ÀﶨÒå¡£ËüÈùÜÀíÔ±ÄÜÇ¿ÖÆÉ¾³ý»º´æ¶ÔÏó¡£¼ÈÈ»¸Ã·½·¨ÓÐЩΣÏÕ£¬squid ĬÈϾܾøPURGE ÇëÇ󣬳ý·ÇÄ㶨ÒåÁËACL ÒýÓÃÁ˸÷½·¨¡£·ñÔò£¬ÈκÎÄÜ·ÃÎÊcache ÕßÒ²ÐíÄܹ»É¾³ýÈÎÒ⻺´æ¶ÔÏó¡£ÎÒÍÆ¼ö½ö½öÔÊÐíÀ´×Ôlocalhost µÄPURGE:
acl Purge method PURGE
acl Localhost src 127.0.0.1
http_access allow Purge Localhost
http_access deny Purge
¹ØÓÚ´Ósquid µÄ»º´æÀïɾ³ý¶ÔÏó£¬Çë¼û7.6 Õ¡£

6.1.2.9 proto
¸ÃÀàÐÍÖ¸URI ·ÃÎÊ£¨»ò´«Ê䣩ЭÒé¡£ÈçÏÂÊÇÓÐЧֵ£ºhttp, https (same as HTTP/TLS), ftp,gopher, urn, whois, ºÍcache_object¡£Ò²¾ÍÊÇ˵£¬ÕâЩÊDZ»squid Ö§³ÖµÄURL »úÖÆÃû×Ö¡£ÀýÈ磬¼ÙÈçÄãÏë¾Ü¾øËùÓеÄFTP ÇëÇó£¬Äã¿ÉÒÔʹÓÃÏÂÁÐÖ¸Á
acl FTP proto FTP
http_access deny FTP
cache_object»úÖÆÊÇsquidµÄÌØÐÔ¡£ËüÓÃÓÚ·ÃÎÊsquidµÄ»º´æ¹ÜÀí½Ó¿Ú£¬ÎÒ½«ÔÚ14.2 ÕÂÌÖÂÛËü¡£²»ÐÒµÄÊÇ£¬Ëü²¢·ÇºÃÃû×Ö£¬¿ÉÄܻᱻ¸Ä±ä¡£
ĬÈϵÄsquid.conf ÎļþÓÐÐí¶àÐÐÏÞÖÆ»º´æ¹ÜÀí·ÃÎÊ£º
acl Manager proto cache_object
acl Localhost src 127.0.0.1
http_access allow Manager Localhost
http_access deny Manager
ÕâЩÅäÖÃÐнöÔÊÐíÀ´×Ô±¾»úµØÖ·µÄ»º´æ¹ÜÀíÇëÇó£¬ËùÓÐÆäËûµÄ»º´æ¹ÜÀíÇëÇ󱻾ܾø¡£ÕâÒâζ×ÅÔÚsquid »úÆ÷ÉÏÓÐÕʺŵÄÈË£¬ÄÜ·ÃÎʵ½Ç±ÔÚµÄÃô¸Ð»º´æ¹ÜÀíÐÅÏ¢¡£ÄãÒ²ÐíÏëÐ޸Ļº´æ¹ÜÀí·ÃÎÊ¿ØÖÆ£¬»ò¶ÔÄ³Ð©Ò³ÃæÊ¹ÓÃÃÜÂë±£»¤¡£ÎÒ½«ÔÚ14.2.2 ÕÂÀï̸ÂÛµ½¡£

6.1.2.10 time
time ACL ÔÊÐíÄã¿ØÖÆ»ùÓÚʱ¼äµÄ·ÃÎÊ£¬Ê±¼äΪÿÌìÖеľßÌåʱ¼ä£¬ºÍÿÖÜÖеÄÿÌì¡£ÈÕÆÚÒÔµ¥×ÖĸÀ´±íʾ£¬¼ûÈçÏÂ±í¡£Ê±¼äÒÔ24 Ð¡Ê±ÖÆÀ´±íʾ¡£¿ªÊ¼Ê±¼ä±ØÐëСÓÚ½áÊøÊ±¼ä£¬ÕâÑùÔÚ±àд¿çÔ½0 µãµÄtime ACL ʱ¿ÉÄÜÓеãÂé·³¡£
Code____Day
-----------------
S_______Sunday
M_______Monday
T_______Tuesday
W_______Wednesday
H_______Thursday
F_______Friday
A_______Saturday
D_______All weekdays (M-F)
-----------------
ÈÕÆÚºÍʱ¼äÓÉlocaltime()º¯ÊýÀ´²úÉú¡£ÇëÈ·ÈÏÄãµÄ¼ÆËã»úλÓÚÕýÈ·µÄÊ±Çø£¬ÄãÒ²¸ÃÈÃÄãµÄʱÖÓÓë±ê׼ʱ¼äͬ²½¡£
ΪÁ˱àдtime ACL À´Æ¥ÅäÄãµÄ¹¤×÷ʱ¼ä£¬Äã¿ÉÒÔÕâÑùд£º
acl Working_hours MTWHF 08:00-17:00
or:
acl Working_hours D 08:00-17:00
ÈÃÎÒÃÇ¿´Ò»¸öÂé·³µÄÀý×Ó¡£Ò²ÐíÄãÊÇij¸öISP£¬ÔÚÏÂÎç8 µãµ½ÔçÉÏ4 µãÕâ¶Î²»Ã¦µÄʱ¼äÄÚ·ÅËÉ·ÃÎÊ¡£¼ÈÈ»¸Ãʱ¼ä¿çÔ½×ÓÒ¹£¬Äã²»Äܱàд¡°20:00-04:00¡±¡£´úÌæµÄ£¬ÄãÐèÒª°ÑËüÃÇ·Ö³ÉÁ½¸öACL À´Ð´£¬»òÕßʹÓ÷ñ¶¨»úÖÆÀ´¶¨Òå·Çæʱ¡£ÀýÈ磺
acl Offpeak1 20:00-23:59
acl Offpeak2 00:00-04:00
http_access allow Offpeak1 ...
http_access allow Offpeak2 ...
ÁíÍ⣬Äã¿ÉÒÔÕâÑùд£º
acl Peak 04:00-20:00
http_access allow !Peak ...
¾¡¹Üsquid ÔÊÐí£¬ÄãÒ²²»Ó¦¸ÃÔÚͬһ¸ötime ACL Àï·ÅÖöà¸öÈÕÆÚºÍʱ¼ä·¶Î§ÁÐ±í¡£¶ÔÕâЩACL µÄ½âÎö²»Ò»¶¨ÊÇÄãÏëÏóµÄÄÇÑù¡£ÀýÈ磬¼ÙÈçÄãÊäÈ룺
acl Blah time M 08:00-10:00 W 09:00-11:00
ʵ¼ÊÄÜ×öµ½µÄÊÇ£º
acl Blah time MW 09:00-11:00
½âÎö½ö½öʹÓÃ×îºóÒ»¸öʱ¼ä·¶Î§¡£ÕýÈ·µÄд·¨ÊÇ£¬½«ËüÃÇд½øÁ½ÐУº
acl Blah time M 08:00-10:00
acl Blah time W 09:00-11:00

6.1.2.11 ident
ident ACL Æ¥Åä±»ident ЭÒé·µ»ØµÄÓû§Ãû¡£ÕâÊǸö¼òµ¥µÄЭÒ飬ÎĵµÊÇRFC 1413¡£Ëü¹¤×÷¹ý³ÌÈçÏ£º
1.Óû§´úÀí£¨¿Í»§¶Ë£©¶Ôsquid ½¨Á¢TCP Á¬½Ó¡£
2.squid Á¬½Óµ½¿Í»§ÏµÍ³µÄident ¶Ë¿Ú£¨113£©¡£
3.squid ·¢ËÍÒ»¸ö°üÀ¨Á½¸öTCP ¶Ë¿ÚºÅµÄÐС£squid ¶ËµÄ¶Ë¿ÚºÅ¿ÉÄÜÊÇ3128£¨»òÕßÄãÔÚsquid.conf ÀïÅäÖõĶ˿ںţ©£¬¿Í»§¶ËµÄ¶Ë¿ÚºÅÊÇËæ»úµÄ¡£
4.¿Í»§¶ËµÄident ·þÎñÆ÷·µ»Ø´ò¿ªµÚÒ»¸öÁ¬½ÓµÄ½ø³ÌµÄÓû§Ãû¡£
5.squid ¼Ç¼ÏÂÓû§ÃûÓÃÓÚ·ÃÎÊ¿ØÖÆÄ¿µÄ£¬²¢ÇҼǼµ½access.log¡£
µ±squid Óöµ½¶ÔÌØÊâÇëÇóµÄident ACL ʱ£¬¸ÃÇëÇó±»ÑÓʱ£¬Ö±µ½ident ²éѯÍê³É¡£ÕâÑù£¬ident ACL ¿ÉÒÔ¶ÔÄãµÄÓû§ÇëÇóÔì³ÉÑÓʱ¡£
ÎÒÃÇÍÆ¼ö½ö½öÔÚ±¾µØ¾ÖÓòÍøÖУ¬²¢ÇҴ󲿷ֿͻ§¹¤×÷Õ¾ÔËÐÐident ·þÎñʱ£¬²ÅʹÓÃident ACL¡£¼ÙÈçsquid ºÍ¿Í»§¹¤×÷Õ¾Á¬ÔÚÒ»¸ö¾ÖÓòÍøÀident ACL ¹¤×÷Á¼ºÃ¡£¿ç¹ãÓòÍøÊ¹ÓÃidentÄÑÒԳɹ¦¡£
ident ЭÒé²¢·ÇºÜ°²È«¡£¶ñÒâµÄÓû§ÄÜÌæ»»ËûÃǵÄÕý³£ident ·þÎñΪ¼Ùð·þÎñ£¬²¢·µ»ØÈÎÒâµÄËûÃÇÑ¡ÔñµÄÓû§Ãû¡£ÀýÈ磬¼ÙÈçÎÒÖªµÀ´Óadministrator Óû§µÄÁ¬½Ó×ÜÊDZ»ÔÊÐí£¬ÄÇôÎÒ¿ÉÒÔд¸ö¼òµ¥µÄ³ÌÐò£¬Ôڻشðÿ¸öident ÇëÇóʱ¶¼·µ»ØÕâ¸öÓû§Ãû¡£
Äã¿ÉÒÔʹÓÃident ACL À¹½Øcache£¨Çë¼ûµÚ9 Õ£©¡£µ±squid ±»ÅäÖóÉÀ¹½Øcache ʱ£¬²Ù×÷ϵͳ¼ÙÉèËü×Ô¼ºÊÇԭʼ·þÎñÆ÷¡£ÕâÒâζ×ÅÓÃÓÚÀ¹½ØTCP Á¬½ÓµÄ±¾µØsocket µØÖ·ÓÐԭʼ·þÎñÆ÷µÄIP µØÖ·¡£¼ÙÈçÄãÔÚsquid ÉÏÔËÐÐnetstat -n ʱ£¬Äã¿ÉÒÔ¿´µ½´óÁ¿µÄÍⲿIP µØÖ·³öÏÖÔÚ±¾µØµØÖ·À¸Àï¡£µ±squid ·¢ÆðÒ»¸öident ²éѯʱ£¬Ëü´´½¨Ò»¸öеÄTCP Ì×½Ó×Ö£¬²¢°ó¶¨±¾µØÖյ㵽ͬһ¸öIP µØÖ·ÉÏ£¬×÷Ϊ¿Í»§TCP Á¬½ÓµÄ±¾µØÖյ㡣¼ÈÈ»±¾µØµØÖ·²¢·ÇÕæÕýÊDZ¾µØµÄ£¨Ëü¿ÉÄÜÓëԭʼ·þÎñÆ÷IP µØÖ·Ïà¾àÒ£Ô¶£©£¬bind()ϵͳµ÷ÓÃʧ°Ü¡£squid ½«Õâ¸ö×÷Ϊʧ°ÜµÄident²éѯÀ´´¦Àí¡£
×¢ÒâsquidÒ²ÓиöÌØÐÔ£¬¶Ô¿Í»§¶ËÖ´ÐÐÀÁ¶èident ²éѯ¡£ÔÚ¸ÃÇéÐÎÏ£¬Ôڵȴýident ²éѯʱ£¬ÇëÇó²»»áÑÓʱ¡£ÔÚHTTP ÇëÇóÍê³Éʱ£¬squid ¼Ç¼ident ÐÅÏ¢£¬¼ÙÈçËü¿ÉÓá£ÄãÄÜʹÓÃident_lookup_access Ö¸ÁîÀ´¼¤»î¸ÃÌØÐÔ£¬ÎÒ½«ÔÚ±¾ÕºóÃæÌÖÂÛ¡£

6.1.2.12 proxy_auth
squid ÓÐÒ»Ì×ÓÐÁ¦µÄ£¬ÔÚijÖ̶ֳÈÉÏÓеã»ìÂÒµÄÌØÐÔ£¬ÓÃÒÔÖ§³ÖHTTP ´úÀíÑéÖ¤¹¦ÄÜ¡£Ê¹ÓôúÀíÑéÖ¤£¬¿Í»§µÄ°üÀ¨Í·²¿µÄhttp ÇëÇó°üº¬ÁËÑéÖ¤ÐÅÓÃÑ¡Ïͨ³££¬Õâ¼òµ¥µÄÊÇÓû§ÃûºÍÃÜÂë¡£squid ½âÃÜÐÅÓÃÑ¡Ï²¢µ÷ÓÃÍⲿÑéÖ¤³ÌÐòÒÔ·¢ÏÖ¸ÃÐÅÓÃÑ¡ÏîÊÇ·ñÓÐЧ¡£
squid µ±Ç°Ö§³ÖÈýÖÖ¼¼ÊõÒÔ½ÓÊÜÓû§ÑéÖ¤£ºHTTP »ù±¾Ð­Ò飬Êý×ÖÈÏ֤ЭÒ飬ºÍNTLM¡£»ù±¾ÈÏÖ¤ÒѾ­·¢Õ¹ÁËÏ൱³¤Ê±¼ä¡£°´½ñÌìµÄ±ê×¼£¬ËüÊǷdz£²»°²È«µÄ¼¼Êõ¡£Óû§ÃûºÍÃÜÂëÒÔÃ÷ÎÄͬʱ·¢ËÍ¡£Êý×ÖÈÏÖ¤¸ü°²È«£¬µ«Ò²¸ü¸´ÔÓ¡£»ù±¾ºÍÊý×ÖÈÏÖ¤ÔÚRFC 2617 ÎĵµÀï±»ÃèÊö¡£NTLM Ò²±È»ù±¾ÈÏÖ¤¸ü°²È«¡£È»¶ø£¬ËüÊÇMicrosoft ·¢Õ¹µÄרÓÐЭÒé¡£ÉÙÊýsquid ¿ª·¢ÕßÒѾ­»ù±¾Íê³ÉÁ˶ÔËüµÄ·´Ïò¹¤³Ì¡£
ΪÁËʹÓôúÀíÑéÖ¤£¬Äã±ØÐëÅäÖÃsquid ʹÓôóÁ¿µÄÍⲿ¸¨Öú³ÌÐò¡£squid Ô´´úÂëÀï°üº¬ÁËһЩ³ÌÐò£¬ÓÃÓÚ¶ÔÐí¶à±ê×¼Êý¾Ý¿â°üÀ¨LDAP,NTLM,NCSA ÀàÐ͵ÄÃÜÂëÎļþ£¬ºÍ±ê×¼UnixÃÜÂëÊý¾Ý¿â½øÐÐÈÏÖ¤¡£auth_param Ö¸Áî¿ØÖÆ¶ÔËùÓи¨Öú³ÌÐòµÄÅäÖá£ÎÒ½«ÔÚ12 ÕÂÀïÌÖÂÛÕâЩϸ½Ú¡£
auth_param Ö¸ÁîºÍproxy_auth ACL ÊÇÉÙÊýÔÚÅäÖÃÎļþÀï˳ÐòÖØÒªµÄʵÀý¡£Äã±ØÐëÔÚproxy_auth ACL ֮ǰ¶¨ÒåÖÁÉÙÒ»¸öÑéÖ¤¸¨Öú³ÌÐò£¨Ê¹ÓÃauth_param£©¡£¼ÙÈçÄãûÓÐÕâÑù×ö£¬squid ´òÓ¡³ö´íÎóÏûÏ¢£¬²¢ÇÒºöÂÔproxy_auth ACL¡£Õâ²¢·ÇÖÂÃü´íÎó£¬ËùÒÔsquid ¿ÉÒÔÆô¶¯£¬µ«ËùÓÐÄãµÄÓû§µÄÇëÇó¿ÉÄܱ»¾Ü¾ø¡£
proxy_auth ACL È¡Óû§Ãû×÷Ϊֵ¡£È»¶ø£¬´ó²¿·Ö°²×°Àï¼òµ¥µÄʹÓÃÌØÊâÖµREQUIRED£ºauth_param ...
acl Auth1 proxy_auth REQUIRED
ÔÚ¸ÃÇé¿öÖУ¬ÈκξßÓÐÓÐЧÐÅÓÃÑ¡ÏîµÄÇëÇó»áÆ¥Åä¸ÃACL¡£¼ÙÈçÄãÐèҪϸ»¯¿ØÖÆ£¬Äã¿ÉÒÔÖ¸¶¨¶ÀÁ¢µÄÓû§Ãû£º
auth_param ...
acl Auth1 proxy_auth allan bob charlie
acl Auth2 proxy_auth dave eric frank
´úÀíÑéÖ¤²»Ö§³ÖHTTP À¹½Ø£¬ÒòΪÓû§´úÀí²»ÖªµÀËüÔÚÓë´úÀí·þÎñÆ÷£¬¶ø·Çԭʼ·þÎñÆ÷ͨÐÅ¡£Óû§´úÀí²»ÖªµÀÔÚÇëÇóÀï·¢ËÍProxy-Authorization Í·²¿¡£¼û9.2 Õ¸ü¶àϸ½Ú¡£

6.1.2.13 src_as
¸ÃÀàÐͼì²é¿Í»§Ô´IP µØÖ·ËùÊôµÄ¾ßÌåAS ºÅ£¨¼û6.1.1.6 ¹ØÓÚsquid ÈçºÎ½«AS ºÅÓ³Éäµ½IP µØÖ·µÄÐÅÏ¢£©¡£×÷ΪʾÀý£¬ ÎÒÃÇÐ鹹ijISP ʹÓÃAS 64222 ²¢ÇÒͨ¸æÊ¹ÓÃ10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 ÍøÂç¡£Äã¿ÉÒÔ±àдÕâÑùµÄACL£¬ËüÔÊÐíÀ´×Ô¸ÃISP µØÖ·¿Õ¼äµÄÈκÎÖ÷»úÇëÇó£º
acl TheISP src 10.0.0.0/8
acl TheISP src 172.16.0.0/12
acl TheISP src 192.168.0.0/16
http_access allow TheISP
µ±È»£¬Ä㻹¿ÉÒÔÕâÑùд£º
acl TheISP src_as 64222
http_access allow TheISP
µÚ¶þÖÖд·¨²»µ«¸ü¶Ì£¬¶øÇÒ¼ÙÈçISP Ôö¼ÓÁËеÄÍøÂ磬Äã²»±Ø¸üÐÂACL ÅäÖá£

6.1.2.14 dst_as
dst_as ACL ¾­³£Óëcache_peer_access Ö¸ÁîÒ»ÆðʹÓá£Ôڸ÷½·¨ÖУ¬squid ʹÓÃÓëIP ·ÓÉÒ»Öµķ½Ê½×ª·¢cache ¶ªÊ§¡£¿¼ÂÇijISP£¬Ëü±ÈÆäËûISP ¸üƵ·±µÄ¸ü»»Â·ÓÉ¡£Ã¿¸öISP ´¦ÀíËûÃÇ×Ô¼ºµÄcache ´úÀí£¬ÕâЩ´úÀíÄÜת·¢ÇëÇ󵽯äËû´úÀí¡£ÀíÂÛÉÏ£¬ISP A ½«ISP B ÍøÂçÀïÖ÷»úµÄcache ¶ªÊ§×ª·¢µ½ISP B µÄcache ´úÀí¡£Ê¹ÓÃAS ACL ºÍcache_peer_access Ö¸ÁîÈÝÒ××öµ½Õâµã£º
acl ISP-B-AS dst_as 64222
acl ISP-C-AS dst_as 64333
cache_peer proxy.isp-b.net parent 3128 3130
cache_peer proxy.isp-c.net parent 3128 3130
cache_peer_access proxy.isb-b.net allow ISP-B-AS
cache_peer_access proxy.isb-c.net allow ISP-C-AS
ÎÒ½«ÔÚµÚ10 ÕÂÀïÌÖÂÛ¸ü¶à¹ØÓÚcache Э×÷¡£

6.1.2.15 snmp_community
snmp_community ACL ¶ÔSNMP ²éѯ²ÅÓÐÒâÒ壬ºóÕß±»snmp_access Ö¸Áî¿ØÖÆ¡£ÀýÈ磬Äã¿ÉÒÔÕâÑùд£º
acl OurCommunityName snmp_community hIgHsEcUrItY
acl All src 0/0
snmp_access allow OurCommunityName
snmp_access deny All
ÔÚ¸ÃÇé¿öÖУ¬¼ÙÈçcommunity Ãû×ÖÉèÖÃΪhIgHsEcUrItY£¬SNMP ²éѯ²Å±»ÔÊÐí¡£

6.1.2.16 maxconn
maxconn ACL Ö¸À´×Ô¿Í»§IP µØÖ·µÄ´óÁ¿Í¬Ê±Á¬½Ó¡£Ä³Ð©squid ¹ÜÀíÔ±·¢ÏÖÕâÊǸöÓÐÓõķ½·¨£¬ÓÃÒÔ×èÖ¹Óû§ÀÄÓôúÀí»òÕßÏûºÄ¹ý¶à×ÊÔ´¡£
maxconn ACL ÔÚÇëÇ󳬹ýÖ¸¶¨µÄÊýÁ¿Ê±£¬»áÆ¥ÅäÕâ¸öÇëÇó¡£ÒòΪÕâ¸öÀíÓÉ£¬ÄãÓ¦¸Ã½ö½öÔÚdeny ¹æÔòÀïʹÓÃmaxconn¡£¿¼ÂÇÈçÏÂÀý×Ó£º
acl OverConnLimit maxconn 4
http_access deny OverConnLimit
ÔÚ¸ÃÇé¿öÖУ¬squid ÔÊÐíÀ´×Ôÿ¸öIP µØÖ·µÄͬʱÁ¬½ÓÊý×î´óΪ4 ¸ö¡£µ±Ä³¸ö¿Í»§·¢ÆðµÚÎå¸öÁ¬½Óʱ£¬OverConnLimit ACL ±»Æ¥Å䣬http_access ¹æÔò¾Ü¾ø¸ÃÇëÇó¡£

6.1.2.17 arp
arp ACL ÓÃÓÚ¼ì²âcache ¿Í»§¶ËµÄMAC µØÖ·£¨ÒÔÌ«Íø¿¨µÄÎïÀíµØÖ·£©¡£µØÖ·½âÎöЭÒ飨ARP£©ÊÇÖ÷»ú²éÕÒ¶ÔÓ¦ÓÚIP µØÖ·µÄMAC µØÖ·µÄ·½·¨¡£Ä³Ð©´óѧѧÉú·¢ÏÖ£¬ÔÚMicrosoft Windows Ï£¬ËûÃÇ¿ÉÒԸıäϵͳµÄIP µØÖ·µ½ÈÎÒâÖµ£¬È»ºóÆÛÆ­squid µÄ»ùÓÚµØÖ·µÄ¿ØÖÆ¡£Õâʱarp ¹¦ÄܾÍÅÉÉÏÓó¡ÁË£¬´ÏÃ÷µÄϵͳ¹ÜÀíÔ±»áÅäÖÃsquid ¼ì²é¿Í»§µÄÒÔÌ«ÍøµØÖ·¡£
²»ÐÒµÄÊÇ£¬¸ÃÌØÐÔʹÓ÷ÇÒÆÖ²ÐÔ´úÂë¡£¼ÙÈçÄãÔËÐÐSolaris »òLinux£¬ÄãÄÜʹÓÃarp ACL¡£ÆäËûϵͳ²»ÐС£µ±ÄãÔËÐÐ./configure ʱÔö¼Ó--enable-arp-acl Ñ¡Ï¾Í¿ÉÒÔ¼¤»î¸Ã¹¦ÄÜ¡£
arp ACL ÓÐÁíÒ»¸öÖØÒªÏÞÖÆ¡£ARP ÊÇÊý¾ÝÁ´Â·²ãЭÒ飬¼ÙÈç¿Í»§Ö÷»úºÍsquid ÔÚͬһ×ÓÍø£¬Ëü²ÅÄܹ¤×÷¡£Äã²»ÈÝÒ×·¢ÏÖ²»Í¬×ÓÍøÖ÷»úµÄMAC µØÖ·¡£¼ÙÈçÔÚsquid ºÍÄãµÄÓû§Ö®¼äÓзÓÉÆ÷´æÔÚ£¬Äã¿ÉÄܲ»ÄÜʹÓÃarp ACL¡£
ÏÖÔÚÄãÖªµÀºÎʱȥʹÓÃËüÃÇ£¬ÈÃÎÒÃÇ¿´¿´arp ACL ʵ¼ÊÉÏÊÇÔõÑùµÄ¡£ËüµÄÖµÊÇÒÔÌ«ÍøµØÖ·£¬µ±Ê¹ÓÃifconfig ºÍarp ʱÄãÄÜ¿´µ½ÒÔÌ«ÍøµØÖ·¡£ÀýÈ磺
acl WinBoxes arp 00:00:21:55:ed:22
acl WinBoxes arp 00:00:21:ff:55:38

6.1.2.18 srcdom_regex
srcdom_regex ACL ÔÊÐíÄãʹÓÃÕýÔò±í´ïʽƥÅä¿Í»§ÓòÃû¡£ÕâÓësrcdomain ACL ÏàËÆ£¬ËüʹÓøĽøµÄµÄ×Ó´®Æ¥Åä¡£ÏàͬµÄÏÞÖÆÊÇ£ºÄ³Ð©¿Í»§µØÖ·²»ÄÜ·´Ïò½âÎöµ½ÓòÃû¡£×÷ΪʾÀý£¬ÏÂÃæµÄACL Æ¥ÅäÒÔdhcp ¿ªÍ·µÄÖ÷»úÃû£º
acl DHCPUser srcdom_regex -i ^dhcp
ÒòΪÁìÍ·µÄ^ ·ûºÅ£¬ ¸ÃACL Æ¥ÅäÖ÷»úÃûdhcp12.example.com £¬ µ«²»Æ¥Åähost12.dhcp.example.com¡£

6.1.2.19 dstdom_regex
dstdom_regex ACL Ò²Óëdstdomain ÏàËÆ¡£ÏÂÃæµÄÀý×ÓÆ¥ÅäÒÔwww ¿ªÍ·µÄÖ÷»úÃû£º
acl WebSite dstdom_regex -i ^www\.
ÈçÏÂÊÇÁíÒ»¸öÓÐÓõÄÕýÔò±í´ïʽ£¬ÓÃÒÔÆ¥ÅäÔÚURL Ö÷»úÃûÀï³öÏÖµÄIP µØÖ·£º
acl IPaddr dstdom_regex [0-9]$
ÕâÑù¿ÉÒÔ¹¤×÷£¬ÒòΪsquid ÒªÇóURL Ö÷»úÃûÍêÈ«¿ÉÑéÖ¤¡£¼ÈȻȫ¾Ö¶¥¼¶ÓòÃûÖÐûÓÐÒÔÊý×Ö½áβµÄ£¬¸ÃACL ½ö½öÆ¥ÅäIP µØÖ·£¬ËüÒÔÊý×Ö½áβ¡£

6.1.2.20 url_regex
url_regex ACL ÓÃÓÚÆ¥ÅäÇëÇóURL µÄÈκβ¿·Ö£¬°üÀ¨´«ÊäЭÒéºÍԭʼ·þÎñÆ÷Ö÷»úÃû¡£ÀýÈ磬ÈçÏÂACL Æ¥Åä´ÓFTP ·þÎñÆ÷µÄMP3 ÎļþÇëÇó£º
acl FTPMP3 url_regex -i ^ftp://.*\.mp3$

6.1.2.21 urlpath_regex
urlpath_regex Óëurl_regex ·Ç³£ÏàËÆ£¬²»¹ý´«ÊäЭÒéºÍÖ÷»úÃû²»°üº¬ÔÚÆ¥ÅäÌõ¼þÀï¡£ÕâÈÃijЩÀàÐ͵ļì²â·Ç³£ÈÝÒס£ÀýÈ磬¼ÙÉèÄã±ØÐë¾Ü¾øURL ÀïµÄ"sex"£¬µ«ÈÔÔÊÐíÔÚÖ÷»úÃûÀﺬÓÐ"sex"µÄÇëÇó£¬ÄÇôÕâÑù×ö£º
acl Sex urlpath_regex sex
ÁíÒ»¸öÀý×Ó£¬¼ÙÈçÄãÏëÌØÊâ´¦Àícgi-bin ÇëÇó£¬ÄãÄÜÕâÑù²¶»ñËüÃÇ£º
acl CGI1 urlpath_regex ^/cgi-bin
µ±È»£¬CGI ³ÌÐò²¢·Ç×ÜÔÚ/cgi-bin/Ŀ¼Ï£¬ÕâÑùÄãÓ¦¸Ã±àдÆäËûµÄACL À´²¶»ñËüÃÇ¡£

6.1.2.22 browser
´ó²¿·ÖHTTP ÇëÇó°üº¬ÁËUser-Agent Í·²¿¡£¸ÃÍ·²¿µÄÖµµäÐÍÈçÏ£º
Mozilla/4.51 [en] (X11; I; Linux 2.2.5-15 i686)
browser ACL ¶Ôuser-agent Í·Ö´ÐÐÕýÔò±í´ïʽƥÅä¡£ÀýÈ磬¾Ü¾ø²»ÊÇÀ´×ÔMozilla ä¯ÀÀÆ÷µÄÇëÇ󣬿ÉÒÔÕâÑùд£º
acl Mozilla browser Mozilla
http_access deny !Mozilla
ÔÚʹÓÃbrowser ACL ֮ǰ£¬ÇëÈ·ÈÏÄãÍêÈ«Àí½âcache ½ÓÊܵ½µÄUser-Agent ×Ö·û´®¡£Ä³Ð©user-agent ÓëËüÃǵÄÀ´Ô´Ïà¹Ø¡£ÉõÖÁsquid ¿ÉÒÔÖØÐ´Ëüת·¢µÄÇëÇóµÄUser-Agent Í·²¿¡£Ä³Ð©ä¯ÀÀÆ÷ÀýÈçOpera ºÍKDE µÄKonqueror£¬Óû§¿ÉÒÔ¶Ô²»Í¬µÄԭʼ·þÎñÆ÷·¢ËͲ»Í¬µÄuser-agent×Ö´®£¬»òÕ߸ɴàºöÂÔËüÃÇ¡£

6.1.2.23 req_mime_type
req_mime_type ACL Ö¸¿Í»§HTTP ÇëÇóÀïµÄContent-Type Í·²¿¡£¸ÃÀàÐÍÍ·²¿Í¨³£½ö½ö³öÏÖÔÚÇëÇóÏûÏ¢Ö÷ÌåÀï¡£POST ºÍPUT ÇëÇó¿ÉÄܰüº¬¸ÃÍ·²¿£¬µ«GET ´Ó²»¡£ÄãÄÜʹÓøÃÀàÐÍACL À´¼ì²âijЩÎļþÉÏ´«£¬ºÍijЩÀàÐ͵ÄHTTP ËíµÀÇëÇó¡£
req_mime_type ACL ÖµÊÇÕýÔò±í´ïʽ¡£Äã¿ÉÒÔÕâÑù±àдACL È¥²¶»ñÒôƵÎļþÀàÐÍ£º
acl AuidoFileUploads req_mime_type -i ^audio/

6.1.2.24 rep_mime_type
¸ÃÀàÐÍACL ָԭʼ·þÎñÆ÷µÄHTTP ÏìÓ¦ÀïµÄContent-Type Í·²¿¡£Ëü½öÔÚʹÓÃhttp_reply_access ¹æÔòʱ²ÅÓÐÓá£ËùÓÐµÄÆäËû·ÃÎÊ¿ØÖÆÐÎʽÊÇ»ùÓÚ¿Í»§¶ËÇëÇóµÄ¡£¸ÃACL »ùÓÚ·þÎñÆ÷ÏìÓ¦¡£
¼ÙÈçÄãÏëʹÓÃsquid ×èÈûJava ´úÂ룬Äã¿ÉÒÔÕâÑùд£º
acl JavaDownload rep_mime_type application/x-java
http_reply_access deny JavaDownload

6.1.2.25 ident_regex
ÔÚ±¾½ÚÔçЩʱ½²¹ýident ACL¡£ident_regex ÔÊÐíÄãʹÓÃÕýÔò±í´ïʽ£¬´úÌæÑϸñµÄ×Ö·û´®Æ¥Å䣬ÕâЩƥÅäÊǶÔident ЭÒé·µ»ØµÄÓû§Ãû½øÐС£ÀýÈ磬ÈçÏÂACL Æ¥Åä°üº¬Êý×ÖµÄÓû§Ãû£º
acl NumberInName ident_regex [0-9]

6.1.2.26 proxy_auth_regex
¸ÃACL ÔÊÐí¶Ô´úÀíÈÏÖ¤Óû§ÃûʹÓÃÕýÔò±í´ïʽ¡£ÀýÈ磬 ÈçÏÂACL Æ¥Åä
admin,administrator ºÍadministrators:
acl Admins proxy_auth_regex -i ^admin

6.1.3 ÍⲿACL
Squid 2.5 °æ±¾½éÉÜÁËÒ»¸öÐÂÌØÐÔ£ºÍⲿACL¡£Äã¿ÉÒÔָʾsquid ·¢ËÍijЩÐÅϢƬ¶Ïµ½Íⲿ½ø³Ì£¬È»ºóÍⲿµÄ¸¨Öú³ÌÐò¸æËßsquid£¬Êý¾ÝÆ¥Åä»ò²»Æ¥Åä¡£
squid ¸½´ø×Å´óÁ¿µÄÍⲿACL ¸¨Öú³ÌÐò£»´ó²¿·ÖÓÃÓÚÈ·¶¨ÃüÃûÓû§ÊDz»ÊÇij¸öÌØÊâ×éµÄ³ÉÔ±¡£Çë¼û12.5 Õ¹ØÓÚÕâЩ³ÌÐòµÄÃèÊö£¬ÒÔ¼°¹ØÓÚÈçºÎ±àдÄã×Ô¼ºµÄ³ÌÐòµÄÐÅÏ¢¡£ÏÖÔÚ£¬ÎÒ½âÊÍÈçºÎ¶¨ÒåºÍʹÓÃÍⲿACL ÀàÐÍ¡£
external_acl_type Ö¸ÁÒåеÄÍⲿACL ÀàÐÍ¡£ÈçÏÂÊÇͨÓÃÓï·¨£º
external_acl_type type-name [options] format helper-command
type-name ÊÇÓû§¶¨ÒåµÄ×Ö´®¡£ÄãÒ²¿ÉÒÔÔÚacl ÐÐÀïÒýÓÃËü¡£
Squid µ±Ç°Ö§³ÖÈçÏÂÑ¡Ïî(options)£º
ttl=n
ʱ¼äÊýÁ¿£¬µ¥Î»ÊÇÃ룬ÓÃÒÔ»º´æÆ¥ÅäÖµµÄʱ¼ä³¤¶Ì¡£Ä¬ÈÏÊÇ3600 Ã룬»ò1 Сʱ¡£
negative_ttl=n
ʱ¼äÊýÁ¿£¬µ¥Î»ÊÇÃ룬ÓÃÒÔ»º´æ²»Æ¥ÅäÖµµÄʱ¼ä³¤¶Ì¡£Ä¬ÈÏÊÇ3600 Ã룬»ò1 Сʱ¡£
concurrency=n
ÑÜÉúµÄ¸¨Öú³ÌÐòµÄÊýÁ¿£¬Ä¬ÈÏÊÇ5¡£
cache=n
»º´æ½á¹ûµÄ×î´óÊýÁ¿¡£Ä¬ÈÏÊÇ0£¬¼´²»ÏÞÖÆcache ´óС¡£
¸ñʽÊÇÒÔ%×Ö·û¿ªÊ¼µÄÒ»¸ö»ò¶à¸ö¹Ø¼ü×Ö¡£squid µ±Ç°Ö§³ÖÈçϸñʽ£º
%LOGIN
´Ó´úÀíÑéÖ¤ÐÅÓÃÑ¡ÏîÀï»ñÈ¡µÄÓû§Ãû¡£
%IDENT
´ÓRFC 1413 ident »ñÈ¡µÄÓû§Ãû¡£
%SRC
¿Í»§¶ËIP µØÖ·¡£
%DST
ԭʼ·þÎñÆ÷IP µØÖ·¡£
%PROTO
´«ÊäЭÒ飨ÀýÈçHTTP,FTP µÈ£©
%PORT
ԭʼ·þÎñÆ÷µÄTCP ¶Ë¿Ú¡£
%METHOD
HTTP ÇëÇó·½·¨¡£
%{Header}
HTTP ÇëÇóÍ·²¿µÄÖµ£»ÀýÈ磬%{User-Agent}µ¼ÖÂsquid ·¢ËÍÕâÑùµÄ×Ö´®µ½ÑéÖ¤Æ÷£º"Mozilla/4.0 (compatible; MSIE 6.0; Win32)"
%{Hdr:member}
Ñ¡ÔñijЩÊýÁ¿µÄ»ùÓÚÁбíµÄHTTP Í·²¿£¬ÀýÈçCaceh-Control£»ÀýÈ磬¸ø³öÈçÏÂHTTPÍ·²¿£º
X-Some-Header: foo=xyzzy, bar=plugh, foo=zoinks
¶Ô%{X-Some-Header:foo}µÄȡֵ£¬squid ·¢ËÍÕâÑùµÄ×Ö´®µ½ÍⲿACL ½ø³Ì£º
foo=xyzzy, foo=zoinks
%{Hdr:;member}
Óë%{Hdr:member}Ïàͬ£¬³ýÁË";"ÊÇÁбí·Ö¸ô·ûÍâ¡£ÄãÄÜʹÓÃÈκηÇ×ÖĸÊý×ÖµÄ×Ö·û×÷Ϊ·Ö¸ô·û¡£
¸¨ÖúÃüÁîÊÇsquid Ϊ¸¨Öú³ÌÐòÑÜÉúµÄÃüÁî¡£ÄãÒ²¿ÉÒÔÔÚÕâÀï°üº¬ÃüÁî²ÎÊý¡£ÀýÈ磬ÕûÌõÃüÁî¿ÉÄÜÀàËÆÈç´Ë£º
/usr/local/squid/libexec/my-acl-prog.pl -X -5 /usr/local/squid/etc/datafile
½«ÕâЩ·ÅÔÚÒ»¸ö³¤ÐÐÀï¡£squid ²»Ö§³ÖÈçÏÂͨ¹ý·´Ð±¸Ü·Ö¸ô³¤Ðеļ¼Êõ£¬ËùÒÔÇë¼ÇסËùÓÐÕâЩ±ØÐë·ÅÔÚµ¥ÐÐÀ
external_acl_type MyAclType cache=100 %LOGIN %{User-Agent} \
/usr/local/squid/libexec/my-acl-prog.pl -X -5 \
/usr/local/squid/share/usernames \
/usr/local/squid/share/useragents
ÏÖÔÚÄãÖªµÀÈçºÎ¶¨ÒåÍⲿACL£¬ÏÂÒ»²½ÊDZàдÒýÓÃËüµÄacl ÐС£ÕâÏà¶ÔÈÝÒ×£¬Óï·¨ÈçÏ£º
acl acl-name external type-name [args ...]
ÈçÏÂÊǸö¼òµ¥Ê¾Àý£º
acl MyAcl external MyAclType
squid ½ÓÊÜÔÚtype-name ºóÃæµÄÈÎÒâÊýÁ¿µÄ²ÎÊý¡£ÕâЩÔÚÿ¸öÇëÇóÀï±»·¢Ë͵½¸¨Öú³ÌÐò¡£
Çë¼û12.5.3 Õ£¬ÎÒÃèÊöÁËunix_group ¸¨Öú³ÌÐò£¬×÷Ϊ¸Ã¹¦ÄܵÄʾÀý¡£

6.1.4 ´¦Àí³¤ACL Áбí
ACL ÁбíijЩʱºò·Ç³£³¤¡£ÕâÑùµÄÁбíÔÚsquid.conf ÎļþÀïÄÑÒÔά»¤¡£ÄãÒ²¿ÉÄÜÏë´ÓÆäËû×ÊÔ´Àï×Ô¶¯²úÉúsquid ACL ÁÐ±í¡£ÔÚÈç´ËÇé¿öÏ£¬Äã¿ÉÒÔ´ÓÍⲿÎļþÀï°üº¬ACL ÁÐ±í¡£Óï·¨ÈçÏ£º
acl name "filename"
ÕâÀïµÄË«ÒýºÅָʾsquid ´ò¿ªfilename£¬²¢ÇÒ½«ËüÀïÃæµÄÄÚÈÝ·ÖÅ䏸ACL¡£ÀýÈ磬ÈçϵÄACL Ì«³¤ÁË£º
acl Foo BadClients 1.2.3.4 1.2.3.5 1.2.3.6 1.2.3.7 1.2.3.9 ...
Äã¿ÉÒÔÕâÑù×ö£º
acl Foo BadClients "/usr/local/squid/etc/BadClients"
½«IP µØÖ··ÅÔÚBadClients ÎļþÀ
1.2.3.4
1.2.3.5
1.2.3.6
1.2.3.7
1.2.3.9
...
Îļþ¿ÉÒÔ°üº¬ÒÔ#¿ªÍ·µÄ×¢ÊÍ¡£×¢ÒâÔÚ¸ÃÎļþÀïµÄÿ¸öIP µØÖ·±ØÐëÊÇÒ»¸öµ¥¶ÀµÄÐС£aclÐÐÀïµÄÈκεط½£¬ÒÔ¿Õ¸ñÀ´·Ö¸ôÖµ£¬ÐÂÐÐÊǰüº¬ACL ÖµµÄÎļþµÄ·Ö½ç¡£

6.1.5 Squid ÈçºÎÆ¥Åä·ÃÎÊ¿ØÖÆÔªËØ
Àí½âsquid ÈçºÎËÑË÷ACL ÔªËØÈ¥Æ¥ÅäÊǺÜÖØÒªµÄ¡£µ±ACLÔªËØÓжà¸öֵʱ£¬Èκε¥¸öÖµÄܵ¼ÖÂÆ¥Åä¡£»»¾ä»°Ëµ£¬squidÔÚ¼ì²éACL ÔªËØÖµÊ±Ê¹ÓÃORÂß¼­¡£µ±squid ÕÒµ½µÚÒ»¸öֵƥÅäʱ£¬ËüÍ£Ö¹ËÑË÷¡£ÕâÒâζ×ŰÑ×î¿ÉÄÜÆ¥ÅäµÄÖµ·ÅÔÚÁÐ±í¿ªÍ·´¦£¬ÄܼõÉÙÑÓʱ¡£
ÈÃÎÒÃÇ¿´Ò»¸öÌØÊâµÄÀý×Ó£¬¿¼ÂÇÈçÏÂACL ¶¨Ò壺
acl Simpsons ident Maggie Lisa Bart Marge Homer
µ±squid ÔÚ·ÃÎÊÁбíÀïÓöµ½Simpsons ACLʱ£¬ËüÖ´ÐÐident²éѯ¡£ÈÃÎÒÃÇ¿´Ò»Ï£¬µ±Óû§ident ·þÎñ·µ»ØMarge ʱ£¬»á·¢ÉúÊ²Ã´ÄØ£¿squid µÄACL ´úÂëÔڳɹ¦Æ¥ÅäMarge ǰ£¬»áÏȺó½«Õâ¸öÖµÓëMaggie,Lisa,ºÍBart ¶Ô±È¡£µ±ËÑË÷Íê³Éʱ£¬ÎÒÃÇÈÏΪSimpsons ACL Æ¥ÅäÁËÕâ¸öÇëÇó¡£
ʵ¼ÊÉÏ£¬ÕâÓеãÆÛÆ­¡£ident ACL Öµ²¢·Ç´æ´¢ÔÚÎÞÐòÁбíÀï¡£ËüÃÇ´æ´¢ÔÚsplay tree ÖС£ÕâÒâζ×Å£¬ÔÚ·ÇÆ¥ÅäʼþÖУ¬squid ²»»áËÑË÷ÍêËùÓеÄÃû×Ö¡£¶ÔÒ»¸ösplay tree ËÑË÷N ¸öÌõÄ¿ÐèÒª¼Ç¼N ¸ö±È½Ï¡£Ðí¶àÆäËûµÄACL ÀàÐÍҲʹÓÃsplay tree¡£È»¶ø£¬»ùÓÚÕýÔò±í´ïʽµÄÀàÐͲ»Ê¹Óá£
¼ÈÈ»ÕýÔò±í´ïʽ²»ÄÜÕâÑù´æ´¢£¬ËüÃÇÒÔÁ´±íÐÎʽ´æ´¢¡£ÕâʹµÃÔÚ´óÁ´±íÀïËüÃÇÌØ±ðµÍЧ£¬ÌرðÊDz»Æ¥ÅäÁ´±íÀïÈκÎÕýÔò±í´ïʽµÄÇëÇó¡£ÎªÁ˸ĽøÕâ¸öÐÎʽ£¬µ±Æ¥Åä·¢Éúʱ£¬squid ½«ÕýÔò±í´ïÊ½ÒÆµ½ÁбíµÄ¶¥²¿¡£Êµ¼ÊÉÏ£¬ÒòΪACL Æ¥Åä´úÂëµÄÌìÈ»ÌØÐÔ£¬squid ½«Æ¥ÅäµÄÌõÄ¿ÒÆµ½ÁбíµÄµÚ¶þ¸öλÖá£ÕâÑù£¬ÆÕͨµÄÆ¥ÅäÖµ×ÔÈ»ÒÆµ½ACL ÁбíµÄ¶¥²¿£¬ÕâÑù»á¼õÉٱȽÏÊýÁ¿¡£
ÈÃÎÒÃÇ¿´ÁíÒ»¸ö¼òµ¥Ê¾Àý£º
acl Schmever port 80-90 101 103 107 1 2 3 9999
¸ÃACL Æ¥Å䵽ԭʼ·þÎñÆ÷80-90 ¶Ë¿Ú£¬ºÍÆäËû¶ÀÁ¢¶Ë¿ÚµÄÇëÇó¡£¶Ô80 ¶Ë¿ÚµÄÇëÇó£¬squidͨ¹ý²é¿´µÚÒ»¸öÖµ¾ÍÆ¥ÅäÁ˸ÃACL¡£¶Ô9999 ¶Ë¿Ú£¬ÆäËûÿ¸öÖµ¶¼Ïȱ»¼ì²é¡£¶Ôij¸ö²»ÔÚÁбíÀïµÄ¶Ë¿Ú£¬squid Òª¼ì²éËùÓÐÖµ²ÅÐû²¼Ëü²»Æ¥Åä¡£¾ÍÏñÎÒÒѾ­½²¹ýµÄ£¬½«×î³£ÓõÄÖµ·ÅÔÚµÚһλÄÜÓÅ»¯ACL Æ¥Åä¡£

6.2 ·ÃÎÊ¿ØÖƹæÔò
Ç°ÃæÌá¹ý£¬ACL ÔªËØÊǽ¨Á¢·ÃÎÊ¿ØÖƵĵÚÒ»²½¡£µÚ¶þ²½ÊÇ·ÃÎÊ¿ØÖƹæÔò£¬ÓÃÀ´ÔÊÐí»ò¾Ü¾øÄ³Ð©¶¯×÷¡£ÔÚÔçÏȵÄÀý×ÓÀÄãÒѼû¹ýhttp_access ¹æÔò¡£squid ÓдóÁ¿ÆäËûµÄ·ÃÎÊ¿ØÖÆÁÐ±í£º
http_access
ÕâÊÇ×îÖØÒªµÄ·ÃÎÊ¿ØÖÆÁÐ±í¡£Ëü¾ö¶¨ÄÄЩ¿Í»§HTTP ÇëÇó±»ÔÊÐí£¬ºÍÄÄЩ±»¾Ü¾ø¡£¼ÙÈçhttp_access ÅäÖôíÎó£¬squid cache ÈÝÒ×ÔâÊܹ¥»÷»ò±»²»µ±ÀûÓá£
http_reply_access
http_reply_access Óëhttp_access ÀàËÆ¡£²»Í¬Ö®´¦ÊÇǰÕßÔÚsquid ½ÓÊܵ½À´×Ôԭʼ·þÎñÆ÷»òÉϼ¶´úÀíµÄÏìӦʱ£¬²Å»á±»¼ì²â¡£´ó²¿·Ö·ÃÎÊ¿ØÖÆ»ùÓÚ¿Í»§ÇëÇóµÄ·½Ê½£¬¶ÔÕâЩʹÓÃhttp_access ¾Í¹»ÁË¡£È»¶ø£¬Ä³Ð©ÈËϲ»¶»ùÓÚÏìÓ¦ÄÚÈÝÀàÐÍÀ´ÔÊÐí»ò¾Ü¾øÇëÇ󡣸ü¶àÐÅÏ¢Çë¼û6.3.9 Õ¡£
icp_access
¼ÙÈçÄãµÄsquid ±»ÅäÖÃÀ´·þÎñICP ÏìÓ¦£¨¼û10.6 Õ£©£¬ÄÇô¸ÃʹÓÃicp_access ÁÐ±í¡£´ó²¿·ÖÇé¿öÏ£¬Äã¸Ã½ö½öÔÊÐíÀ´×ÔÁÚ¾Ócache µÄICP ÇëÇó¡£
no_cache
ÄãÄÜʹÓÃno_cache ·ÃÎÊÁбíÀ´Ö¸Ê¾squid£¬Ëü²»±Ø´æ´¢Ä³Ð©ÏìÓ¦£¨ÔÚ´ÅÅÌ»òÄÚ´æÀ¡£¸ÃÁбíµäÐ͵ÄÓëdst,dstdomain,url_regex ACL ½áºÏʹÓá£
¶Ôno_cache ʹÓÃ"·ñ"Ìõ¼þ£¬ÕâÑùµÄË«ÖØ·ñ¶¨»áµ¼ÖÂijЩ»ìÂÒ¡£±»no_cache Áбí¾Ü¾øµÄÇëÇó²»±»»º´æ¡£»»¾ä»°Ëµ£¬no_cache deny...ÊÇÈÃÄ¿±ê²»±»»º´æ¡£¼û6.3.10 ÕµÄʾÀý¡£
miss_access
miss_access ÁбíÖ÷ÒªÓÃÓÚsquid µÄÁÚ¾Ócache¡£Ëü¾ö¶¨squid ÔõÑù´¦Àícache ¶ªÊ§µÄÇëÇó¡£Èç¹ûsquid ʹÓü¯Èº¼¼Êõ£¬ÄÇô¸Ã¹¦ÄܱØÐè¡£¼û6.3.7 µÄʾÀý¡£
redirector_access
¸Ã·ÃÎÊÁбí¾ö¶¨ÄĸöÇëÇó±»·¢Ë͵½Öض¨Ïò½ø³Ì£¨¼û11 Õ£©¡£Ä¬ÈÏÇé¿öÏ£¬¼ÙÈçÄãʹÓÃÖØ¶¨ÏòÆ÷£¬ÄÇôËùÓеÄÇëÇó¶¼Í¨¹ýÖØ¶¨ÏòÆ÷¡£Äã¿ÉÒÔʹÓÃredirector_access ÁбíÀ´×èֹijЩÇëÇó±»ÖØÐ´¡£ÕâµãÌØ±ðÓÐÓã¬ÒòΪÕâÑùµÄ·ÃÎÊÁÐ±í£¬Ê¹ÖØ¶¨ÏòÆ÷Ïà¶ÔÓÚ·ÃÎÊ¿ØÖÆÏµÍ³£¬½ÓÊܵÄÇëÇóÐÅÏ¢ÒªÉÙһЩ¡£
ident_lookup_access
ident_lookup_access ÁбíÓëredirector_access ÀàËÆ¡£ËüÔÊÐíÄã¶ÔijЩÇëÇóÖ´ÐÐÀÁ¶èident²éѯ¡£squid ĬÈϲ»·¢²¼ident ²éѯ¡£¼ÙÈçÇëÇó±»ident_lookup_access ¹æÔò£¨»òident ACL£©ÔÊÐí£¬ÄÇôsquid ²Å»á½øÐÐident ²éѯ¡£
always_direct
¸Ã·ÃÎÊÁбíÓ°Ïìsquid ÔõÑù´¦ÀíÓëÁÚ¾Ócache ת·¢cache ¶ªÊ§¡£Í¨³£squid ÊÔͼת·¢cache
¶ªÊ§µ½¸¸cache£¬ºÍ/»òsquid ʹÓÃICP À´²éÕÒÁÙ½ücache ÏìÓ¦¡£È»¶ø£¬µ±ÇëÇóÆ¥Åäalways_direct¹æÔòʱ£¬squid Ö±½Óת·¢ÇëÇóµ½Ô­Ê¼·þÎñÆ÷¡£
ʹÓøùæÔò£¬¶Ô"allow"¹æÔòµÄÆ¥Åäµ¼ÖÂsquid Ö±½Óת·¢ÇëÇ󣬼û10.4.4 Õµĸü¶àϸ½ÚºÍʾÀý¡£
never_direct
never_direct Óëalways_direct Ïà·´¡£Æ¥Åä¸ÃÁбíµÄcache ¶ªÊ§ÇëÇó±ØÐë·¢Ë͵½ÁÚ¾Ócache¡£Õâµã¶ÔÔÚ·À»ðǽ֮ºóµÄ´úÀíÌØ±ðÓÐÓá£
ʹÓøÃÁÐ±í£¬¶Ô"allow"¹æÔòµÄÆ¥Åäµ¼ÖÂsquid ת·¢ÇëÇóµ½ÁÚ¾Ócache¡£¼û10.4.3 Õµĸü¶àϸ½ÚºÍʾÀý¡£
snmp_access
¸Ã·ÃÎÊÁбíÓ¦Óõ½·¢Ë͸øsquid µÄSNMP ¶Ë¿ÚµÄ²éѯ¡£ÄãÄÜÅäºÏ¸ÃÁбíʹÓõÄACL ÊÇsnmp_community ºÍsrc¡£¼ÙÈçÄãȷʵÏëʹÓÃËü£¬ÄÇÒ²ÄÜʹÓÃsrcdomain,srcdom_regexºÍsrc_as¡£¼û14.3 ÕµÄʾÀý¡£
broken_posts
¸Ã·ÃÎÊÁбíÓ°Ïìsquid ´¦ÀíijЩPOST ÇëÇóµÄ·½·¨¡£Ä³Ð©ÀϵÄÓû§´úÀíÔÚÇëÇóÖ÷ÌåµÄ½áβ´¦·¢ËÍÒ»¸öÌØ±ðµÄ»Ø³µ»»Ðзû¡£ÄǾÍÊÇ˵£¬ÏûÏ¢Ö÷Ìå±Ècontent-length Í·²¿Ö¸Ê¾µÄ³¤¶ÈÒª¶à2 ¸ö×Ö½Ú¡£¸üÔã¸âµÄÊÇ£¬Ä³Ð©ÀϵÄHTTP ·þÎñÆ÷ʵ¼ÊÉÏÒÀÀµÓÚÕâÖÖ²»ÕýÈ·µÄÐÐΪ¡£µ±ÇëÇóÆ¥Åä¸Ã·ÃÎÊÁбíʱ£¬squid Ä£ÄâÕâÖÖ¿Í»§¶Ë²¢ÇÒ·¢ËÍÌØÊâµÄ»Ø³µ»»Ðзû¡£
Squid ÓдóÁ¿µÄʹÓÃACL ÔªËØµÄÆäËûÅäÖÃÖ¸Áî¡£ËüÃÇÖеÄijЩ¹ýÈ¥ÊÇÈ«¾ÖÅäÖ㬺ó±»ÐÞ¸ÄÀ´Ê¹ÓÃACL ÒÔÌṩ¸üÁé»îµÄ¿ØÖÆ¡£
cache_peer_access
¸Ã·ÃÎÊÁÐ±í¿ØÖÆ·¢Ë͵½ÁÚ¾Ócache µÄHTTP ÇëÇóºÍICP/HTCP ²éѯ¡£¼û10.4.1 Õµĸü¶àÐÅÏ¢ºÍʾÀý¡£
reply_body_max_size
¸Ã·ÃÎÊÁбíÏÞÖÆ¶ÔHTTP ÏìÓ¦Ö÷ÌåµÄ×î´ó¿É½ÓÊÜsize¡£¼û¸½Â¼A µÄ¸ü¶àÐÅÏ¢¡£
delay_access
¸Ã·ÃÎʹæÔòÁÐ±í¿ØÖÆÊÇ·ñÑÓʱ³Ø±»Ó¦Óõ½Ä³¸öÇëÇóµÄcache ¶ªÊ§ÏìÓ¦¡£¼û¸½Â¼C¡£
tcp_outgoing_address
¸Ã·ÃÎÊÁбí°ó¶¨·þÎñ¶ËTCP Á¬½Óµ½Ö¸¶¨µÄ±¾µØIP µØÖ·¡£¼û¸½Â¼A¡£
tcp_outgoing_tos
¸Ã·ÃÎÊÁбíÄÜÉèÖõ½Ô­Ê¼·þÎñÆ÷ºÍÁÚ¾Ócache µÄTCP Á¬½ÓµÄ²»Í¬TOS/Diffserv Öµ£¬¼û¸½Â¼A¡£
header_access
ʹÓøÃÖ¸ÁÄãÄÜÅäÖÃsquid ´ÓËüת·¢µÄÇëÇóÀïɾ³ýijЩHTTP Í·²¿¡£ÀýÈ磬ÄãÒ²ÐíÏëSquid¹ýÂ˵ô·¢Ë͵½Ä³Ð©Ô­Ê¼·þÎñÆ÷µÄÇëÇóÀïµÄCookie Í·²¿¡£¼û¸½Â¼A¡£
header_replace
¸ÃÖ¸ÁîÔÊÐíÄãÌæ»»£¬¶ø²»ÊÇɾ³ý£¬HTTP Í·²¿µÄÄÚÈÝ¡£ÀýÈ磬ÄãÄÜÉèÖÃuser-agent Í·²¿Îª¼ÙÖµ£¬Âú×ãijЩԭʼ·þÎñÆ÷µÄÒªÇ󣬵«ÈÔ±£»¤ÄãµÄÒþ˽¡£¼û¸½Â¼A¡£

6.2.1 ·ÃÎʹæÔòÓï·¨
·ÃÎÊ¿ØÖƹæÔòµÄÓï·¨ÈçÏ£º
access_list allow|deny [!]ACLname ...
ÀýÈ磺
http_access allow MyClients
http_access deny !Safe_Ports
http_access allow GameSites AfterHours
µ±¶ÁÈ¡ÅäÖÃÎļþʱ£¬squid ½ö½öɨÃèÒ»±é·ÃÎÊ¿ØÖÆÐС£ÕâÑù£¬ÔÚ·ÃÎÊÁбíÀïÒýÓÃACL ÔªËØÖ®Ç°£¬Äã±ØÐëÔÚacl ÐÐÀﶨÒåËüÃÇ¡£ÉõÖÁ£¬·ÃÎÊÁÐ±í¹æÔòµÄ˳ÐòÒ²·Ç³£ÖØÒª¡£ÄãÒÔÔõÑùµÄ˳Ðò±àд·ÃÎÊÁÐ±í£¬ÄÇôsquid ¾Í°´ÔõÑùµÄ˳ÐòÀ´¼ì²éËüÃÇ¡£½«×î³£ÓõÄACL ·ÅÔÚÁбíµÄ¿ªÊ¼Î»Ö㬿ÉÒÔ¼õÉÙsquid µÄCPU ¸ºÔØ¡£
¶Ô´ó²¿·Ö·ÃÎÊÁÐ±í£¬deny ºÍallow µÄÒâÒåÃ÷ÏÔ¡£È»¶ø£¬ËüÃÇÖеÄijЩ£¬È´²¢·ÇÈç´Ëº¬ÒåÇå³þ¡£Çë½÷É÷µÄ±àдalways_direct,never_direct,ºÍno_cache ¹æÔò¡£ÔÚalways_direct ÖУ¬allow¹æÔòÒâζ×ÅÆ¥ÅäµÄÇëÇóÖ±½Óת·¢µ½Ô­Ê¼·þÎñÆ÷¡£always_direct deny ¹æÔòÒâζ×ÅÆ¥ÅäµÄÇëÇó²»Ç¿ÆÈ·¢Ë͵½Ô­Ê¼·þÎñÆ÷£¬µ«¼ÙÈçÁÚ¾Ócache ²»¿Éµ½´ï£¬ÄÇ¿ÉÄÜ»¹ÊÇ»áÕâô×ö¡£no_cache ¹æÔòÒ²ÓеãÂé·³¡£ÕâÀÄã±ØÐë¶Ô²»±Ø±»cache µÄÇëÇóʹÓÃdeny¡£

6.2.2 Squid ÈçºÎÆ¥Åä·ÃÎʹæÔò
»ØÏëÒ»ÏÂsquid ÔÚËÑË÷ACL ÔªËØÊ±Ê¹Óõġ°»ò¡±Âß¼­¡£ÔÚacl ÀïµÄÈκε¥Öµ¶¼¿ÉÒÔµ¼ÖÂÆ¥Åä¡£
È»¶ø£¬·ÃÎʹæÔòÇ¡ºÃÏà·´¡£¶Ôhttp_access ºÍÆäËû¹æÔòÉèÖã¬squid ʹÓá°Ó롱Âß¼­¡£¿¼ÂÇÈçÏÂʾÀý£º
access_list allow ACL1 ACL2 ACL3
¶Ô¸ÃÆ¥Å乿ÔòÀ´Ëµ£¬ÇëÇó±ØÐëÆ¥ÅäACL1,ACL2,ACL3 ÖеÄÈκÎÒ»¸ö¡£¼ÙÈçÕâЩACLÖеÄÈκÎÒ»¸ö²»Æ¥ÅäÇëÇó£¬squid Í£Ö¹ËÑË÷¸Ã¹æÔò£¬²¢¼ÌÐø´¦ÀíÏÂÒ»Ìõ¡£¶Ôij¸ö¹æÔòÀ´Ëµ£¬½«×îÉÙÆ¥ÅäµÄACL ·ÅÔÚÊ×룬ÄÜʹЧÂÊ×î¼Ñ¡£¿¼ÂÇÈçÏÂʾÀý£º
acl A method http
acl B port 8080
http_access deny A B
¸Ãhttp_access ¹æÔòÓеãµÍЧ£¬ÒòΪA ACL ¿´ÆðÀ´±ÈB ACL ¸üÈÝÒׯ¥Åä¡£·´×ªË³ÐòÓ¦¸Ã¸üºÃ£¬ÒÔ±ãsquid ½ö½ö¼ì²éÒ»¸öACL£¬¶ø²»ÊÇÁ½¸ö£º
http_access deny B A
ÈËÃÇÒ×·¸µÄµäÐÍ´íÎóÊDZàдÓÀ²»ÕýÈ·µÄ¹æÔò¡£ÀýÈ磺
acl A src 1.2.3.4
acl B src 5.6.7.8
http_access allow A B
¸Ã¹æÔòÓÀ²»ÕýÈ·£¬ÒòΪij¸öÔ´IP µØÖ·²»¿ÉÄÜͬʱµÈͬÓÚ1.2.3.4 ºÍ5.6.7.8¡£ÕâÌõ¹æÔòµÄÕæÕýÒâͼÊÇ£º
acl A src 1.2.3.4 5.6.7.8
http_access allow A
¶Ôij¸öACL ÖµµÄÆ¥ÅäËã·¨ÊÇ£¬squid ÔÚ·ÃÎÊÁбíÀïÕÒµ½Æ¥Å乿Ôòʱ£¬ËÑË÷ÖÕÖ¹¡£¼ÙÈçûÓзÃÎʹæÔòµ¼ÖÂÆ¥Å䣬ĬÈ϶¯×÷ÊÇÁбíÀï×îºóÒ»Ìõ¹æÔòµÄÈ¡·´¡£ÀýÈ磬¿¼ÂÇÈçϼòµ¥·ÃÎÊÅäÖãº
acl Bob ident bob
http_access allow Bob
¼ÙÈçÓû§Mary ·¢ÆðÇëÇó£¬Ëý»á±»¾Ü¾ø¡£ÁбíÀï×îºóµÄ£¨Î¨Ò»µÄ£©¹æÔòÊÇallow ¹æÔò£¬Ëü²»Æ¥ÅäÓû§Ãûmary¡£ÕâÑù£¬Ä¬Èϵ͝×÷ÊÇallow µÄÈ¡·´£¬¹ÊÇëÇ󱻾ܾø¡£ÀàËÆµÄ£¬¼ÙÈç×îºóµÄ¹æÔòÊÇdeny ¹æÔò£¬Ä¬È϶¯×÷ÊÇÔÊÐíÇëÇó¡£ÔÚ·ÃÎÊÁбíµÄ×îºó¼ÓÉÏÒ»Ìõ£¬Ã÷È·ÔÊÐí»ò¾Ü¾øËùÓÐÇëÇó£¬ÊǺõÄʵ¼Ê×ö·¨¡£ÎªÇå³þÆð¼û£¬ÒÔǰµÄʾÀýÓ¦¸ÃÈç´Ëд£º
acl All src 0/0
acl Bob ident bob
http_access allow Bob
http_access deny All
src 0/0 ACL ±íʾƥÅäÿһ¸öºÍÈÎÒâÀàÐ͵ÄÇëÇó¡£

6.2.3 ·ÃÎÊÁбí·ç¸ñ
squid µÄ·ÃÎÊ¿ØÖÆÓï·¨·Ç³£Ç¿´ó¡£´ó¶àÊýÇé¿öÏ£¬Äã¿ÉÒÔʹÓÃÁ½ÖÖ»ò¶àÖÖ·½·¨À´Íê³ÉͬÑùµÄÊ¡£Í¨³££¬Äã¸Ã½«¸ü¾ßÌåµÄºÍÊÜÏÞÖÆµÄ·ÃÎÊÁбí·ÅÔÚÊ×λ¡£ÀýÈ磬ÈçÏÂÓï¾ä²¢·ÇºÜºÃ£º
acl All src 0/0
acl Net1 src 1.2.3.0/24
acl Net2 src 1.2.4.0/24
acl Net3 src 1.2.5.0/24
acl Net4 src 1.2.6.0/24
acl WorkingHours time 08:00-17:00
http_access allow Net1 WorkingHours
http_access allow Net2 WorkingHours
http_access allow Net3 WorkingHours
http_access allow Net4
http_access deny All
¼ÙÈçÄãÕâÑùд£¬·ÃÎÊ¿ØÖÆÁбí»á¸üÈÝÒ×ά»¤ºÍÀí½â£º
http_access allow Net4
http_access deny !WorkingHours
http_access allow Net1
http_access allow Net2
http_access allow Net3
http_access deny All
ÎÞÂÛºÎʱ£¬Äã±àдÁËÒ»¸ö´øÁ½¸ö»ò¸ü¶àACL ÔªËØµÄ¹æÔò£¬½¨ÒéÄãÔÚÆäºó½ô¸úÒ»ÌõÏà·´µÄ£¬¸ü¹ã·ºµÄ¹æÔò¡£ÀýÈ磬ĬÈϵÄsquid ÅäÖþܾø·ÇÀ´×Ô±¾»úIP µØÖ·µÄcache ¹ÜÀíÇëÇó£¬ÄãÒ²ÐíÊÔͼÕâÑùд£º
acl CacheManager proto cache_object
acl Localhost src 127.0.0.1
http_access deny CacheManager !Localhost
È»¶ø£¬ÕâÀïµÄÎÊÌâÊÇ£¬ÄãûÓÐÔÊÐíȷʵÀ´×Ô±¾»úµÄcache ¹ÜÀíÇëÇó¡£ËæºóµÄ¹æÔò¿ÉÄܵ¼ÖÂÇëÇ󱻾ܾø¡£ÈçϹæÔò¾Í²úÉúÁËÎÊÌ⣺
acl CacheManager proto cache_object
acl Localhost src 127.0.0.1
acl MyNet 10.0.0.0/24
acl All src 0/0
http_access deny CacheManager !Localhost
http_access allow MyNet
http_access deny All
¼ÈÈ»À´×Ô±¾»úµÄÇëÇ󲻯¥ÅäMyNet£¬Ëü±»¾Ü¾ø¡£±àд±¾¹æÔòµÄ¸üºÃ·½·¨ÊÇ£º
http_access allow CacheManager localhost
http_access deny CacheManager
http_access allow MyNet
http_access deny All

6.2.4 ÑÓʱ¼ì²é
ijЩACL ²»ÄÜÔÚÒ»¸ö¹ý³ÌÀï±»¼ì²é£¬ÒòΪ±ØÒªµÄÐÅÏ¢²»¿ÉÓá£ident,dst,srcdomain ºÍproxy_auth ÀàÐÍÊôÓڸ÷¶³ë¡£µ±squid Óöµ½Ä³¸öACL ²»Äܱ»¼ì²éʱ£¬ËüÑÓ³Ù¾ö¶¨²¢ÇÒ·¢²¼¶Ô±ØÒªÐÅÏ¢µÄ²éѯ£¨IP µØÖ·£¬ÓòÃû£¬Óû§ÃûµÈ£©¡£µ±ÐÅÏ¢¿ÉÓÃʱ£¬squid ÔÙ´ÎÔÚÁбíµÄ¿ªÍ·Î»Öüì²éÕâЩ¹æÔò¡£Ëü²»»á´Óǰ´Î¼ì²éʣϵÄλÖüÌÐø¡£¼ÙÈç¿ÉÄÜ£¬ÄãÓ¦¸Ã½«ÕâЩ×î¿ÉÄܱ»ÑÓʱµÄACL ·ÅÔÚ¹æÔòµÄ¶¥²¿£¬ÒÔ±ÜÃâ²»±ØÒªµÄ£¬Öظ´µÄ¼ì²é¡£
ÒòΪÑÓʱµÄ´ú¼ÛÌ«´ó£¬squid »á¾¡¿ÉÄÜ»º´æ²éѯ»ñÈ¡µÄÐÅÏ¢¡£ident ²éѯÔÚÿ¸öÁ¬½ÓÀï·¢Éú£¬¶ø²»ÊÇÔÚÿ¸öÇëÇóÀï¡£ÕâÒâζ×Å£¬µ±ÄãʹÓÃident ²éѯʱ£¬³ÖÐøHTTP Á¬½ÓÇÐʵ¶ÔÄãÓÐÀû¡£DNS ÏìÓ¦µÄÖ÷»úÃûºÍIP µØÖ·Ò²±»»º´æ£¬³ý·ÇÄãʹÓÃÔçÆÚµÄÍⲿdnsserver ½ø³Ì¡£´úÀíÑé
Ö¤ÐÅÏ¢±»»º´æ£¬Çë¼û6.1.2.12 Õ½ڵÄÃèÊö¡£

6.2.5 ¼õ»ººÍ¼ÓËÙ¹æÔò¼ì²é
Squid ÄÚ²¿¿¼ÂÇijЩ·ÃÎʹæÔò±»¿ìËÙ¼ì²é£¬ÆäËûµÄ±»¼õ»º¼ì²é¡£Çø±ðÊÇsquid ÊÇ·ñÑÓ³ÙËüµÄ¾ö¶¨£¬ÒԵȴý¸½¼ÓÐÅÏ¢¡£»»¾ä»°Ëµ£¬ÔÚsquid ²éѯ¸½¼ÓÐÅϢʱ£¬Ä³¸ö¼õ»º¼ì²é»á±»ÑÓʱ£¬ÀýÈ磺
+ ·´ÏòDNS ²éѯ£º¿Í»§IP µØÖ·µÄÖ÷»úÃû
+ RFC 1413 ident ²éѯ£º¿Í»§TCP Á¬½ÓµÄÓû§Ãû
+ ÑéÖ¤Æ÷£ºÑéÖ¤Óû§ÐÅÓÃ
+ DNS ת·¢²éѯ£ºÔ­Ê¼·þÎñÆ÷µÄIP µØÖ·
+ Óû§¶¨ÒåµÄÍⲿACL
ijЩ·ÃÎʹæÔòʹÓÿìËÙ¼ì²é¡£ÀýÈ磬icp_access ¹æÔò±»¿ìËÙ¼ì²é¡£ÎªÁË¿ìËÙÏìÓ¦ICP ²éѯ£¬Ëü±ØÐë±»¿ìËÙ¼ì²é¡£ÉõÖÁ£¬Ä³Ð©ACL ÀàÐÍÀýÈçproxy_auth£¬¶ÔICP ²éѯÀ´ËµÎÞÒâÒå¡£ÏÂÁзÃÎʹæÔò±»¿ìËÙ¼ì²é£º
header_access
reply_body_max_size
reply_access
ident_lookup
delay_access
miss_access
broken_posts
icp_access
cache_peer_access
redirector_access
snmp_access
ÏÂÁÐACL ÀàÐÍ¿ÉÄÜÐèÒªÀ´×ÔÍⲿÊý¾ÝÔ´£¨DNS£¬ÑéÖ¤Æ÷µÈ£©µÄÐÅÏ¢£¬ÕâÑùÓë¿ìËٵķÃÎʹæÔò²»¼æÈÝ£º
srcdomain, dstdomain, srcdom_regex, dstdom_regex
dst, dst_as
proxy_auth
ident
external_acl_type
ÕâÒâζ×Å£¬ÀýÈ磬²»ÄÜÔÚheader_access ¹æÔòÀïʹÓÃident ACL¡£

6.3 ³£¼ûÓ÷¨
ÒòΪ·ÃÎÊ¿ØÖÆ¿ÉÄܸܺ´ÔÓ£¬±¾½Ú°üº¬Ò»Ð©Ê¾Àý¡£ËüÃÇÃèÊöÁËһЩ·ÃÎÊ¿ØÖÆµÄÆÕͨÓ÷¨¡£Äã¿ÉÒÔÔÚʵ¼ÊÖе÷ÕûËüÃÇ¡£
6.3.1 ½ö½öÔÊÐí±¾µØ¿Í»§
¼¸ºõÿ¸ösquid °²×°ºó£¬¶¼ÏÞÖÆ»ùÓÚ¿Í»§IP µØÖ·µÄ·ÃÎÊ¡£ÕâÊDZ£»¤ÄãµÄϵͳ²»±»ÀÄÓõÄ×îºÃµÄ·½·¨Ö®Ò»¡£×öµ½Õâµã×îÈÝÒ׵ķ½·¨ÊÇ£¬±àд°üº¬IP µØÖ·¿Õ¼äµÄACL£¬È»ºóÔÊÐí¸ÃACL µÄHTTP ÇëÇ󣬲¢¾Ü¾øÆäËûµÄ¡£
acl All src 0/0
acl MyNetwork src 172.16.5.0/24 172.16.6.0/24
http_access allow MyNetwork
http_access deny All
Ò²Ðí¸Ã·ÃÎÊ¿ØÖÆÅäÖùýÓÚ¼òµ¥£¬ËùÒÔÄãÒªÔö¼Ó¸ü¶àÐС£¼Çסhttp_access µÄ˳ÐòÖÁ¹ØÖØÒª¡£²»ÒªÔÚdeny all ºóÃæÔö¼ÓÈκÎÓï¾ä¡£¼ÙÈç±ØÒª£¬Ó¦¸ÃÔÚallow MyNetwork ֮ǰ»òÖ®ºóÔö¼ÓйæÔò¡£

6.3.2 ×èÖ¹¶ñÒâ¿Í»§
ÒòΪijÖÖÀíÓÉ£¬ÄãÒ²ÐíÓбØÒª¾Ü¾øÌض¨¿Í»§IP µØÖ·µÄ·ÃÎÊ¡£ÕâÖÖÇé¿ö¿ÉÄÜ·¢Éú£¬ÀýÈ磬¼ÙÈçij¸ö¹ÍÔ±»òѧÉú·¢ÆðÒ»¸öÒì³£ºÄ·ÑÍøÂç´ø¿í»òÆäËû×ÊÔ´µÄweb Á¬½Ó£¬ÔÚ¸ù±¾½â¾öÕâ¸öÎÊÌâǰ£¬Äã¿ÉÒÔÅäÖÃsquid À´×èÖ¹Õâ¸öÇëÇó£º
acl All src 0/0
acl MyNetwork src 172.16.5.0/24 172.16.6.0/24
acl ProblemHost src 172.16.5.9
http_access deny ProblemHost
http_access allow MyNetwork
http_access deny All

6.3.3 ÄÚÈݹýÂË
×èÈû¶ÔÌØ¶¨ÄÚÈݵķÃÎÊÊǼ¬ÊÖµÄÎÊÌ⡣ͨ³££¬Ê¹ÓÃsquid ½øÐÐÄÚÈݹýÂË×îÄѵIJ¿·Ö£¬ÊDZ»×èÈûµÄÕ¾µãÁÐ±í¡£ÄãÒ²ÐíÏë×Ô¼ºÎ¬»¤Ò»¸öÕâÑùµÄÁÐ±í£¬»ò´ÓÆäËûµØ·½»ñȡһ¸ö¡£squid FAQµÄ¡°·ÃÎÊ¿ØÖÆ¡±Õ½ÚÓÐÁ´½ÓÖ¸ÏòÃâ·ÑµÄ¿ÉÓÃÁÐ±í¡£
ʹÓÃÕâÑùµÄÁбíµÄACL Óï·¨ÒÀÀµÓÚËüµÄÄÚÈÝ¡£¼ÙÈçÁбí°üº¬ÕýÔò±í´ïʽ£¬Äã¿ÉÄÜÒªÕâÑùд£º
acl PornSites url_regex "/usr/local/squid/etc/pornlist"
http_access deny PornSites
ÁíÒ»·½Ã棬¼ÙÈçÁбí°üº¬Ô­Ê¼·þÎñÆ÷Ö÷»úÃû£¬ÄÇô¼òµ¥µÄ¸ü¸Äurl_regex Ϊdstdomain¡£

6.3.4 ÔÚ¹¤×÷ʱ¼äµÄÊÜÏÞʹÓÃ
ijЩ¹«Ë¾Ï²»¶ÔÚ¹¤×÷ʱ¼äÏÞÖÆweb ʹÓã¬ÎªÁ˽ÚÊ¡´ø¿í£¬»òÕßÊǹ«Ë¾Õþ²ß½ûÖ¹Ô±¹¤ÔÚ¹¤×÷ʱ×öijЩÊÂÇé¡£¹ØÓÚÕâ¸ö×îÄѵIJ¿·ÖÊÇ£¬ËùνºÏÊʵĺͲ»ºÏÊʵÄinternet ʹÓÃÖ®¼äµÄÇø±ðÊÇʲô¡£²»ÐÒµÄÊÇ£¬ÎÒ²»ÄܶÔÕâ¸öÎÊÌâ×÷³ö»Ø´ð¡£ÔÚ¸ÃÀý×ÓÀ¼ÙÉèÄãÒÑÊÕ¼¯ÁËÒ»·ÝwebÕ¾µãÓòÃûÁÐ±í£¬Ëü°üº¬ÒÑÖªµÄ²»ÊʺÏÓÚÄãµÄÕ¾µãÃû£¬ÄÇôÕâÑùÅäÖÃsquid£º
acl NotWorkRelated dstdomain "/usr/local/squid/etc/not-work-related-sites"
acl WorkingHours time D 08:00-17:30
http_access deny !WorkingHours NotWorkRelated
Çë×¢ÒâÔڸùæÔòÀïÊ×ÏÈ·ÅÖÃ!WorkingHours ACL¡£Ïà¶ÔÓÚ×Ö·û´®»òÁÐ±í£¬dstdomain ACL²úÉúµÄÐÔÄÜ´ú¼Û½Ï´ó£¬µ«time ACL ¼ì²éÈ´ºÜ¼òµ¥¡£
ÏÂÃæµÄÀý×Ó£¬½øÒ»²½Àí½âÈçºÎ½áºÏÈçÏ·½·¨ºÍÇ°ÃæÃèÊöµÄÔ´µØÖ·¿ØÖÆ£¬À´¿ØÖÆ·ÃÎÊ¡£
acl All src 0/0
acl MyNetwork src 172.16.5.0/24 172.16.6.0/24
acl NotWorkRelated dstdomain "/usr/local/squid/etc/not-work-related-sites"
acl WorkingHours time D 08:00-17:30
http_access deny !WorkingHours NotWorkRelated
http_access allow MyNetwork
http_access deny All
ÉÏÃæµÄ·½·¨¿ÉÐУ¬ÒòΪËüʵÏÖÁËÎÒÃǵÄÄ¿±ê£¬ÔÚ¹¤×÷ʱ¼äÄھܾøÄ³Ð©ÇëÇ󣬲¢ÔÊÐíÀ´×ÔÄã×Ô¼ºÍøÂçµÄÇëÇó¡£È»¶ø£¬ËüÒ²ÐíÓеãµÍЧ¡£×¢ÒâNotWorkRelated ACL ÔÚËùÓÐÇëÇóÀï±»ËÑË÷£¬¶ø²»¹ÜÔ´IP µØÖ·¡£¼ÙÈçÄǸöÁбí·Ç³£³¤£¬ÔÚÁбíÀï¶ÔÍâ²¿ÍøÂçÇëÇóµÄËÑË÷£¬´¿´âÊÇÀË·ÑCPU ×ÊÔ´¡£ËùÒÔ£¬Äã¸ÃÕâÑù¸Ä±ä¹æÔò£º
http_access deny !MyNetwork
http_access deny !WorkingHours NotWorkRelated
http_access Allow All
ÕâÀ½«´ú¼Û½Ï´óµÄ¼ì²é·ÅÔÚ×îºó¡£ÊÔͼÀÄÓÃsquid µÄÍⲿÓû§²»»áÔÙÀË·ÑÄãµÄCPU×ÊÔ´¡£

6.3.5 ×èÖ¹squid Óë·ÇHTTP ·þÎñÆ÷»á»°
Äã±ØÐ뾡¿ÉÄܲ»ÈÃsquid ÓëijЩÀàÐ͵ÄTCP/IP ·þÎñÆ÷ͨÐÅ¡£ÀýÈ磬ÓÀ²»Äܹ»Ê¹ÓÃsquid»º´æÀ´×ª·¢SMTP ´«Êä¡£ÎÒÔÚÇ°Ãæ½éÉÜport ACL ʱÌáµ½¹ýÕâµã¡£È»¶ø£¬ËüÊÇÖÁ¹ØÖØÒªµÄ£¬ËùÒÔÔÙÇ¿µ÷һϡ£
Ê×ÏÈ£¬Äã±ØÐë¹Ø×¢CONNECT ÇëÇó·½·¨¡£Ê¹Óø÷½·¨µÄÓû§´úÀí£¬Í¨¹ýHTTP ´úÀíÀ´·â×°TCP Á¬½Ó¡£Ëü±»´´ÔìÓÃÓÚHTTP/TLS ÇëÇó£¬ÕâÊÇCONNECT ·½·¨µÄÖ÷ÒªÓÃ;¡£Ä³Ð©Óû§´úÀíÒ²¿ÉÒÔͨ¹ý·À»ðǽ´úÀíÀ´·â×°NNTP/TLS ´«Êä¡£ËùÓÐÆäËûµÄÓ÷¨Ó¦¸Ã±»¾Ü¾ø¡£ËùÒÔ£¬
ÄãµÄ·ÃÎÊÁÐ±í£¬Ó¦¸Ã½ö½öÔÊÐíµ½HTTP/TLS ºÍNNTP/TLS ¶Ë¿ÚµÄCONNECT ÇëÇó¡£
µÚ¶þ£¬ÄãÓ¦¸Ã×èÖ¹squid Á¬½Óµ½Ä³Ð©·þÎñ£¬ÀýÈçSMTP¡£ÄãÒ²¿ÉÒÔ¿ª·Å°²È«¶Ë¿ÚºÍ¾Ü¾øÎ£Ïն˿ڡ£ÎÒ¶ÔÕâÁ½ÖÖ¼¼Êõ¸ø³öʾÀý¡£
ÈÃÎÒÃÇ¿´¿´Ä¬ÈϵÄsquid.conf ÎļþÌṩµÄ¹æÔò£º
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 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 1025-65535 # unregistered ports
acl SSL_ports port 443 563
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
<additional http_access lines as necessary...>;
Safe_ports ACL ÁоÙÁËËùÓеÄsquid ÓкϷ¨ÏìÓ¦µÄÌØÈ¨¶Ë¿Ú£¨Ð¡ÓÚ1024£©¡£ËüÒ²ÁоÙÁËËùÓзÇÌØÈ¨¶Ë¿Ú·¶Î§¡£×¢ÒâSafe_ports ACL Ò²°üÀ¨Á˰²È«HTTP ºÍNNTP ¶Ë¿Ú£¨443 ºÍ563£©£¬¼´Ê¹ËüÃÇÒ²³öÏÖÔÚSSL_ports ACL Àï¡£ÕâÊÇÒòΪSafe_ports ÔÚ¹æÔòÀïÊ×Ïȱ»¼ì²é¡£¼ÙÈçÄã½»»»ÁËÁ½¸öhttp_access ÐеÄ˳Ðò£¬ÄãÒ²ÐíÄÜ´ÓSafe_ports ÁбíÀïɾ³ý443 ºÍ563£¬µ«Ã»±ØÒªÕâôÂé·³¡£
Óë´ËÏàËÆµÄÆäËû·½·¨ÊÇ£¬ÁоÙÒÑÖª²»°²È«µÄÌØÈ¨¶Ë¿Ú£º
acl Dangerous_ports 7 9 19 22 23 25 53 109 110 119
acl SSL_ports port 443 563
acl CONNECT method CONNECT
http_access deny Dangerous_ports
http_access deny CONNECT !SSL_ports
<additional http_access lines as necessary...>;
¼ÙÈçÄã²»ÊìϤÕâÐ©ÆæÌØµÄ¶Ë¿ÚºÅ£¬Ò²²»Òªµ£ÐÄ¡£Äã¿ÉÒÔÔĶÁunix ϵͳµÄ/etc/services Îļþ£¬»òÕßÔĶÁIANA µÄ×¢²áTCP/UDP ¶Ë¿ÚºÅÁÐ±í£º
http://www.iana.org/assignments/port-numbers

6.3.6 ÊÚÓèijЩÓû§ÌØÊâµÄ·ÃÎÊ
ʹÓûùÓÚÓû§Ãû½øÐзÃÎÊ¿ØÖƵÄ×éÖ¯£¬Í¨³£ÐèÒªÊÚÓèijЩÓû§ÌØÊâµÄȨÏÞ¡£Ôڸüòµ¥Ê¾ÀýÀÓÐÈý¸öÔªËØ£ºËùÓÐÊÚȨÓû§£¬¹ÜÀíÔ±Óû§Ãû£¬ÏÞÖÆ·ÃÎʵÄweb Õ¾µãÁÐ±í¡£Õý³£µÄÓû§²»ÔÊÐí·ÃÎÊÊÜÏÞÕ¾µã£¬µ«¹ÜÀíÔ±ÓÐά»¤Õâ¸öÁбíµÄÈÎÎñ¡£ËûÃDZØÐëÁ¬½Óµ½ËùÓзþÎñÆ÷£¬È¥Ñé֤ij¸öÌØÊâÕ¾µãÊÇ·ñ¸Ã·Åµ½ÊÜÏÞÕ¾µãÁбíÀï¡£ÈçÏÂÏÔʾÈçºÎÍê³ÉÕâ¸öÈÎÎñ£º
auth_param basic program /usr/local/squid/libexec/ncsa_auth
/usr/local/squid/etc/passwd
acl Authenticated proxy_auth REQUIRED
acl Admins proxy_auth Pat Jean Chris
acl Porn dstdomain "/usr/local/squid/etc/porn.domains"
acl All src 0/0
http_access allow Admins
http_access deny Porn
http_access allow Authenticated
http_access deny All
Ê×ÏÈ£¬ÓÐÈý¸öACL ¶¨Òå¡£Authenticated ACL Æ¥ÅäÈκÎÓÐЧµÄ´úÀíÑéÖ¤ÐÅÓá£Admins ACLÆ¥ÅäÀ´×ÔÓû§Pat,Jean,ºÍChris µÄÓÐЧÐÅÓá£Porn ACL Æ¥ÅäijЩԭʼ·þÎñÆ÷Ö÷»úÃû£¬ËüÃÇÔÚporn.domains ÎļþÀïÕÒµ½¡£
¸ÃʾÀýÓÐËĸö·ÃÎÊ¿ØÖƹæÔò¡£µÚÒ»¸ö½ö½ö¼ì²éAdmins ACL£¬ÔÊÐíËùÓÐÀ´×ÔPat,Jean,ºÍChris µÄÇëÇó¡£¶ÔÆäËûÓû§£¬squid ×ªÒÆµ½ÏÂÒ»Ìõ¹æÔò¡£¶ÔµÚ¶þÌõ¹æÔò£¬¼ÙÈçԭʼÖ÷»úÃûλÓÚporn.domains Îļþ£¬ÄÇô¸ÃÇëÇ󱻾ܾø¡£¶Ô²»Æ¥ÅäPorn ACL µÄÇëÇó£¬squid ×ªÒÆµ½µÚÈýÌõ¹æÔò¡£µÚÈýÌõ¹æÔòÀ¼ÙÈçÇëÇó°üº¬ÓÐЧµÄÑéÖ¤ÐÅÓã¬ÄÇô¸ÃÇëÇó±»ÔÊÐí¡£ÍⲿÑéÖ¤Æ÷£¨ÕâÀïµÄncsa_auth£©¾ö¶¨ÊÇ·ñÐÅÓÃÓÐЧ¡£¼ÙÈçËüÃÇÎÞЧ£¬×îºóµÄ¹æÔò³öÏÖ£¬¸ÃÇëÇ󱻾ܾø¡£
×¢Òâncsa_auth ÑéÖ¤Æ÷²¢·Ç±ØÐè¡£Äã¿ÉÒÔʹÓÃ12 ÕÂÀïÃèÊöµÄÈκÎÑéÖ¤¸¨Öú³ÌÐò¡£

6.3.7 ×èÖ¹ÁÚ½ücache µÄÀÄÓÃ
¼ÙÈçÄãʹÓÃÁËcache ¼¯Èº£¬Äã±ØÐ븶³ö¶àÓàµÄСÐÄ¡£cache ͨ³£Ê¹ÓÃICP À´·¢ÏÖÄÄЩ¶ÔÏó±»»º´æÔÚËüÃǵÄÁÚ¾Ó»úÆ÷ÉÏ¡£Äã½ö¸Ã½ÓÊÜÀ´×ÔÒÑÖªÊÚȨµÄÁÚ¾Ócache µÄICP ²éѯ¡£
¸ü½øÒ»²½£¬Í¨¹ýʹÓÃmiss_access ¹æÔòÁÐ±í£¬ÄãÄÜÅäÖÃsquid Ç¿ÖÆÏÞÖÆÁÚ½ü¹ØÏµ¡£squid½ö½öÔÚcache ¶ªÊ§£¬Ã»ÓÐcache ÃüÖÐʱ²Å¼ì²éÕâЩ¹æÔò¡£ÕâÑù£¬ÔÚmiss_access ÁбíÉúЧǰ£¬ËùÓÐÇëÇó±ØÐëÊ×ÏÈͨ¹ýhttp_access ¹æÔò¡£
ÔÚ±¾Ê¾ÀýÀÓÐÈý¸ö¶ÀÁ¢µÄACL¡£Ò»¸öÊÇÖ±½ÓÁ¬½Óµ½cache µÄ±¾µØÓû§£»ÁíÒ»¸öÊÇ×Ócache£¬Ëü±»ÔÊÐíÀ´×ª·¢cache ¶ªÊ§µÄÇëÇó£»µÚÈý¸öÊÇÁÚ½ücache£¬Ëü±ØÐë´Ó²»×ª·¢µ¼ÖÂcache¶ªÊ§µÄÇëÇó¡£ÈçÏÂÊÇËüÃÇÈçºÎ¹¤×÷£º
alc All src 0/0
acl OurUsers src 172.16.5.0/24
acl ChildCache src 192.168.1.1
acl SiblingCache src 192.168.3.3
http_access allow OurUsers
http_access allow ChildCache
http_access allow SiblingCache
http_access deny All
miss_access deny SiblingCache
icp_access allow ChildCache
icp_access allow SiblingCache
icp_access deny All

6.3.8 ʹÓÃIP µØÖ·¾Ü¾øÇëÇó
ÎÒÔÚ6.1.2.4 Õ½ÚÀïÌá¹ý£¬dstdomain ÀàÐÍÊÇ×èÈû¶ÔÖ¸¶¨Ô­Ê¼Ö÷»ú·ÃÎʵĺÃÑ¡Ôñ¡£È»¶ø£¬´ÏÃ÷µÄÓû§Í¨¹ýÌæ»»URL Ö÷»úÃû³ÉIP µØÖ·£¬Äܹ»ÈƹýÕâÑùµÄ¹æÔò¡£¼ÙÈçÄãÏë³¹µ××èÖ¹ÕâÑùµÄÇëÇó£¬Äã¿ÉÄܵÃ×èÈûËùÓаüº¬IP µØÖ·µÄÇëÇó¡£Äã¿ÉÒÔʹÓÃÖØ¶¨ÏòÆ÷£¬»òÕßʹÓÃdstdom_regex ACL À´Íê³É¡£ÀýÈ磺
acl IPForHostname dstdom_regex ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$
http_access deny IPForHostname

6.3.9 http_reply_access ʾÀý
»ØÏëһϣ¬µ±squid ¼ì²éhttp_reply_access ¹æÔòʱ£¬ÏìÓ¦µÄÄÚÈÝÀàÐÍÊÇΨһµÄ¿ÉÓÃÐÂÐÅÏ¢¡£ÕâÑù£¬ÄãÄܱ£³Öhttp_reply_access ¹æÔò¼òµ¥»¯¡£ÄãÖ»Ðè¼ì²érep_mime_type ACL¡£ÀýÈ磬ÈçÏÂʾÀý¸æËßÄãÈçºÎ¾Ü¾øÄ³Ð©ÄÚÈÝÀàÐ͵ÄÏìÓ¦£º
acl All src 0/0
acl Movies rep_mime_type video/mpeg
acl MP3s rep_mime_type audio/mpeg
http_reply_access deny Movies
http_reply_access deny MP3s
http_reply_access allow All
Äã²»±ØÔÚhttp_reply_access ÁбíÀïÖØ¸´http_access ¹æÔò¡£ÕâÀïµÄallow ALL ¹æÔò²»Òâζ×ÅËùÓжÔsquid µÄÇëÇó±»ÔÊÐí¡£Èκα»http_access ¾Ü¾øµÄÇëÇ󣬴ÓÀ´²»»áÔÙ±»http_reply_access ¼ì²é¡£

6.3.10 ×èÖ¹¶Ô±¾µØÕ¾µãµÄcache ÃüÖÐ
¼ÙÈçÄãÓÐÐí¶àԭʼ·þÎñÆ÷ÔÚ±¾µØÍøÂçÖУ¬ÄãÒ²ÐíÏëÅäÖÃsquid£¬ÒÔ±ãËüÃǵÄÏìÓ¦ÓÀ²»±»»º´æ¡£ÒòΪ·þÎñÆ÷¾ÍÔÚ¸½½ü£¬ËüÃDz»»á´Ócache ÃüÖÐÀï»ñÒæºÜ¶à¡£ÁíÍ⣬ËüÊÍ·Å´æ´¢¿Õ¼ä¸øÆäËûÔ¶³ÌԭʼÖ÷»ú¡£
µÚÒ»²½ÊǶ¨Òå±¾µØ·þÎñÆ÷µÄACL¡£Äã¿ÉÄÜʹÓûùÓÚµØÖ·µÄACL£¬ÀýÈ磺
acl LocalServers dst 172.17.1.0/24
¼ÙÈç·þÎñÆ÷²»Î»ÓÚµ¥Ò»µÄ×ÓÍø£¬ÄãÒ²Ðí¸Ã´´½¨dstdomain ACL:
acl LocalServers dstdomain .example.com
½ÓÏÂÀ´£¬Äã¼òµ¥µÄʹÓÃno_cache access ¹æÔò£¬¾Ü¾øÕâЩ·þÎñÆ÷µÄcache£º
no_cache deny LocalServers
no_cache ¹æÔò²»»á×èÖ¹¿Í»§·¢ËÍÇëÇóµ½squid¡£Ã»Óа취ÅäÖÃsquid ×èÖ¹ÕâÑùµÄÇëÇó½øÀ´¡£´úÌæµÄ£¬Äã±ØÐëÅäÖÃÓû§´úÀí×ÔÉí¡£
¼ÙÈçÄãÔÚsquid ÔËÐÐÒ»¶Îʱ¼äºóÔö¼Óno_cache ¹æÔò£¬cache ¿ÉÄܰüº¬Ò»Ð©Æ¥ÅäйæÔòµÄ¶ÔÏó¡£ÔÚsquid2.5 ֮ǰµÄ°æ±¾£¬ÕâЩÒÔǰ»º´æµÄ¶ÔÏó¿ÉÄÜÒÔcache ÃüÖзµ»Ø¡£È»¶øÏÖÔÚ£¬squidÇå³ýµôËùÓÐÆ¥Åäno_cache ¹æÔòµÄ»º´æÏìÓ¦¡£

6.4 ²âÊÔ·ÃÎÊ¿ØÖÆ
·ÃÎÊ¿ØÖÆÅäÖÃÔ½³¤£¬Ëü¾ÍÔ½¸´ÔÓ¡£Ç¿ÁÒ½¨ÒéÄãÔÚ½«ËüÃÇÓÃÓÚ²úÆ·»·¾³Ö®Ç°£¬ÏȲâÊÔ·ÃÎÊ¿ØÖÆ¡£µ±È»£¬Ê×ÏÈ×öµÄÊÂÊÇÈ·ÈÏsquid ÄÜÕýÈ·µÄ½âÎöÅäÖÃÎļþ¡£Ê¹ÓÃ-k parse ¹¦ÄÜ£º
% squid -k parse
ΪÁ˽øÒ»²½²âÊÔ·ÃÎÊ¿ØÖÆ£¬ÄãÐèÒª°²×°Ò»¸öÓÃÓÚ²âÊÔµÄsquid¡£ÈÝÒ××öµ½µÄ·½·¨ÊÇ£¬±àÒëÁíÒ»·Ýsquid µ½ÆäËû$prefix λÖá£ÀýÈ磺
% tar xzvf squid-2.5.STABLE4.tar.gz
% cd squid-2.5.STABLE4
% ./configure --prefix=/tmp/squid ...
% make && make install
ÔÚ°²×°Íêºó£¬Äã±ØÐë±à¼­ÐµÄsquid.conf Îļþ£¬¸ü¸ÄһЩָÁî¡£¼ÙÈçsquid ÒѾ­ÔËÐÐÔÚ
ĬÈ϶˿ڣ¬ÄÇôÇë¸Ä±ähttp_port¡£ÎªÁËÖ´Ðмòµ¥µÄ²âÊÔ£¬´´½¨µ¥Ò»µÄСĿ¼£º
cache_dir ufs /tmp/squid/cache 100 4 4
¼ÙÈçÄã²»ÏëÖØ±àÒësquid£¬ÄãÒ²ÄÜ´´½¨Ò»·ÝеÄÅäÖÃÎļþ¡£¸Ã·½·¨µÄ±×¶ËÊÇÄã±ØÐëÉèÖÃËùÓеÄÈÕÖ¾Îļþ·¾¶ÎªÁÙʱĿ¼£¬ÒԱ㲻»á¸²¸ÇÕæÕýµÄÎļþ¡£
Äã¿ÉÒÔʹÓÃsquidclient ³ÌÐòÀ´ÇáËɵIJâÊÔijЩ·ÃÎÊ¿ØÖÆ¡£ÀýÈ磬¼ÙÈçÄãÓÐÒ»Ìõ¹æÔò£¬ËüÒÀÀµÓÚԭʼ·þÎñÆ÷Ö÷»úÃû£¨dstdomain ACL£©£¬»òÕßijЩURL ²¿·Ö£¨url_regex »òurlpath_regex£©£¬¼òµ¥µÄÊäÈëÄãÆÚÍû±»ÔÊÐí»ò¾Ü¾øµÄURI:
% squidclient -p 4128 http://blocked.host.name/blah/blah
or:
% squidclient -p 4128 http://some.host.name/blocked.ext
ijЩÀàÐ͵ÄÇëÇóÄÑÒÔ¿ØÖÆ¡£¼ÙÈçÄãÓÐsrc ACL£¬ËüÃÇ×èÖ¹À´×ÔÍâ²¿ÍøÂçµÄÇëÇó£¬ÄãÒ²ÐíÐèÒª´ÓÍⲿÖ÷»ú²âÊÔËüÃÇ¡£²âÊÔtime ACL Ò²ºÜÀ§ÄÑ£¬³ý·ÇÄãÄܸıäϵͳʱÖÓ£¬»òÕߵȴý×ã¹»³¤Ê±¼ä¡£ÄãÄÜʹÓÃsquidclient µÄ-H Ñ¡ÏîÀ´ÉèÖÃÈÎÒâÇëÇóÍ·¡£ÀýÈ磬¼ÙÈçÄãÐèÒª²âÊÔbrowser ACL£¬ÄÇôÕâÑù×ö£º
% squidclient -p 4128 http://www.host.name/blah \
-H 'User-Agent: Mozilla/5.0 (compatible; Konqueror/3)\r\n'
¸ü¶àµÄ¸´ÔÓÇëÇ󣬰üÀ¨¶à¸öÍ·²¿£¬Çë²Î¿¼16.4 ÕÂÖÐÃèÊöµÄ¼¼Êõ¡£
ÄãÒ²Ðí¿¼ÂÇÖÆ¶©Ò»Ïîcron£¬¶¨ÆÚ¼ì²éACL£¬ÒÔ·¢ÏÖÆÚÍûµÄÐÐΪ£¬²¢±¨¸æÈκÎÒì³£¡£ÈçÏÂÊÇ¿ÉÒÔÆð²½µÄʾÀýshell ½Å±¾£º
#!/bin/sh
set -e
TESTHOST="www.squid-cache.org"
# make sure Squid is not proxying dangerous ports
#
ST=`squidclient 'http://$TESTHOST:25/' | head -1 | awk '{print $2}'`
if test "$ST" != 403 ; then
echo "Squid did not block HTTP request to port 25"
fi
# make sure Squid requires user authentication
#
ST=`squidclient 'http://$TESTHOST/' | head -1 | awk '{print $2}'`
if test "$ST" != 407 ; then
echo "Squid allowed request without proxy authentication"
fi
# make sure Squid denies requests from foreign IP addresses
# elsewhere we already created an alias 192.168.1.1 on one of
# the system interfaces
#
EXT_ADDR=192.168.1.1
ST=`squidclient -l $EXT_ADDR 'http://$TESTHOST/' | head -1 | awk '{print $2}'`
if test "$ST" != 403 ; then
echo "Squid allowed request from external address $EXT_ADDR"
fi
exit 0
7£®´ÅÅÌ»º´æ»ù´¡
7.1 cache_dirÖ¸Áî
cache_dirÖ¸ÁîÊÇsquid.confÅäÖÃÎļþÀï×îÖØÒªµÄÖ¸ÁîÖ®Ò»¡£Ëü¸æËßsquidÒÔºÎÖÖ·½Ê½´æ´¢cacheÎļþµ½´ÅÅ̵ÄʲôλÖá£cache_dirÖ¸ÁîÈ¡ÈçϲÎÊý£º
cache_dir scheme directory size L1 L2 [options]

7.1.1 ²ÎÊý£ºScheme
SquidÖ§³ÖÐí¶à²»Í¬µÄ´æ´¢»úÖÆ¡£Ä¬Èϵģ¨Ô­Ê¼µÄ£©ÊÇufs¡£ÒÀÀµÓÚ²Ù×÷ϵͳµÄ²»Í¬£¬Äã¿ÉÒÔÑ¡Ôñ²»Í¬µÄ´æ´¢»úÖÆ¡£ÔÚ./configureʱ£¬Äã±ØÐëʹÓÃ--enable-storeio=LISTÑ¡ÏîÀ´±àÒëÆäËû´æ´¢»úÖÆµÄ¸½¼Ó´úÂë¡£ÎÒ½«ÔÚ8.7ÕÂÌÖÂÛaufs,diskd,cossºÍnull¡£ÏÖÔÚ£¬ÎÒ½ö½öÌÖÂÛufs»úÖÆ£¬ËüÓëaufsºÍdiskdÒ»Ö¡£

7.1.2 ²ÎÊý£ºDirectory
¸Ã²ÎÊýÊÇÎļþϵͳĿ¼£¬squid½«cache¶ÔÏóÎļþ´æ·ÅÔÚÕâ¸öĿ¼Ï¡£Õý³£µÄ£¬cache_dirʹÓÃÕû¸öÎļþϵͳ»ò´ÅÅÌ·ÖÇø¡£Ëüͨ³£²»½éÒâÊÇ·ñÔÚµ¥¸öÎļþϵͳ·ÖÇøÀï·ÅÖÃÁ˶à¸öcacheĿ¼¡£È»¶ø£¬ÎÒÍÆ¼öÔÚÿ¸öÎïÀí´ÅÅÌÖУ¬½ö½öÉèÖÃÒ»¸öcacheĿ¼¡£ÀýÈ磬¼ÙÈçÄãÓÐ2¸öÎÞÓôÅÅÌ£¬Äã¿ÉÒÔÕâÑù×ö£º
# newfs /dev/da1d
# newfs /dev/da2d
# mount /dev/da1d /cache0
# mount /dev/da2d /cache1
È»ºóÔÚsquid.confÀïÔö¼ÓÈçÏÂÐУº
cache_dir ufs /cache0 7000 16 256
cache_dir ufs /cache1 7000 16 256
¼ÙÈçÄãûÓпÕÏÐÓ²ÅÌ£¬µ±È»ÄãÒ²ÄÜʹÓÃÒѾ­´æÔÚµÄÎļþϵͳ·ÖÇø¡£Ñ¡ÔñÓдóÁ¿¿ÕÏпռäµÄ·ÖÇø£¬ÀýÈç/usr»ò/var£¬È»ºóÔÚÏÂÃæ´´½¨Ò»¸öÐÂĿ¼¡£ÀýÈ磺
# mkdir /var/squidcache
È»ºóÔÚsquid.confÀïÔö¼ÓÈçÏÂÒ»ÐУº
cache_dir ufs /var/squidcache 7000 16 256

7.1.3 ²ÎÊý£ºSize
¸Ã²ÎÊýÖ¸¶¨ÁËcacheĿ¼µÄ´óС¡£ÕâÊÇsquidÄÜʹÓõÄcache_dirĿ¼µÄ¿Õ¼äÉÏÏÞ¡£¼ÆËã³öºÏÀíµÄÖµÒ²ÐíÓеãÄÑ¡£Äã±ØÐë¸øÁÙʱÎļþºÍswap.stateÈÕÖ¾£¬Áô³ö×ã¹»µÄ×ÔÓɿռ䣨¼û13.6Õ£©¡£ÎÒÍÆ¼ö¹ÒÔØ¿ÕÎļþϵͳ£¬¿ÉÒÔÔËÐÐdf£º
% df -k
Filesystem  1K-blocks     Used    Avail Capacity  Mounted on
/dev/da1d     3037766        8  2794737     0%    /cache0
/dev/da2d     3037766        8  2794737     0%    /cache1
ÕâÀïÄã¿ÉÒÔ¿´µ½ÎļþϵͳÓдóÔ¼2790MµÄ¿ÉÓÿռ䡣¼Çס£¬UFS±£ÁôÁ˲¿·Ö×îС×ÔÓɿռ䣬ÕâÀïÔ¼ÊÇ8%£¬Õâ¾ÍÊÇsquidΪʲô²»ÄÜʹÓÃÈ«²¿3040M¿Õ¼äµÄÔ­Òò¡£
ÄãÒ²ÐíÊÔͼ·ÖÅä2790M¸øcache_dir¡£Èç¹ûcache²»ºÜ·±Ã¦£¬²¢ÇÒÄã¾­³£ÂÖתÈÕÖ¾£¬ÄÇôÕâÑù×öÒ²Ðí¿ÉÐС£È»¶ø£¬Îª°²È«Æð¼û£¬ÎÒÍÆ¼ö±£Áô10%µÄ¿Õ¼ä¡£ÕâЩ¶îÍâµÄ¿Õ¼äÓÃÓÚ´æ·ÅsquidµÄswap.stateÎļþºÍÁÙʱÎļþ¡£
×¢Òâcache_swap_lowÖ¸ÁîÒ²Ó°ÏìÁËsquidʹÓöàÉٿռ䡣ÎÒ½«ÔÚ7.2ÕÂÀïÌÖÂÛËüµÄÉÏÏÞºÍÏÂÏÞ¡£
µ×ÏßÊÇ£¬ÄãÔÚ³õʼʱӦ±£ÊصĹÀ¼Æcache_dirµÄ´óС¡£½«cache_dirÉèΪ½ÏСµÄÖµ£¬²¢ÔÊÐíдÂúcache¡£ÔÚsquidÔËÐÐÒ»¶Îʱ¼äºó£¬cacheĿ¼»áÌîÂú£¬ÕâÑùÄã¿ÉÒÔÖØÐÂÆÀ¹Àcache_dirµÄ´óСÉèÖ᣼ÙÈçÄãÓдóÁ¿µÄ×ÔÓɿռ䣬¾Í¿ÉÒÔÇáËɵÄÔö¼ÓcacheĿ¼µÄ´óСÁË¡£

7.1.3.1 Inodes
Inodes£¨i½Úµã£©ÊÇunixÎļþϵͳµÄ»ù±¾½á¹¹¡£ËüÃǰüº¬´ÅÅÌÎļþµÄÐÅÏ¢£¬ÀýÈçÐí¿É£¬ÊôÖ÷£¬´óС£¬ºÍʱ¼ä´Á¡£¼ÙÈçÄãµÄÎļþϵͳÔËÐг¬³öÁËi½ÚµãÏÞÖÆ£¬¾Í²»ÄÜ´´ÔìÐÂÎļþ£¬¼´Ê¹»¹Óпռä¿ÉÓᣳ¬³öi½ÚµãµÄϵͳÔËÐзdz£Ôã¸â£¬ËùÒÔÔÚÔËÐÐsquid֮ǰ£¬ÄãÓ¦¸ÃÈ·ÈÏÓÐ×ã¹»µÄi½Úµã¡£
´´½¨ÐÂÎļþϵͳµÄ³ÌÐò£¨ÀýÈç,newfs»òmkfs£©»ùÓÚ×ܿռäµÄ´óС£¬±£ÁôÁËÒ»¶¨ÊýÁ¿µÄi½Úµã¡£ÕâЩ³ÌÐòͨ³£ÔÊÐíÄãÉèÖôÅÅ̿ռäµÄi½Úµã±ÈÂÊ¡£ÀýÈ磬ÇëÔĶÁnewfsºÍmkfsÊÖ²áµÄ-iÑ¡Ïî¡£´ÅÅ̿ռä¶Ôi½ÚµãµÄ±ÈÂÊ£¬¾ö¶¨ÁËÎļþϵͳÄÜʵ¼ÊÖ§³ÖµÄÎļþ´óС¡£´ó²¿·Öunixϵͳÿ4KB´´½¨Ò»¸öi½Úµã£¬Õâ¶Ôsquidͨ³£ÊÇ×ã¹»µÄ¡£Ñо¿ÏÔʾ£¬¶Ô´ó²¿·Öcache´úÀí£¬Êµ¼ÊÎļþ´óС´óÔ¼ÊÇ10KB¡£ÄãÒ²ÐíÄÜÒÔÿi½Úµã8KB¿ªÊ¼£¬µ«ÕâÓзçÏÕ¡£
ÄãÄÜʹÓÃdf -iÃüÁîÀ´¼àÊÓϵͳµÄi½Úµã£¬ÀýÈ磺
% df -ik
Filesystem  1K-blocks     Used    Avail Capacity iused   ifree  %iused  Mounted on
/dev/ad0s1a    197951    57114   125001    31%    1413   52345     3%   /
/dev/ad0s1f   5004533  2352120  2252051    51%  129175 1084263    11%   /usr
/dev/ad0s1e    396895     6786   358358     2%     205   99633     0%   /var
/dev/da0d     8533292  7222148   628481    92%  430894  539184    44%   /cache1
/dev/da1d     8533292  7181645   668984    91%  430272  539806    44%   /cache2
/dev/da2d     8533292  7198600   652029    92%  434726  535352    45%   /cache3
/dev/da3d     8533292  7208948   641681    92%  427866  542212    44%   /cache4

Èç¹ûi½ÚµãµÄʹÓã¨%iused£©ÉÙÓÚ¿Õ¼äʹÓã¨Capacity£©£¬ÄǾͺܺᣲ»ÐÒµÄÊÇ£¬Äã²»ÄܶÔÒѾ­´æÔÚµÄÎļþϵͳÔö¼Ó¸ü¶ài½Úµã¡£¼ÙÈçÄã·¢ÏÖÔËÐг¬³öÁËi½Úµã£¬ÄǾͱØÐëÍ£Ö¹squid£¬²¢ÇÒÖØÐ´´½¨Îļþϵͳ¡£¼ÙÈçÄã²»Ô¸ÒâÕâÑù×ö£¬ÄÇôÇëÏ÷¼õcache_dirµÄ´óС¡£

7.1.3.2 ÔÚ´ÅÅ̿ռäºÍ½ø³Ì´óС֮¼äµÄÁªÏµ
SquidµÄ´ÅÅ̿ռäʹÓÃÒ²Ö±½ÓÓ°ÏìÁËËüµÄÄÚ´æÊ¹Óá£Ã¿¸öÔÚ´ÅÅÌÖдæÔڵĶÔÏó£¬ÒªÇóÉÙÁ¿µÄÄÚ´æ¡£squidʹÓÃÄÚ´æÀ´Ë÷Òý´ÅÅÌÊý¾Ý¡£¼ÙÈçÄãÔö¼ÓÁËеÄcacheĿ¼£¬»òÕßÔö¼ÓÁË´ÅÅÌcache´óС£¬ÇëÈ·ÈÏÄãÒÑÓÐ×ã¹»µÄ×ÔÓÉÄÚ´æ¡£¼ÙÈçsquidµÄ½ø³Ì´óС´ïµ½»ò³¬¹ýÁËϵͳµÄÎïÀíÄÚ´æÈÝÁ¿£¬squidµÄÐÔÄÜϽµµÃ·Ç³£¿é¡£
SquidµÄcacheĿ¼ÀïµÄÿ¸ö¶ÔÏóÏûºÄ76»ò112×Ö½ÚµÄÄڴ棬ÕâÒÀÀµÓÚÄãµÄϵͳ¡£ÄÚ´æÒÔStoreEntry, MD5 Digest, ºÍLRU policy node½á¹¹À´·ÖÅ䡣СָÁÀýÈ磬32λ£©ÏµÍ³£¬ÏóÄÇЩ»ùÓÚIntel PentiumµÄ£¬È¡76×Ö½Ú¡£Ê¹ÓÃ64λָÁîCPUµÄϵͳ£¬Ã¿¸öÄ¿±êÈ¡112×Ö½Ú¡£Í¨¹ýÔĶÁcache¹ÜÀíµÄÄÚ´æ¹ÜÀíÎĵµ£¬ÄãÄÜ·¢ÏÖÕâЩ½á¹¹ÔÚÄãµÄϵͳÖкķѶàÉÙÄڴ棨Çë¼û14.2.1.2Õ£©¡£
²»ÐÒµÄÊÇ£¬ÄÑÒÔ¾«È·Ô¤²â¶ÔÓÚ¸ø¶¨ÊýÁ¿µÄ´ÅÅ̿ռ䣬ÐèҪʹÓöàÉÙ¸½¼ÓÄÚ´æ¡£ËüÒÀÀµÓÚʵ¼ÊÏìÓ¦´óС£¬¶øÕâ¸ö´óС»ùÓÚʱ¼ä²¨¶¯¡£ÁíÍ⣬Squid»¹ÎªÆäËûÊý¾Ý½á¹¹ºÍÄ¿µÄ·ÖÅäÄÚ´æ¡£²»Òª¼ÙÉèÄãµÄ¹À¼ÆÕýÈ·¡£Äã¸Ã¾­³£¼àÊÓsquidµÄ½ø³Ì´óС£¬¼ÙÈç±ØÒª£¬¿¼ÂÇÏ÷¼õcache´óС¡£

7.1.4 ²ÎÊý£ºL1ºÍL2
¶Ôufs,aufs,ºÍdiskd»úÖÆ£¬squidÔÚcacheĿ¼Ï´´½¨¶þ¼¶Ä¿Â¼Ê÷¡£L1ºÍL2²ÎÊýÖ¸¶¨Á˵ÚÒ»¼¶ºÍµÚ¶þ¼¶Ä¿Â¼µÄÊýÁ¿¡£Ä¬ÈϵÄÊÇ16ºÍ256¡£Í¼7-1ÏÔʾÎļþϵͳ½á¹¹¡£
Figure 7-1. »ùÓÚufs´æ´¢»úÖÆµÄcacheĿ¼½á¹¹
£¨ÂÔͼ£©
ijЩÈËÈÏΪsquidÒÀÀµÓÚL1ºÍL2µÄÌØÊâÖµ£¬»áÖ´ÐеøüºÃ»ò¸ü²î¡£ÕâµãÌýÆðÀ´ÓйØÏµ£¬¼´Ð¡Ä¿Â¼±È´óĿ¼±»¼ìË÷µÃ¸ü¿ì¡£ÕâÑù£¬L1ºÍL2Ò²Ðí¸Ã×ã¹»´ó£¬ÒÔ±ãL2Ŀ¼µÄÎļþ¸üÉÙ¡£
ÀýÈ磬¼ÙÉèÄãµÄcacheĿ¼´æ´¢ÁË7000M£¬¼ÙÉèʵ¼ÊÎļþ´óСÊÇ10KB£¬ÄãÄÜÔÚÕâ¸öcache_dirÀï´æ´¢700,000¸öÎļþ¡£Ê¹ÓÃ16¸öL1ºÍ256¸öL2Ŀ¼£¬×ܹ²ÓÐ4096¸ö¶þ¼¶Ä¿Â¼¡£700,000/4096µÄ½á¹ûÊÇ£¬Ã¿¸ö¶þ¼¶Ä¿Â¼´óÔ¼ÓÐ170¸öÎļþ¡£
Èç¹ûL1ºÍL2µÄÖµ±È½ÏС£¬ÄÇôʹÓÃsquid -z´´½¨½»»»Ä¿Â¼µÄ¹ý³Ì£¬»áÖ´Ðиü¿ì¡£ÕâÑù£¬¼ÙÈçÄãµÄcacheÎļþȷʵС£¬ÄãÒ²Ðí¸Ã¼õÉÙL1ºÍL2Ŀ¼µÄÊýÁ¿¡£
Squid¸øÃ¿¸öcacheÄ¿±ê·ÖÅäÒ»¸öΨһµÄÎļþºÅ¡£ÕâÊǸö32λµÄÕûÊý£¬ËüΨһ±êÃ÷´ÅÅÌÖеÄÎļþ¡£squidʹÓÃÏà¶Ô¼òµ¥µÄËã·¨£¬½«ÎļþºÅת»»Î»Â·¾¶Ãû¡£¸ÃË㷨ʹÓÃL1ºÍL2×÷Ϊ²ÎÊý¡£ÕâÑù£¬¼ÙÈçÄã¸Ä±äÁËL1ºÍL2£¬Äã¸Ä±äÁË´ÓÎļþºÅµ½Â·¾¶ÃûµÄÓ³Éä¹ØÏµ¡£¶Ô·Ç¿ÕµÄcache_dir¸Ä±äÕâЩ²ÎÊý£¬µ¼Ö´æÔÚµÄÎļþ²»¿É·ÃÎÊ¡£ÔÚcacheĿ¼¼¤»îºó£¬ÄãÓÀ²»Òª¸Ä±äL1ºÍL2Öµ¡£
SquidÔÚcacheĿ¼˳ÐòÖзÖÅäÎļþºÅ¡£ÎļþºÅµ½Â·¾¶ÃûµÄËã·¨£¨ÀýÈ磬storeUfsDirFullPath( )£©£¬ÓÃÒÔ½«Ã¿×éL2ÎļþÓ³É䵽ͬÑùµÄ¶þ¼¶Ä¿Â¼¡£SquidʹÓÃÁ˲ο¼Î»ÖÃÀ´×öµ½Õâµã¡£¸ÃËã·¨ÈÃHTMLÎļþºÍËüÄÚǶµÄͼƬ¸ü¿ÉÄܵı£´æÔÚͬһ¸ö¶þ¼¶Ä¿Â¼ÖС£Ä³Ð©ÈËÏ£Íûsquid¾ùÔȵĽ«cacheÎļþ·ÅÔÚÿ¸ö¶þ¼¶Ä¿Â¼ÖС£È»¶ø£¬µ±cache³õʼдÈëʱ£¬Äã¿ÉÒÔ·¢ÏÖ½ö½ö¿ªÍ·µÄÉÙÊýĿ¼°üº¬ÁËһЩÎļþ£¬ÀýÈ磺
% cd /cache0; du -k
2164    ./00/00
2146    ./00/01
2689    ./00/02
1974    ./00/03
2201    ./00/04
2463    ./00/05
2724    ./00/06
3174    ./00/07
1144    ./00/08
1       ./00/09
1       ./00/0A
1       ./00/0B
ÕâÊÇÍêÈ«Õý³£µÄ£¬²»±Øµ£ÐÄ¡£
7.1.5 ²ÎÊý£ºOptions
SquidÓÐ2¸öÒÀÀµÓÚ²»Í¬´æ´¢»úÖÆµÄcache_dirÑ¡Ïread-only±êÇ©ºÍmax-sizeÖµ¡£
7.1.5.1 read-only
read-onlyÑ¡ÏîָʾSquid¼ÌÐø´Ócache_dir¶ÁÈ¡Îļþ£¬µ«²»ÍùÀïÃæÐ´ÐÂÄ¿±ê¡£ËüÔÚsquid.confÎļþÀï¿´ÆðÀ´ÈçÏ£º
cache_dir ufs /cache0 7000 16 256 read-only
¼ÙÈçÄãÏë°ÑcacheÎļþ´ÓÒ»¸ö´ÅÅÌÇ¨ÒÆµ½ÁíÒ»¸ö´ÅÅÌ£¬ÄÇô¿ÉʹÓøÃÑ¡Ïî¡£Èç¹ûÄã¼òµ¥µÄÔö¼ÓÒ»¸öcache_dir£¬²¢ÇÒɾ³ýÁíÒ»¸ö£¬squidµÄÃüÖÐÂÊ»áÏÔÖøÏ½µ¡£ÔÚ¾ÉĿ¼ÊÇread-onlyʱ£¬ÄãÈÔÄÜ´ÓÄÇÀï»ñÈ¡cacheÃüÖС£ÔÚÒ»¶Îʱ¼äºó£¬¾Í¿ÉÒÔ´ÓÅäÖÃÎļþÀïɾ³ýread-only»º´æÄ¿Â¼¡£
7.1.5.2 max-size
ʹÓøÃÑ¡ÏÄã¿ÉÒÔÖ¸¶¨´æ´¢ÔÚcacheĿ¼ÀïµÄ×î´óÄ¿±ê´óС¡£ÀýÈ磺
cache_dir ufs /cache0 7000 16 256 max-size=1048576
×¢ÒâÖµÊÇÒÔ×Ö½ÚΪµ¥Î»µÄ¡£ÔÚ´ó¶àÊýÇé¿öÏ£¬Äã²»±ØÔö¼Ó¸ÃÑ¡Ïî¡£¼ÙÈçÄã×öÁË£¬Ç뾡Á¦½«ËùÓÐcache_dirÐÐÒÔmax-size´óС˳ÐòÀ´´æ·Å£¨´ÓСµ½´ó£©¡£
7.2 ´ÅÅ̿ռä»ù×¼
cache_swap_lowºÍcache_swap_highÖ¸Áî¿ØÖÆÁË´æ´¢ÔÚ´ÅÅÌÉϵĶÔÏóµÄÖû»¡£ËüÃǵÄÖµÊÇ×î´ócacheÌå»ýµÄ°Ù·Ö±È£¬Õâ¸ö×î´ócacheÌå»ýÀ´×ÔÓÚËùÓÐcache_dir´óСµÄ×ܺ͡£ÀýÈ磺
cache_swap_low 90
cache_swap_high 95
Èç¹û×ܹ²´ÅÅÌʹÓõÍÓÚcache_swap_low£¬squid²»»áɾ³ýcacheÄ¿±ê¡£Èç¹ûcacheÌå»ýÔö¼Ó£¬squid»áÖð½¥É¾³ýÄ¿±ê¡£ÔÚÎȶ¨×´Ì¬Ï£¬Äã·¢ÏÖ´ÅÅÌʹÓÃ×ÜÊÇÏà¶Ô½Ó½ücache_swap_lowÖµ¡£Äã¿ÉÒÔͨ¹ýÇëÇócache¹ÜÀíÆ÷µÄstoredirÒ³ÃæÀ´²é¿´µ±Ç°´ÅÅÌʹÓÃ×´¿ö£¨¼û14.2.1.39Õ£©¡£
Çë×¢Ò⣬¸Ä±äcache_swap_highÒ²Ðí²»»á¶ÔsquidµÄ´ÅÅÌʹÓÃÓÐÌ«´óЧ¹û¡£ÔÚsquidµÄÔçÆÚ°æ±¾À¸Ã²ÎÊýÓÐÖØÒª×÷Óã»È»¶øÏÖÔÚ£¬Ëü²»ÊÇÕâÑùÁË¡£
7.3 ¶ÔÏó´óСÏÞÖÆ
Äã¿ÉÒÔ¿ØÖÆ»º´æ¶ÔÏóµÄ×î´óºÍ×îСÌå»ý¡£±Èmaximum_object_size¸ü´óµÄÏìÓ¦²»»á±»»º´æÔÚ´ÅÅÌ¡£È»¶ø£¬ËüÃÇÈÔÈ»ÊÇ´úÀí·½Ê½µÄ¡£ÔÚ¸ÃÖ¸ÁîºóµÄÂß¼­ÊÇ£¬Äã²»Ïëij¸ö·Ç³£´óµÄÏìÓ¦À´À˷ѿռ䣬ÕâЩ¿Õ¼äÄܱ»Ðí¶àСÏìÓ¦¸üºÃµÄÀûÓ᣸ÃÓï·¨ÈçÏ£º
maximum_object_size size-specification
ÈçÏÂÊÇһЩʾÀý£º
maximum_object_size 100 KB
maximum_object_size 1 MB
maximum_object_size 12382 bytes
maximum_object_size 2 GB
SquidÒÔÁ½¸ö²»Í¬µÄ·½·¨À´¼ì²éÏìÓ¦´óС¡£¼ÙÈçÏìÓ¦°üº¬ÁËContent-LengthÍ·²¿£¬squid½«Õâ¸öÖµÓëmaximum_object_sizeÖµ½øÐбȽϡ£¼ÙÈçǰÕß´óÓÚºóÕߣ¬¸Ã¶ÔÏóÁ¢¿Ì²»¿É»º´æ£¬²¢ÇÒ²»»áÏûºÄÈκδÅÅ̿ռ䡣
²»ÐÒµÄÊÇ£¬²¢·Çÿ¸öÏìÓ¦¶¼ÓÐContent-LengthÍ·²¿¡£ÔÚÕâÑùµÄÇéÐÎÏ£¬squid½«ÏìӦдÍù´ÅÅÌ£¬°ÑËüµ±×÷À´×Ôԭʼ·þÎñÆ÷µÄÊý¾Ý¡£ÔÚÏìÓ¦Íê³Éºó£¬squidÔÙ¼ì²é¶ÔÏó´óС¡£ÕâÑù£¬¼ÙÈç¶ÔÏóµÄ´óС´ïµ½ maximum_object_sizeÏÞÖÆ£¬Ëü¼ÌÐøÏûºÄ´ÅÅ̿ռ䡣½ö½öµ±squidÔÚ×ö¶ÁÈ¡ÏìÓ¦µÄ¶¯×÷ʱ£¬×ܹ²cache´óС²Å»áÔö´ó¡£
»»¾ä»°Ëµ£¬»î¶¯µÄ£¬»òÕß´«ÊäÖеÄÄ¿±ê£¬²»»á¶ÔsquidÄÚÔÚµÄcache´óСֵÓÐÓ°Ïì¡£ÕâµãÓкô¦£¬ÒòΪËüÒâζ×Åsquid²»»áɾ³ýcacheÀïµÄÆäËûÄ¿±ê£¬³ý·ÇÄ¿±ê²»¿É»º´æ£¬²¢¶Ô×ܹ²cache´óСÓÐÓ°Ï졣Ȼ¶ø£¬ÕâµãÒ²Óлµ´¦£¬¼ÙÈçÏìÓ¦·Ç³£´ó£¬squid¿ÉÄÜÔËÐг¬³öÁË´ÅÅÌ×ÔÓɿռ䡣ΪÁ˼õÉÙ·¢ÉúÕâÖÖÇé¿öµÄ»ú»á£¬ÄãÓ¦¸ÃʹÓÃreply_body_max_sizeÖ¸Áij¸ö´ïµ½reply_body_max_sizeÏÞÖÆµÄÏìÓ¦Á¢¼´±»É¾³ý¡£
SquidÒ²ÓÐÒ»¸öminimum_object_sizeÖ¸Áî¡£ËüÔÊÐíÄã¶Ô»º´æ¶ÔÏóµÄ´óСÉèÖÃ×îµÍÏÞÖÆ¡£±ÈÕâ¸öÖµ¸üСµÄÏìÓ¦²»»á±»»º´æÔÚ´ÅÅÌ»òÄÚ´æÀï¡£×¢ÒâÕâ¸ö´óСÊÇÓëÏìÓ¦µÄÄÚÈݳ¤¶È£¨ÀýÈ磬ÏìÓ¦body´óС£©½øÐбȽϣ¬ºóÕß°üº¬ÔÚHTTPÍ·²¿Àï¡£

7.4 ·ÖÅä¶ÔÏóµ½»º´æÄ¿Â¼
µ±squidÏ뽫ij¸ö¿É»º´æµÄÏìÓ¦´æ´¢µ½´ÅÅÌʱ£¬Ëüµ÷ÓÃÒ»¸öº¯Êý£¬ÓÃÒÔÑ¡ÔñcacheĿ¼¡£È»ºóËüÔÚÑ¡ÔñµÄĿ¼Àï´ò¿ªÒ»¸ö´ÅÅÌÎļþÓÃÓÚд¡£¼ÙÈçÒòΪijЩÀíÓÉ£¬open()µ÷ÓÃʧ°Ü£¬ÏìÓ¦²»»á±»´æ´¢¡£ÔÚÕâÑùµÄÇé¿öÏ£¬squid²»»áÊÔͼÔÚÆäËûcacheĿ¼Àï´ò¿ªÁíÒ»¸ö´ÅÅÌÎļþ¡£
SquidÓÐ2¸öcache_dirÑ¡ÔñËã·¨¡£Ä¬ÈϵÄËã·¨½Ð×ölease-load£»Ìæ´úµÄËã·¨ÊÇround-robin¡£
least-loadËã·¨£¬¾ÍÈçÆäÃû×ÖµÄÒâÒåÒ»Ñù£¬ËüÑ¡Ôñµ±Ç°¹¤×÷¸ºÔØ×îСµÄcacheĿ¼¡£¸ºÔظÅÄîÒÀÀµÓÚ´æ´¢»úÖÆ¡£¶Ôaufs,cossºÍdiskd»úÖÆÀ´Ëµ£¬¸ºÔØÓë¹ÒÆð²Ù×÷µÄÊýÁ¿Óйء£¶ÔufsÀ´Ëµ£¬¸ºÔØÊDz»±äµÄ¡£ÔÚcache_dir¸ºÔØÏàµÈµÄÇé¿öÏ£¬¸ÃË㷨ʹÓÃ×ÔÓɿռäºÍ×î´óÄ¿±ê´óС×÷Ϊ¸½¼ÓÑ¡ÔñÌõ¼þ¡£
¸ÃÑ¡ÔñË㷨Ҳȡ¾öÓÚmax-sizeºÍread-onlyÑ¡Ïî¡£¼ÙÈçsquidÖªµÀÄ¿±ê´óС³¬³öÁËÏÞÖÆ£¬Ëü»áÌø¹ýÕâ¸öcacheĿ¼¡£ËüÒ²»áÌø¹ýÈκÎÖ»¶ÁĿ¼¡£
round-robinË㷨ҲʹÓøºÔØ×÷ΪºâÁ¿±ê×¼¡£ËüÑ¡Ôñij¸ö¸ºÔØÐ¡ÓÚ100%µÄcacheĿ¼£¬µ±È»£¬¸ÃĿ¼ÀïµÄ´æ´¢Ä¿±êûÓг¬³ö´óСÏÞÖÆ£¬²¢ÇÒ²»ÊÇÖ»¶ÁµÄ¡£
ÔÚijЩÇé¿öÏ£¬squid¿ÉÄÜÑ¡ÔñcacheĿ¼ʧ°Ü¡£¼ÙÈçËùÓеÄcache_dirÊÇÂú¸ºÔØ£¬»òÕßËùÓÐĿ¼µÄʵ¼ÊÄ¿±ê´óС³¬³öÁËmax-sizeÏÞÖÆ£¬ÄÇôÕâÖÖÇé¿ö¿ÉÄÜ·¢Éú¡£Õâʱ£¬squid²»»á½«Ä¿±êдÍù´ÅÅÌ¡£Äã¿ÉÒÔʹÓÃcache¹ÜÀíÆ÷À´¸ú×ÙsquidÑ¡ÔñcacheĿ¼ʧ°ÜµÄ´ÎÊý¡£Çë¼ûstore_ioÒ³£¨14.2.1.41Õ£©£¬ÕÒµ½create.select_failÐС£

7.5 Öû»²ßÂÔ
cache_replacement_policyÖ¸Áî¿ØÖÆÁËsquidµÄ´ÅÅÌcacheµÄÖû»²ßÂÔ¡£Squid2.5°æ±¾ÌṩÁËÈýÖÖ²»Í¬µÄÖû»²ßÂÔ£º×îÉÙ½üÀ´Ê¹Óã¨LRU£©£¬Ì°À·¶Ôż´óС´ÎÊý£¨GDSF£©£¬ºÍ¶¯Ì¬Ë¥ÀÏ×îÉÙ¾­³£Ê¹Óã¨LFUDA)¡£
LRUÊÇĬÈϵIJßÂÔ£¬²¢·Ç¶Ôsquid£¬¶ÔÆäËû´ó²¿·Öcache²úÆ·¶¼ÊÇÕâÑù¡£LRUÊÇÁ÷ÐеÄÑ¡Ôñ£¬ÒòΪËüÈÝÒ×Ö´ÐУ¬²¢ÌṩÁ˷dz£ºÃµÄÐÔÄÜ¡£ÔÚ32λϵͳÉÏ£¬LRUÏà¶ÔÓÚÆäËûʹÓøüÉÙµÄÄڴ棨ÿĿ±ê12¶Ô16×Ö½Ú£©¡£ÔÚ64λϵͳÉÏ£¬ËùÓеIJßÂÔÿĿ±êʹÓÃ24×Ö½Ú¡£
ÔÚ¹ýÈ¥£¬Ðí¶àÑо¿ÕßÒѾ­ÌáÒéÑ¡ÔñLRU¡£ÆäËû²ßÂÔµäÐ͵ı»Éè¼ÆÀ´¸ÄÉÆcacheµÄÆäËûÌØÐÔ£¬ÀýÈçÏìӦʱ¼ä£¬ÃüÖÐÂÊ£¬»ò×Ö½ÚÃüÖÐÂÊ¡£È»¶øÑо¿ÕߵĸĽø½á¹ûÒ²¿ÉÄÜÔÚÎóµ¼ÈË¡£Ä³Ð©Ñо¿Ê¹Óò¢²»ÏÖʵµÄСcacheÄ¿±ê£»ÆäËûÑо¿ÏÔʾµ±cache´óСÔö¼Óʱ£¬Öû»²ßÂÔµÄÑ¡Ôñ±äµÃ²»ÄÇÃ´ÖØÒª¡£
¼ÙÈçÄãÏëʹÓÃGDSF»òLFUDA²ßÂÔ£¬Äã±ØÐëÔÚ./configureʱʹÓÃ--enable-removal-policiesÑ¡Ï¼û3.4.1Õ£©¡£Martin ArlittºÍHPʵÑéÊÒµÄJohn DilleyΪsquidдÁËGDSFºÍLFUDAËã·¨¡£Äã¿ÉÒÔÔÚÏßÔĶÁËûÃǵÄÎĵµ£º
http://www.hpl.hp.com/techreports/1999/HPL-1999-69.html
ÎÒÔÚO'Reilly³ö°æµÄÊé"Web Caching"£¬Ò²ÌÖÂÛÁËÕâЩËã·¨¡£
cache_replacement_policyÖ¸ÁîµÄÖµÊÇΨһµÄ£¬ÕâµãºÜÖØÒª¡£²»Ïósquid.confÀïµÄ´ó²¿·ÖÆäËûÖ¸ÁÕâ¸öÖ¸ÁîµÄλÖúÜÖØÒª¡£cache_replacement_policyÖ¸ÁîµÄÖµÔÚsquid½âÎöcache_dirÖ¸Áîʱ£¬±»Êµ¼ÊÓõ½¡£Í¨¹ýÔ¤ÏÈÉèÖÃÌæ»»²ßÂÔ£¬Äã¿ÉÒԸıäcache_dirµÄÌæ»»²ßÂÔ¡£ÀýÈ磺
cache_replacement_policy lru
cache_dir ufs /cache0 2000 16 32
cache_dir ufs /cache1 2000 16 32
cache_replacement_policy heap GDSF
cache_dir ufs /cache2 2000 16 32
cache_dir ufs /cache3 2000 16 32
ÔÚ¸ÃÇéÐÎÖУ¬Í·2¸öcacheĿ¼ʹÓÃLRUÖû»²ßÂÔ£¬½ÓÏÂÀ´2¸öcacheĿ¼ʹÓÃGDSF¡£Çë¼Çס£¬¼ÙÈçÄãÒѾö¶¨Ê¹ÓÃcache¹ÜÀíÆ÷µÄconfigÑ¡Ï¼û14.2.1.7Õ£©£¬Õâ¸öÖû»²ßÂÔÖ¸ÁîµÄÌØÐԾͷdz£ÖØÒª¡£cache¹ÜÀíÆ÷½ö½öÊä³ö×îºóÒ»¸öÖû»²ßÂÔµÄÖµ£¬½«ËüÖÃÓÚËùÓеÄcacheĿ¼֮ǰ¡£ÀýÈ磬Äã¿ÉÄÜÔÚsquid.confÀïÓÐÈçÏÂÐУº
cache_replacement_policy heap GDSF
cache_dir ufs /tmp/cache1 10 4 4
cache_replacement_policy lru
cache_dir ufs /tmp/cache2 10 4 4
µ«µ±Äã´Ócache¹ÜÀíÆ÷Ñ¡Ôñconfigʱ£¬ÄãµÃµ½£º
cache_replacement_policy lru
cache_dir ufs /tmp/cache1 10 4 4
cache_dir ufs /tmp/cache2 10 4 4
¾ÍÏóÄã¿´µ½µÄÒ»Ñù£¬¶ÔÍ·2¸öcacheĿ¼µÄheap GDSFÉèÖñ»¶ªÊ§ÁË¡£

7.6 ɾ³ý»º´æ¶ÔÏó
ÔÚijЩÇé¿öÏ£¬Äã±ØÐë´ÓsquidµÄcacheÀïÊÖ¹¤É¾³ýÒ»¸ö»ò¶à¸ö¶ÔÏó¡£ÕâЩÇé¿ö¿ÉÄܰüÀ¨£º
+ ÄãµÄÓû§±§Ô¹×ܽÓÊÕµ½¹ýʱµÄÊý¾Ý£»
+ ÄãµÄcacheÒòΪij¸öÏìÓ¦¶ø¡°Öж¾¡±£»
+ SquidµÄcacheË÷ÒýÔÚ¾­Àú´ÅÅÌI/O´íÎó»òƵ·±µÄcrashºÍÖØÆôºó£¬±äµÃÓÐÎÊÌ⣻
+ ÄãÏëɾ³ýһЩ´óÄ¿±êÀ´ÊÍ·Å¿Õ¼ä¸øÐµÄÊý¾Ý£»
+ Squid×Ü´Ó±¾µØ·þÎñÆ÷ÖÐcacheÏìÓ¦£¬ÏÖÔÚÄã²»ÏëËüÕâÑù×ö¡£
ÉÏÊöÎÊÌâÖеÄһЩ¿ÉÒÔͨ¹ýÇ¿ÆÈwebä¯ÀÀÆ÷reloadÀ´½â¾ö¡£È»¶ø£¬Õâ²¢·Ç×ÜÊǿɿ¿¡£ÀýÈ磬һЩä¯ÀÀÆ÷ͨ¹ýÔØÈëÁíÍâµÄ³ÌÐò£¬´Ó¶øÏÔʾijЩÀàÈÝÀàÐÍ£»ÄǸö³ÌÐò¿ÉÄÜûÓÐreload°´Å¥£¬»òÉõÖÁËüÁ˽âcacheµÄÇé¿ö¡£
¼ÙÈç±ØÒª£¬Äã×Ü¿ÉÒÔʹÓÃsquidclient³ÌÐòÀ´reload»º´æÄ¿±ê¡£¼òµ¥µÄÔÚuriÇ°ÃæÊ¹ÓÃ-rÑ¡Ï
% squidclient -r http://www.lrrr.org/junk >;/tmp/foo
¼ÙÈçÄãÅöÇÉÔÚrefresh_patternÖ¸ÁîÀïÉèÖÃÁËignore-reloadÑ¡ÏÄãºÍÄãµÄÓû§½«²»ÄÜÇ¿ÆÈ»º´æÏìÓ¦¸üС£ÔÚÕâÑùµÄÇéÐÎÏ£¬Äã×îºÃÇå³ýÕâЩÓдíÎóµÄ»º´æ¶ÔÏó¡£

7.6.1 ɾ³ý¸ö±ð¶ÔÏó
Squid½ÓÊÜÒ»ÖÖ¿Í»§ÇëÇó·½Ê½£¬ÓÃÓÚɾ³ýcache¶ÔÏó¡£PURGE·½Ê½²¢·Ç¹Ù·½HTTPÇëÇó·½Ê½Ö®Ò»¡£ËüÓëDELETE²»Í¬£¬¶ÔºóÕߣ¬squid½«Æäת·¢µ½Ô­Ê¼·þÎñÆ÷¡£PURGEÇëÇóÒªÇósquidɾ³ýÔÚuriÀïÌá½»µÄÄ¿±ê¡£squid·µ»Ø200£¨OK£©»ò404£¨Not Found£©¡£
PURGE·½Ê½Ä³Ö̶ֳÈÉÏÓеãΣÏÕ£¬ÒòΪËüɾ³ýÁËcacheÄ¿±ê¡£³ý·ÇÄ㶨ÒåÁËÏàÓ¦µÄACL£¬·ñÔòsquid½ûÖ¹PURGE·½Ê½¡£Õý³£µÄ£¬Äã½ö½öÔÊÐíÀ´×Ô±¾»úºÍÉÙÊý¿ÉÐÅÈÎÖ÷»úµÄPURGEÇëÇó¡£ÅäÖÿ´ÆðÀ´ÈçÏ£º
acl AdminBoxes src 127.0.0.1 172.16.0.1 192.168.0.1
acl Purge method PURGE
http_access allow AdminBoxes Purge
http_access deny Purge
squidclient³ÌÐòÌṩÁ˲úÉúPURGEÇëÇóµÄÈÝÒ×·½·¨£¬ÈçÏ£º
% squidclient -m PURGE http://www.lrrr.org/junk
´úÌæµÄ£¬Äã¿ÉÒÔʹÓÃÆäËû¹¤¾ß£¨ÀýÈçperl½Å±¾£©À´²úÉúÄã×Ô¼ºµÄHTTPÇëÇó¡£Ëü·Ç³£¼òµ¥£º
PURGE http://www.lrrr.org/junk HTTP/1.0
Accept: */*
×¢Òâij¸öµ¥¶ÀµÄURI²»Î¨Ò»±êÃ÷Ò»¸ö»º´æÏìÓ¦¡£SquidÒ²ÔÚcache¹Ø¼ü×ÖÀïʹÓÃԭʼÇëÇó·½Ê½¡£¼ÙÈçÏìÓ¦°üº¬Á˲»Í¬µÄÍ·²¿£¬ËüÒ²¿ÉÒÔʹÓÃÆäËûÇëÇóÍ·¡£µ±Äã·¢²¼PURGEÇëÇóʱ£¬SquidʹÓÃGETºÍHEADµÄԭʼÇëÇó·½Ê½À´²éÕÒ»º´æÄ¿±ê¡£¶øÇÒ£¬Squid»áɾ³ýÏìÓ¦ÀïµÄËùÓÐvariants£¬³ý·ÇÄãÔÚPURGEÇëÇóµÄÏàӦͷ²¿ÀïÖ¸¶¨ÁËҪɾ³ýµÄvariants¡£Squid½ö½öɾ³ýGETºÍHEADÇëÇóµÄvariants¡£

7.6.2 ɾ³ýÒ»×é¶ÔÏó
²»ÐÒµÄÊÇ£¬SquidûÓÐÌṩһ¸öºÃµÄ»úÖÆ£¬ÓÃÒÔÁ¢¿Ìɾ³ýÒ»×é¶ÔÏó¡£ÕâÖÖÒªÇóͨ³£³öÏÖÔÚijÈËÏëɾ³ýËùÓÐÊôÓÚͬһ̨ԭʼ·þÎñÆ÷µÄ¶ÔÏóʱ¡£
ÒòΪºÜ¶àÀíÓÉ£¬squid²»ÌṩÕâÖÖ¹¦ÄÜ¡£Ê×ÏÈ£¬squid±ØÐë±éÀúËùÓлº´æ¶ÔÏó£¬Ö´ÐÐÏßÐÔËÑË÷£¬ÕâºÜºÄ·ÑCPU£¬²¢ÇÒºÄʱ½Ï³¤¡£µ±squidÔÚËÑË÷ʱ£¬Óû§»áÃæÁÙÐÔÄÜϽµÎÊÌâ¡£µÚ¶þ£¬squidÔÚÄÚ´æÀï¶ÔURI±£³ÖMD5Ëã·¨£¬MD5Êǵ¥Ïò¹þÏ££¬ÕâÒâζ×Å£¬ÀýÈ磬Äã²»ÄÜÈ·ÈÏÊÇ·ñij¸ö¸ø¶¨µÄMD5¹þÏ£ÊÇÓɰüº¬"www.example.com"×Ö·û´®µÄURI²úÉú¶øÀ´¡£Î¨Ò»µÄ·½·¨ÊÇ´ÓԭʼURIÖØÐ¼ÆËãMD5Öµ£¬²¢ÇÒ¿´ËüÃÇÊÇ·ñÆ¥Åä¡£ÒòΪsquidûÓб£³ÖԭʼµÄURI£¬Ëü²»ÄÜÖ´ÐÐÕâ¸öÖØ¼ÆËã¡£
ÄÇô¸ÃÔõô°ìÄØ£¿
Äã¿ÉÒÔʹÓÃaccess.logÀïµÄÊý¾ÝÀ´»ñÈ¡URIÁÐ±í£¬ËüÃÇ¿ÉÄÜλÓÚcacheÀȻºó£¬½«ËüÃÇÓÃÓÚsquidclient»òÆäËû¹¤¾ßÀ´²úÉúPURGEÇëÇó£¬ÀýÈ磺
% awk '{print $7}' /usr/local/squid/var/logs/access.log \
        | grep www.example.com \
        | xargs -n 1 squidclient -m PURGE

7.6.3 ɾ³ýËùÓжÔÏó
ÔÚ¼«¶ÈÇéÐÎÏ£¬Äã¿ÉÄÜÐèҪɾ³ýÕû¸öcache£¬»òÖÁÉÙij¸öcacheĿ¼¡£Ê×ÏÈ£¬Äã±ØÐëÈ·ÈÏsquidûÓÐÔÚÔËÐС£
ÈÃsquidÍü¼ÇËùÓлº´æ¶ÔÏóµÄ×îÈÝÒ׵ķ½·¨Ö®Ò»£¬ÊǸ²¸Çswap.stateÎļþ¡£×¢ÒâÄã²»Äܼòµ¥µÄɾ³ýswap.stateÎļþ£¬ÒòΪsquid½Ó×ÅҪɨÃècacheĿ¼ºÍ´ò¿ªËùÓеÄÄ¿±êÎļþ¡£ÄãÒ²²»Äܼòµ¥µÄ½Ø¶Ïswap.stateΪ0´óС¡£´úÌæµÄ£¬Äã¸Ã·ÅÖÃÒ»¸öµ¥×Ö½ÚÔÚÀïÃæ£¬ÀýÈ磺
# echo '' >; /usr/local/squid/var/cache/swap.state
µ±squid¶ÁÈ¡swap.stateÎļþʱ£¬Ëü»ñÈ¡µ½ÁË´íÎó£¬ÒòΪÔÚÕâÀïµÄ¼Ç¼̫¶ÌÁË¡£ÏÂÒ»ÐжÁÈ¡¾Íµ½ÁËÎļþ½á⣬squidÍê³ÉÖØ½¨¹ý³Ì£¬Ã»ÓÐ×°ÔØÈκÎÄ¿±êÔªÊý¾Ý¡£
×¢Òâ¸Ã¼¼Êõ²»»á´Ó´ÅÅÌÀïɾ³ýcacheÎļþ¡£Äã½ö½öʹsquidÈÏΪËüµÄcacheÊǿյġ£µ±squidÔËÐÐʱ£¬ËüÔö¼ÓÐÂÎļþµ½cacheÀ²¢ÇÒ¿ÉÄܸ²¸Ç¾ÉÎļþ¡£ÔÚijЩÇéÐÎÏ£¬Õâ¿ÉÄܵ¼ÖÂÄãµÄ´ÅÅÌʹÓó¬³öÁË×ÔÓɿռ䡣¼ÙÈçÕâÑùµÄÊ·¢Éú£¬Äã±ØÐëÔÚÔÙ´ÎÖØÆôsquidǰɾ³ý¾ÉÎļþ¡£
ɾ³ýcacheÎļþµÄ·½·¨Ö®Ò»ÊÇʹÓÃrm¡£È»¶ø£¬Ëüͨ³£»¨·ÑºÜ³¤µÄʱ¼äÀ´É¾³ýËùÓб»squid´´½¨µÄÎļþ¡£ÎªÁËÈÃsquid¿ìËÙÆô¶¯£¬Äã¿ÉÒÔÖØÃüÃû¾ÉcacheĿ¼£¬´´½¨Ò»¸öÐÂĿ¼£¬Æô¶¯squid£¬È»ºóͬʱɾ³ý¾ÉĿ¼¡£ÀýÈ磺
# squid -k shutdown
# cd /usr/local/squid/var
# mv cache oldcache
# mkdir cache
# chown nobody:nobody cache
# squid -z
# squid -s
# rm -rf oldcache &
ÁíÒ»ÖÖ¼¼ÊõÊǼòµ¥µÄÔÚcacheÎļþϵͳÉÏÔËÐÐnewfs£¨»òmkfs£©¡£Õâµã½öÔÚÄãµÄcache_dirʹÓÃÕû¸ö´ÅÅÌ·ÖÇøÊ±²Å¿ÉÒÔÔËÐС£

7.7 refresh_pattern
refresh_patternÖ¸Áî¼ä½ÓµÄ¿ØÖÆ´ÅÅÌ»º´æ¡£Ëü°ïÖúsquid¾ö¶¨£¬ÊÇ·ñij¸ö¸ø¶¨ÇëÇóÊÇcacheÃüÖУ¬»ò×÷Ϊcache¶ªÊ§¶Ô´ý¡£¿íËɵÄÉèÖÃÔö¼ÓÁËÄãµÄcacheÃüÖÐÂÊ£¬µ«Ò²Ôö¼ÓÁËÓû§½ÓÊÕ¹ýʱÏìÓ¦µÄ»ú»á¡£ÁíÒ»·½Ã棬±£ÊصÄÉèÖ㬽µµÍÁËcacheÃüÖÐÂʺ͹ýʱÏìÓ¦¡£
refresh_pattern¹æÔò½ö½öÓ¦Óõ½Ã»ÓÐÃ÷È·¹ýʱÆÚÏÞµÄÏìÓ¦¡£Ô­Ê¼·þÎñÆ÷ÄÜʹÓÃExpiresÍ·²¿£¬»òÕßCache-Control:max-ageÖ¸ÁîÀ´Ö¸¶¨¹ýʱÆÚÏÞ¡£
Äã¿ÉÒÔÔÚÅäÖÃÎļþÀï·ÅÖÃÈÎÒâÊýÁ¿µÄrefresh_patternÐС£squid°´Ë³Ðò²éÕÒËüÃÇÒÔÆ¥ÅäÕýÔò±í´ïʽ¡£µ±squidÕÒµ½Ò»¸öÆ¥Åäʱ£¬ËüʹÓÃÏàÓ¦µÄÖµÀ´¾ö¶¨£¬Ä³¸ö»º´æÏìÓ¦ÊÇ´æ»î»¹ÊǹýÆÚ¡£refresh_patternÓï·¨ÈçÏ£º
refresh_pattern [-i] regexp min percent max [options]
ÀýÈ磺
refresh_pattern -i \.jpg$ 30 50% 4320 reload-into-ims
refresh_pattern -i \.png$ 30 50% 4320 reload-into-ims
refresh_pattern -i \.htm$ 0 20% 1440
refresh_pattern -i \.html$ 0 20% 1440
refresh_pattern -i . 5 25% 2880
regexp²ÎÊýÊÇ´óСдÃô¸ÐµÄÕýÔò±í´ïʽ¡£Äã¿ÉÒÔʹÓÃ-iÑ¡ÏîÀ´Ê¹ËüÃÇ´óСд²»Ãô¸Ð¡£squid°´Ë³ÐòÀ´¼ì²érefresh_patternÐУ»µ±ÕýÔò±í´ïʽ֮һƥÅäURIʱ£¬ËüÍ£Ö¹ËÑË÷¡£
min²ÎÊýÊÇ·ÖÖÓÊýÁ¿¡£ËüÊǹýʱÏìÓ¦µÄ×îµÍʱ¼äÏÞÖÆ¡£Èç¹ûij¸öÏìӦפÁôÔÚcacheÀïµÄʱ¼äûÓг¬¹ýÕâ¸ö×îµÍÏÞÖÆ£¬ÄÇôËü²»»á¹ýÆÚ¡£ÀàËÆµÄ£¬max²ÎÊýÊÇ´æ»îÏìÓ¦µÄ×î¸ßʱ¼äÏÞÖÆ¡£Èç¹ûij¸öÏìӦפÁôÔÚcacheÀïµÄʱ¼ä¸ßÓÚÕâ¸ö×î¸ßÏÞÖÆ£¬ÄÇôËü±ØÐ뱻ˢС£
ÔÚ×îµÍºÍ×î¸ßʱ¼äÏÞÖÆÖ®¼äµÄÏìÓ¦£¬»áÃæ¶ÔsquidµÄ×îºóÐÞ¸ÄϵÊý (LM-factor)Ëã·¨¡£¶ÔÕâÑùµÄÏìÓ¦£¬squid¼ÆËãÏìÓ¦µÄÄêÁäºÍ×îºóÐÞ¸ÄϵÊý£¬È»ºó½«Ëü×÷Ϊ°Ù·Ö±ÈÖµ½øÐбȽϡ£ÏìÓ¦ÄêÁä¼òµ¥µÄ¾ÍÊÇ´Óԭʼ·þÎñÆ÷²úÉú£¬»ò×îºóÒ»´ÎÑéÖ¤ÏìÓ¦ºó£¬¾­ÀúµÄʱ¼äÊýÁ¿¡£Ô´ÄêÁäÔÚLast-ModifiedºÍDateÍ·²¿Ö®¼äÊDz»Í¬µÄ¡£LM-factorÊÇÏìÓ¦ÄêÁäÓëÔ´ÄêÁäµÄ±ÈÂÊ¡£
ͼ7-2ÂÛÖ¤ÁËLM-factorËã·¨¡£squid»º´æÁËij¸öÄ¿±ê3¸öСʱ£¨»ùÓÚDateºÍLast-ModifiedÍ·²¿£©¡£LM-factorµÄÖµÊÇ50%£¬ÏìÓ¦ÔÚ½ÓÏÂÀ´µÄ1.5¸öСʱÀïÊÇ´æ»îµÄ£¬ÔÚÕâÖ®ºó£¬Ä¿±ê»á¹ýÆÚ²¢±»µ±×÷¹ýʱ´¦Àí¡£¼ÙÈçÓû§ÔÚ´æ»îÆÚ¼äÇëÇócacheÄ¿±ê£¬squid·µ»ØÃ»ÓÐÈ·ÈϵÄcacheÃüÖС£ÈôÔÚ¹ýʱÆÚ¼ä·¢ÉúÇëÇó£¬squidת·¢È·ÈÏÇëÇóµ½Ô­Ê¼·þÎñÆ÷¡£
ͼ7-2 »ùÓÚLM-factor¼ÆËã¹ýÆÚʱ¼ä
£¨ÂÔͼ£©
Àí½âsquid¼ì²é²»Í¬ÖµµÄ˳Ðò·Ç³£ÖØÒª¡£ÈçÏÂÊÇsquidµÄrefresh_patternËã·¨µÄ¼òµ¥ÃèÊö£º
+ ¼ÙÈçÏìÓ¦ÄêÁ䳬¹ýrefresh_patternµÄmaxÖµ£¬¸ÃÏìÓ¦¹ýÆÚ£»
+ ¼ÙÈçLM-factorÉÙÓÚrefresh_pattern°Ù·Ö±ÈÖµ£¬¸ÃÏìÓ¦´æ»î£»
+ ¼ÙÈçÏìÓ¦ÄêÁäÉÙÓÚrefresh_patternµÄminÖµ£¬¸ÃÏìÓ¦´æ»î£»
+ ÆäËûÇé¿öÏ£¬ÏìÓ¦¹ýÆÚ¡£
refresh_patternÖ¸ÁîÒ²ÓÐÉÙÊýÑ¡Ïîµ¼ÖÂsquidÎ¥±³HTTPЭÒ鹿·¶¡£ËüÃÇÈçÏ£º
override-expire
¸ÃÑ¡Ïîµ¼ÖÂsquidÔÚ¼ì²éExpiresÍ·²¿Ö®Ç°£¬Ïȼì²éminÖµ¡£ÕâÑù£¬Ò»¸ö·ÇÁãµÄminʱ¼äÈÃsquid·µ»ØÒ»¸öδȷÈϵÄcacheÃüÖУ¬¼´Ê¹¸ÃÏìӦ׼±¸¹ýÆÚ¡£
override-lastmod
¸ÄÑ¡Ïîµ¼ÖÂsquidÔÚ¼ì²éLM-factor°Ù·Ö±È֮ǰÏȼì²éminÖµ¡£
reload-into-ims
¸ÃÑ¡ÏîÈÃsquidÔÚÈ·ÈÏÇëÇóÀÒÔno-cacheÖ¸Áî´«ËÍÒ»¸öÇëÇó¡£»»¾ä»°Ëµ£¬squidÔÚת·¢ÇëÇó֮ǰ£¬¶Ô¸ÃÇëÇóÔö¼ÓÒ»¸öIf-Modified-SinceÍ·²¿¡£×¢ÒâÕâµã½ö½öÔÚÄ¿±êÓÐLast-Modifiedʱ¼ä´Áʱ²ÅÄܹ¤×÷¡£ÍâÃæ½øÀ´µÄÇëÇó±£Áôno-cacheÖ¸ÁÒÔ±ãËüµ½´ïԭʼ·þÎñÆ÷¡£
ignore-reload
¸ÃÑ¡Ïîµ¼ÖÂsquidºöÂÔÇëÇóÀïµÄÈκÎno-cacheÖ¸Áî¡£
µÚ8Õ ¸ß¼¶´ÅÅÌ»º´æÖ÷Ìâ
8.1 ÊÇ·ñ´æÔÚ´ÅÅÌI/OÆ¿¾±£¿
Web»º´æÆ÷ÀýÈçsquid£¬Í¨³£ÔÚ´ÅÅÌI/O±ä³ÉÆ¿¾±Ê±£¬²»»áÕýÈ·µÄÌåÏֺ͸æÖªÄã¡£´úÌæµÄÊÇ£¬Ëæ×ŸºÔصÄÔö¼Ó£¬ÏìӦʱ¼äºÍ/»òÃüÖÐÂÊ»á¸üµÍЧ¡£µ±È»£¬ÏìӦʱ¼äºÍÃüÖÐÂÊ¿ÉÄÜÒòΪÆäËûÔ­Òò¶ø¸Ä±ä£¬ÀýÈçÍøÂçÑÓʱºÍ¿Í»§ÇëÇó·½Ê½µÄ¸Ä±ä¡£
Ò²Ðí̽²âcacheÐÔÄÜÆ¿¾±µÄ×îºÃ·½Ê½ÊÇ×öѹÁ¦²âÊÔ£¬ÀýÈçWeb Polygraph¡£Ñ¹Á¦²âÊÔµÄǰÌáÊÇÄãÄÜÍêÈ«¿ØÖÆ»·¾³£¬Ïû³ýδ֪ÒòËØ¡£Äã¿ÉÒÔÓò»Í¬µÄcacheÅäÖÃÀ´Öظ´ÏàͬµÄ²âÊÔ¡£²»ÐÒµÄÊÇ£¬Ñ¹Á¦²âÊÔͨ³£ÐèÒª´óÁ¿µÄʱ¼ä£¬²¢ÒªÇóÓпÕÏеÄϵͳ£¨Ò²ÐíËüÃÇÕýÔÚʹÓÃÖУ©¡£
¼ÙÈçÄãÓÐ×ÊÔ´Ö´ÐÐsquidѹÁ¦²âÊÔ£¬ÇëÒÔ±ê×¼µÄcache¹¤×÷¸ºÔØ¿ªÊ¼¡£µ±ÄãÔö¼Ó¸ºÔØÊ±£¬ÔÚijЩµãÉÏÄãÄÜ¿´µ½Ã÷ÏÔµÄÏìÓ¦ÑÓʱºÍ/»òÃüÖÐÂÊϽµ¡£Ò»µ©Äã¹Û²ìµ½ÕâÑùµÄÐÔÄܽµµÍ£¬¾Í½ûÖ¹µô´ÅÅÌ»º´æ£¬ÔÙ²âÊÔÒ»´Î¡£Äã¿ÉÒÔÅäÖÃsquid´ÓÀ´²»»º´æÈκÎÏìÓ¦£¨Ê¹ÓÃnull´æ´¢»úÖÆ£¬¼û8.7Õ£©¡£´úÌæµÄ£¬ÄãÄÜÅäÖù¤×÷¸ºÔص½100%²»¿ÉcacheÏìÓ¦¡£¼ÙÈ粻ʹÓÃcacheʱ£¬Æ½¾ùÏìӦʱ¼äÃ÷ÏÔ¸üºÃ£¬ÄÇô¿ÉÒÔÈ·ÈÏ´ÅÅÌI/OÊǸÃˮƽÍÌÍÂÁ¿µÄÆ¿¾±¡£
¼ÙÈçÄãûÓÐʱ¼ä»òûÓÐ×ÊÔ´À´Ö´ÐÐsquidѹÁ¦²âÊÔ£¬ÄÇô¿É¼ì²ésquidµÄÔËÐÐʱͳ¼ÆÀ´²éÕÒ´ÅÅÌI/OÆ¿¾±¡£cache¹ÜÀíÆ÷µÄGeneral Runtime Information Ò³Ãæ£¨¼û14Õ£©»áÏÔʾ³öcacheÃüÖкÍcache¶ªÊ§µÄÖÐÖµÏìӦʱ¼ä¡£
Median Service Times (seconds)  5 min    60 min:
        HTTP Requests (All):   0.39928  0.35832
        Cache Misses:          0.42149  0.39928
        Cache Hits:            0.12783  0.11465
        Near Hits:             0.37825  0.39928
        Not-Modified Replies:  0.07825  0.07409
¶Ô½¡×³µÄsquid»º´æÀ´Ëµ£¬ÃüÖÐÏÔÈ»¿ìÓÚ¶ªÊ§¡£ÖÐÖµÃüÖÐÏìӦʱ¼äµäÐ͵ÄÉÙÓÚ0.5Ãë»ò¸üÉÙ¡£ÎÒÇ¿ÁÒ½¨ÒéÄãʹÓÃSNMP»òÆäËûµÄÍøÂç¼àÊÓ¹¤¾ßÀ´´Ósquid»º´æ²É¼¯¶¨ÆÚ²âÁ¿Öµ¡£Èç¹ûƽ¾ùÃüÖÐÏìӦʱ¼äÔö¼ÓµÃÌ«Ã÷ÏÔ£¬Òâζ×ÅϵͳÓдÅÅÌI/0Æ¿¾±¡£
¼ÙÈçÄãÈÏΪ²úÆ·cacheÃæÁÙ´ËÀàÎÊÌ⣬¿ÉÒÔÓÃÇ°ÃæÌáµ½µÄͬÑùµÄ¼¼ÊõÀ´ÑéÖ¤ÄãµÄÍÆ²â¡£ÅäÖÃsquid²»cacheÈκÎÏìÓ¦£¬ÕâÑù¾Í±Ü¿ªÁËËùÓдÅÅÌI/O¡£È»ºó×Ðϸ¹Û²ìcache¶ªÊ§ÏìӦʱ¼ä¡£¼ÙÈçËü½µÏÂÈ¥£¬ÄÇôÄãµÄÍÆ²â¸ÃÊÇÕýÈ·µÄ¡£
Ò»µ©ÄãÈ·ÈÏÁË´ÅÅÌÍÌÍÂÄÜÁ¦ÊÇsquidµÄÐÔÄÜÆ¿¾±£¬ÄÇô¿É×öÐí¶àÊÂÀ´¸Ä½øËü¡£ÆäÖÐһЩ·½·¨ÒªÇóÖØ±àÒësquid£¬È»¶øÁíһЩÏà¶Ô½Ï¼òµ¥£¬Ö»Ðèµ÷ÕûUnixÎļþϵͳ¡£

8.2 Îļþϵͳµ÷ÕûÑ¡Ïî
Ê×ÏÈ£¬´ÓÀ´²»ÔÚsquidµÄ»º´æÄ¿Â¼ÖÐʹÓÃRAID¡£ÒÔÎҵľ­Ñé¿´£¬RAID×ÜÊǽµµÍsquidʹÓõÄÎļþϵͳµÄÐÔÄÜ¡£×îºÃÓÐÐí¶à¶ÀÁ¢µÄÎļþϵͳ£¬Ã¿¸öÎļþϵͳʹÓõ¥¶ÀµÄ´ÅÅÌÇý¶¯Æ÷¡£
ÎÒ·¢ÏÖ4¸ö¼òµ¥µÄ·½·¨À´¸Ä½øsquidµÄUFSÐÔÄÜ¡£ÆäÖÐÄ³Ð©ÌØÖ¸Ä³ÖÖÀàÐ͵IJÙ×÷ϵͳÀýÈçBSDºÍLinux£¬Ò²Ðí¶ÔÄãµÄƽ̨²»Ì«ºÏÊÊ£º
1.ijЩUFSÖ§³ÖÒ»¸önoatimeµÄmountÑ¡ÏʹÓÃnoatimeÑ¡ÏîÀ´mountµÄÎļþϵͳ£¬²»»áÔÚ¶Áȡʱ£¬¸üÐÂÏàÓ¦µÄi½Úµã·ÃÎÊʱ¼ä¡£Ê¹ÓøÃÑ¡ÏîµÄ×îÈÝÒ׵ķ½·¨ÊÇÔÚ/etc/fstabÀïÔö¼ÓÈçÏÂÐУº
# Device            Mountpoint    FStype  Options        Dump    Pass#
/dev/ad1s1c         /cache0       ufs     rw,noatime     0       0
2.¼ì²émount(µÄmanpageÀïµÄasyncÑ¡Ïî¡£ÉèÖÃÁ˸ÃÑ¡Ïî£¬ÌØ¶¨µÄI/O²Ù×÷£¨ÀýÈç¸üÐÂĿ¼£©»áÒì²½Ö´ÐС£Ä³Ð©ÏµÍ³µÄÎĵµ»á±êÃ÷ÕâÊǸöΣÏյıêÇ©¡£Ä³ÌìÄãµÄϵͳ±ÀÀ££¬ÄãÒ²Ðí»á¶ªÊ§Õû¸öÎļþϵͳ¡£¶ÔÐí¶àsquid°²×°À´Ëµ£¬Ö´ÐÐÐÔÄܵÄÌá¸ßÖµµÃð´Ë·çÏÕ¡£¼ÙÈçÄã²»½éÒⶪʧÕû¸öcacheÄÚÈÝ£¬ÄÇô¿ÉÒÔʹÓøÃÑ¡Ïî¡£¼ÙÈçcacheÊý¾Ý·Ç³£ÓмÛÖµ£¬asyncÑ¡ÏîÒ²Ðí²»ÊʺÏÄã¡£
3.BSDÓÐÒ»¸ö¹¦ÄܽÐ×öÈí¸üС£Èí¸üÐÂÊÇBSDÓÃÓÚJournalingÎļþϵͳµÄ´úÌæÆ·¡£ÔÚFreeBSDÉÏ£¬Äã¿ÉÒÔÔÚûÓÐmountµÄÎļþϵͳÖУ¬Ê¹ÓÃtunefsÃüÁîÀ´¼¤»î¸ÃÑ¡Ï
# umount /cache0
# tunefs -n enable /cache0
# mount /cache0
4.Äã¶Ôÿ¸öÎļþϵͳÔËÐÐÒ»´ÎtunefsÃüÁî¾Í¿ÉÒÔÁË¡£ÔÚÏµÍ³ÖØÆôʱ£¬Èí¸üÐÂ×Ô¶¯ÔÚÎļþϵͳÖ줻îÁË¡£
ÔÚOpenBSDºÍNetBSDÖУ¬¿ÉʹÓÃsoftdep mountÑ¡Ï
# Device            Mountpoint    FStype  Options        Dump    Pass#
/dev/sd0f           /usr          ffs     rw,softdep     1       2
¼ÙÈçÄãÏóÎÒÒ»Ñù£¬Äã¿ÉÄÜÏëÖªµÀÔÚasyncÑ¡ÏîºÍÈí¸üÐÂÑ¡ÏîÖ®¼äÓкβ»Í¬¡£Ò»¸öÖØÒªµÄÇø±ðÊÇ£¬Èí¸üдúÂë±»Éè¼Æ³ÉÔÚϵͳ±ÀÀ£Ê¼þÖУ¬±£³ÖÎļþϵͳµÄÒ»ÖÂÐÔ£¬¶øasyncÑ¡Ïî²»ÊÇÕâÑùµÄ¡£ÕâÒ²ÐíÈÃÄãÍÆ¶ÏasyncÖ´ÐÐÐÔÄܺÃÓÚÈí¸üС£È»¶ø£¬ÈçÎÒÔÚ¸½Â¼DÖÐÖ¸³öµÄ£¬ÊÂʵÏà·´¡£
ÒÔǰÎÒÌáµ½¹ý£¬UFSÐÔÄÜÌØ±ðÊÇдÐÔÄÜ£¬ÒÀÀµÓÚ¿ÕÏдÅÅ̵ÄÊýÁ¿¡£¶Ô¿ÕÎļþϵͳµÄ´ÅÅÌд²Ù×÷£¬Òª±ÈÂúÎļþϵͳ¿ìµÃ¶à¡£ÕâÊÇUFSµÄ×îС×ÔÓɿռä²ÎÊý£¬ºÍ¿Õ¼ä/ʱ¼äÓÅ»¯È¨ºâ²ÎÊý±³ºóµÄÀíÓÉÖ®Ò»¡£¼ÙÈçcache´ÅÅÌÂúÁË£¬squidÖ´ÐÐÐÔÄÜ¿´ÆðÀ´ºÜÔ㣬ÄÇôÊÔ׿õÉÙcache_dirµÄÈÝÁ¿Öµ£¬ÒÔ±ã¸ü¶àµÄ×ÔÓɿռä¿ÉÓᣵ±È»£¬¼õÉÙcache´óСҲ»á½µµÍÃüÖÐÂÊ£¬µ«ÏìӦʱ¼äµÄ¸Ä½øÒ²ÐíÖµµÃÕâô×ö¡£¼ÙÈçÄã¸øsquid»º´æÅäÖÃеÄÉ豸£¬Ç뿼ÂÇʹÓó¬¹ýÄãÐèÒªµÄ¸ü´ó´ÅÅÌ£¬²¢ÇÒ½ö½öʹÓÿռäµÄÒ»°ë¡£

8.3 ¿ÉÑ¡ÔñµÄÎļþϵͳ
ijЩ²Ù×÷ϵͳ֧³Ö²»Í¬ÓÚUFS£¨»òext2fs£©µÄÎļþϵͳ¡£JournalingÎļþϵͳÊÇ½ÏÆÕ±éµÄÑ¡Ôñ¡£ÔÚUFSºÍJournalingÎļþϵͳ֮¼äµÄÖ÷Òª²»Í¬ÔÚÓÚËüÃÇ´¦Àí¸üеķ½Ê½¡£ÔÚUFSÏ£¬¸üÐÂÊÇʵʱµÄ¡£ÀýÈ磬µ±Äã¸Ä±äÁËij¸öÎļþ²¢ÇÒ½«Ëü´æ´¢µ½´ÅÅÌ£¬ÐÂÊý¾Ý¾ÍÌæ»»Á˾ÉÊý¾Ý¡£µ±Äãɾ³ýÎļþʱ£¬UFSÖ±½Ó¸üÐÂÁËĿ¼¡£
JournalingÎļþϵͳÓëÖ®Ïà·´£¬Ëü½«¸üÐÂдÍù¶ÀÁ¢µÄ¼ÇÕÊϵͳ£¬»òÈÕÖ¾Îļþ¡£µäÐ͵ÄÄãÄÜÑ¡ÔñÊÇ·ñ¼Ç¼Îļþ¸Ä±ä»òÔªÊý¾Ý¸Ä±ä£¬»òÁ½Õ߼汸¡£Ä³¸öºǫ́½ø³ÌÔÚ¿ÕÏÐʱ¿Ì¶ÁÈ¡¼ÇÕÊ£¬²¢ÇÒÖ´ÐÐʵ¼ÊµÄ¸Ä±ä²Ù×÷¡£JournalingÎļþϵͳµäÐ͵ÄÔÚϵͳ±ÀÀ£ºó±ÈUFS»Ö¸´¸ü¿ì¡£ÔÚϵͳ±ÀÀ£ºó£¬JournalingÎļþϵͳ¼òµ¥µÄ¶ÁÈ¡¼ÇÕÊ£¬²¢ÇÒÌá½»ËùÓÐÏÔÖøµÄ¸Ä±ä¡£
JournalingÎļþϵͳµÄÖ÷Òª±×¶ËÔÚÓÚËüÃÇÐèÒª¶îÍâµÄ´ÅÅÌд²Ù×÷¡£¸Ä±äÊ×ÏÈдÍùÈÕÖ¾Îļþ£¬È»ºó²ÅдÍùʵ¼ÊµÄÎļþ»òĿ¼¡£Õâ¶Ôweb»º´æÓ°ÏìÓÈÆäÃ÷ÏÔ£¬ÒòΪÊ×ÏÈweb»º´æÇãÏòÓÚ¸ü¶àµÄ´ÅÅÌд²Ù×÷¡£
JournalingÎļþϵͳ¶ÔÐí¶à²Ù×÷ϵͳ¿ÉÓá£ÔÚLinuxÉÏ£¬ÄãÄÜÑ¡Ôñext3fs,reiserfs, XFS,ºÍÆäËûµÄ¡£XFSÒ²¿ÉÓÃÔÚSGI/IRIX£¬ËüԭʼÊÇÔÚÕâÀ↑·¢µÄ¡£SolarisÓû§ÄÜʹÓÃVeritasÎļþϵͳ²úÆ·¡£TRU64£¨ÒÔǰµÄDigital Unix£©¸ß¼¶Îļþϵͳ£¨advfs£©Ö§³ÖJournaling¡£
Äã¿ÉÒÔ²»¸Ä±äsquidµÄÈκÎÅäÖöøÊ¹ÓÃJournalingÎļþϵͳ¡£¼òµ¥µÄ´´½¨ºÍ¹ÒÔØÔÚ²Ù×÷ϵͳÎĵµÀïÃèÊöµÄÎļþϵͳ£¬¶ø²»±Ø¸Ä±äsquid.cfÅäÖÃÎļþÀïµÄcache_dirÐС£
ÓÃÀàËÆÈçÏÂÃüÁîÔÚLinuxÖÐÖÆ×÷reiserfsÎļþϵͳ£º
# /sbin/mkreiserfs /dev/sda2
¶ÔXFS£¬Ê¹Óãº
# mkfs -t xfs -f /dev/sda2
×¢Òâext3fsÆäʵ¼òµ¥µÄ¾ÍÊǼ¤»îÁ˼ÇÕʵÄext2fs¡£µ±´´½¨¸ÃÎļþϵͳʱ£¬¶Ômke2fsʹÓÃ-jÑ¡Ï
# /sbin/mke2fs -j /dev/sda2
Çë²Î¿¼ÆäËû²Ù×÷ϵͳµÄÏà¹ØÎĵµ¡£

8.4 aufs´æ´¢»úÖÆ
aufs´æ´¢»úÖÆÒѾ­·¢Õ¹µ½³¬³öÁ˸Ľøsquid´ÅÅÌI/OÏìӦʱ¼äµÄ×î³õ³¢ÊÔ¡£"a"´ú±í×ÅÒì²½I/O¡£Ä¬ÈϵÄufsºÍaufsÖ®¼äµÄÎ¨Ò»Çø±ð£¬ÔÚÓÚI/OÊÇ·ñ±»squidÖ÷½ø³ÌÖ´ÐС£Êý¾Ý¸ñʽ¶¼ÊÇÒ»ÑùµÄ£¬ËùÒÔÄãÄÜÔÚÁ½ÕßÖ®¼äÇáËÉÑ¡Ôñ£¬¶ø²»ÓöªÊ§ÈκÎcacheÊý¾Ý¡£
aufsʹÓôóÁ¿Ï߳̽øÐдÅÅÌI/O²Ù×÷¡£Ã¿´ÎsquidÐèÒª¶Áд£¬´ò¿ª¹Ø±Õ£¬»òɾ³ýcacheÎļþʱ£¬I/OÇëÇó±»·ÖÅɵ½ÕâЩÏß³ÌÖ®Ò»¡£µ±Ïß³ÌÍê³ÉÁËI/Oºó£¬Ëü¸øsquidÖ÷½ø³Ì·¢ËÍÐźţ¬²¢ÇÒ·µ»ØÒ»¸ö״̬Â롣ʵ¼ÊÉÏÔÚsquid2.5ÖУ¬Ä³Ð©Îļþ²Ù×÷ĬÈϲ»ÊÇÒì²½Ö´Ðеġ£×îÃ÷ÏԵ쬴ÅÅÌд×ÜÊÇͬ²½Ö´ÐС£Äã¿ÉÒÔÐÞ¸Äsrc/fs/aufs/store_asyncufs.hÎļþ£¬½«ASYNC_WRITEÉèΪ1£¬²¢ÇÒÖØ±àÒësquid¡£
aufs´úÂëÐèÒªpthreads¿â¡£ÕâÊÇPOSIX¶¨ÒåµÄ±ê×¼Ï߳̽ӿڡ£¾¡¹ÜÐí¶àUnixϵͳ֧³Öpthreads¿â£¬µ«ÎÒ¾­³£Óöµ½¼æÈÝÐÔÎÊÌâ¡£aufs´æ´¢ÏµÍ³¿´ÆðÀ´½ö½öÔÚLinuxºÍSolarisÉÏÔËÐÐÁ¼ºÃ¡£ÔÚÆäËû²Ù×÷ϵͳÉÏ£¬¾¡¹Ü´úÂëÄܱàÒ룬µ«Ò²Ðí»áÃæÁÙÑÏÖØµÄÎÊÌâ¡£
ΪÁËʹÓÃaufs£¬¿ÉÒÔÔÚ./configureʱÔö¼ÓÒ»¸öÑ¡Ï
% ./configure --enable-storeio=aufs,ufs
Ñϸñ½²£¬Äã²»±ØÔÚstoreioÄ£¿éÁбíÖÐÖ¸¶¨ufs¡£È»¶ø£¬¼ÙÈçÄãÒÔºó²»Ï²»¶aufs£¬ÄÇô¾ÍÐèÒªÖ¸¶¨ufs£¬ÒÔ±ãÄÜÖØÐÂʹÓÃÎȶ¨µÄufs´æ´¢»úÖÆ¡£
¼ÙÈçÔ¸Ò⣬ÄãÒ²ÄÜʹÓáªwith-aio-threads=NÑ¡Ïî¡£¼ÙÈçÄãºöÂÔËü£¬squid»ùÓÚaufs cache_dirµÄÊýÁ¿£¬×Ô¶¯¼ÆËã¿ÉʹÓõÄÏß³ÌÊýÁ¿¡£±í8-1ÏÔʾÁË1-6¸öcacheĿ¼µÄĬÈÏÏß³ÌÊýÁ¿¡£
Table 8-1. Default number of threads for up to six cache directories
cache_dirs        Threads
1        16
2        26
3        32
4        36
5        40
6        44
½«aufsÖ§³Ö±àÒë½øsquidºó£¬ÄãÄÜÔÚsquid.confÎļþÀïµÄcache_dirÐкóÖ¸¶¨Ëü£º
cache_dir aufs /cache0 4096 16 256
ÔÚ¼¤»îÁËaufs²¢Æô¶¯squidºó£¬ÇëÈ·ÈÏÿ¼þÊÂÈÔÄܹ¤×÷Õý³£¡£¿ÉÒÔÔËÐÐtail -f store.logÒ»»á¶ù£¬ÒÔÈ·ÈÏ»º´æÄ¿±ê±»½»»»µ½´ÅÅÌ¡£Ò²¿ÉÒÔÔËÐÐtail -f cache.log²¢ÇÒ¹Û²ìÈκÎеĴíÎó»ò¾¯¸æ¡£

8.4.1 aufsÈçºÎ¹¤×÷
Squidͨ¹ýµ÷ÓÃpthread_create()À´´´½¨´óÁ¿µÄÏ̡߳£ËùÓÐÏß³ÌÔÚÈκδÅÅ̻֮ÉÏ´´½¨¡£ÕâÑù£¬¼´Ê¹squid¿ÕÏУ¬ÄãÒ²Äܼûµ½ËùÓеÄÏ̡߳£
ÎÞÂÛºÎʱ£¬squidÏëÖ´ÐÐijЩ´ÅÅÌI/O²Ù×÷£¨ÀýÈç´ò¿ªÎļþ¶Á£©£¬Ëü·ÖÅäÒ»¶ÔÊý¾Ý½á¹¹£¬²¢½«I/OÇëÇó·Å½ø¶ÓÁÐÖС£Ïß³ÌÑ­»·¶ÁÈ¡¶ÓÁУ¬È¡µÃI/OÇëÇó²¢Ö´ÐÐËüÃÇ¡£ÒòΪÇëÇó¶ÓÁй²Ïí¸øËùÓÐỊ̈߳¬squidʹÓöÀÏíËøÀ´±£Ö¤½ö½öÒ»¸öÏß³ÌÄÜÔÚ¸ø¶¨Ê±¼äÄÚ¸üжÓÁС£
I/O²Ù×÷×èÈûÏß³ÌÖ±µ½ËüÃDZ»Íê³É¡£È»ºó£¬½«²Ù×÷״̬·Å½øÒ»¸öÍê³É¶ÓÁÐÀï¡£×÷ΪÍêÕûµÄ²Ù×÷£¬squidÖ÷½ø³ÌÖÜÆÚÐԵļì²éÍê³É¶ÓÁС£ÇëÇó´ÅÅÌI/OµÄÄ£¿é±»Í¨Öª²Ù×÷ÒÑÍê³É£¬²¢»ñÈ¡½á¹û¡£
Äã¿ÉÄÜÒѲÂÏëµ½£¬aufsÔÚ¶àCPUϵͳÉÏÓÅÊÆ¸üÃ÷ÏÔ¡£Î¨Ò»µÄËø²Ù×÷·¢ÉúÔÚÇëÇóºÍ½á¹û¶ÓÁС£È»¶ø£¬ËùÓÐÆäËûµÄº¯ÊýÖ´Ðж¼ÊǶÀÁ¢µÄ¡£µ±Ö÷½ø³ÌÔÚÒ»¸öCPUÉÏÖ´ÐÐʱ£¬ÆäËûµÄCPU´¦Àíʵ¼ÊµÄI/Oϵͳµ÷Óá£

8.4.2 aufs·¢ÐÐ
Ï̵߳ÄÓÐÈ¤ÌØÐÔÊÇËùÓÐÏ̹߳²ÏíÏàͬµÄ×ÊÔ´£¬°üÀ¨ÄÚ´æºÍÎļþÃèÊö·û¡£ÀýÈ磬ij¸öÏ̴߳ò¿ªÒ»¸öÎļþ£¬ÎļþÃèÊö·ûΪ27£¬ËùÓÐÆäËûÏß³ÌÄÜÒÔÏàͬµÄÎļþÃèÊö·ûÀ´·ÃÎʸÃÎļþ¡£¿ÉÄÜÄãÒÑÖªµÀ£¬ÔÚ³õ´Î¹ÜÀísquidʱ£¬ÎļþÃèÊö·û¶ÌȱÊÇ½ÏÆÕ±éÎÊÌâ¡£UnixÄں˵äÐ͵ÄÓÐÁ½ÖÖÎļþÃèÊö·ûÏÞÖÆ£º
½ø³Ì¼¶µÄÏÞÖÆºÍϵͳ¼¶µÄÏÞÖÆ¡£ÄãÒ²ÐíÈÏΪÿ¸ö½ø³ÌÓµÓÐ256¸öÎļþÃèÊö·û×ã¹»ÁË£¨ÒòΪʹÓÃỊ̈߳©£¬È»¶ø²¢·ÇÈç´Ë¡£ÔÚÕâÑùµÄÇé¿öÏ£¬ËùÓÐÏ̹߳²ÏíÉÙÁ¿µÄÎļþÃèÊö·û¡£ÇëÈ·ÈÏÔö¼ÓϵͳµÄ½ø³ÌÎļþÃèÊö·ûÏÞÖÆµ½4096»ò¸ü¸ß£¬ÌرðÔÚʹÓÃaufsʱ¡£
µ÷ÕûÏß³ÌÊýÁ¿Óе㼬ÊÖ¡£ÔÚijЩÇé¿öÏ£¬¿ÉÔÚcache.logÀï¼ûµ½ÈçϾ¯¸æ£º
2003/09/29 13:42:47| squidaio_queue_request: WARNING - Disk I/O overloading
ÕâÒâζ×ÅsquidÓдóÁ¿µÄI/O²Ù×÷ÇëÇó³äÂú¶ÓÁУ¬µÈ´ý×Å¿ÉÓõÄÏ̡߳£ÄãÊ×ÏÈ»áÏëµ½Ôö¼ÓÏß³ÌÊýÁ¿£¬È»¶øÎÒ½¨Ò飬Äã¸Ã¼õÉÙÏß³ÌÊýÁ¿¡£
Ôö¼ÓÏß³ÌÊýÁ¿Ò²»áÔö¼Ó¶ÓÁеĴóС¡£³¬¹ýÒ»¶¨ÊýÁ¿£¬Ëü²»»á¸Ä½øaufsµÄ¸ºÔØÄÜÁ¦¡£Ëü½ö½öÒâζןü¶àµÄ²Ù×÷±ä³É¶ÓÁС£Ì«³¤µÄ¶ÓÁе¼ÖÂÏìӦʱ¼ä±ä³¤£¬Õâ¾ø²»ÊÇÄãÏëÒªµÄ¡£
¼õÉÙÏß³ÌÊýÁ¿ºÍ¶ÓÁдóС£¬Òâζ×Åsquid¼ì²â¸ºÔØÌõ¼þ¸ü¿ì¡£µ±Ä³¸öcache_dir³¬ÔØ£¬Ëü»á´ÓÑ¡ÔñËã·¨ÀïÒÆ³ýµô£¨¼û7.4Õ£©¡£È»ºó£¬squidÑ¡ÔñÆäËûµÄcache_dir»ò¼òµ¥µÄ²»´æ´¢ÏìÓ¦µ½´ÅÅÌ¡£Õâ¿ÉÄÜÊǽϺõĽâ¾ö·½·¨¡£¾¡¹ÜÃüÖÐÂÊϽµ£¬ÏìӦʱ¼äÈ´±£³ÖÏà¶Ô½ÏµÍ¡£

8.4.3 ¼àÊÓaufs²Ù×÷
Cache¹ÜÀíÆ÷²Ëµ¥ÀïµÄAsync IO CountersÑ¡Ï¿ÉÒÔÏÔÊ¾Éæ¼°µ½aufsµÄͳ¼ÆÐÅÏ¢¡£ËüÏÔʾ´ò¿ª£¬¹Ø±Õ£¬¶Áд£¬stat£¬ºÍɾ³ý½ÓÊܵ½µÄÇëÇóµÄÊýÁ¿¡£ÀýÈ磺
% squidclient mgr:squidaio_counts
...
ASYNC IO Counters:
Operation       # Requests
open             15318822
close            15318813
cancel           15318813
write                   0
read             19237139
stat                    0
unlink            2484325
check_callback  311678364
queue                   0
È¡Ïû(cancel)¼ÆÊýÆ÷Õý³£Çé¿öϵÈͬÓڹرÕ(close)¼ÆÊýÆ÷¡£ÕâÊÇÒòΪcloseº¯Êý×ÜÊǵ÷ÓÃcancelº¯Êý£¬ÒÔÈ·ÈÏÈκÎδ¾öµÄI/O²Ù×÷±»ºöÂÔ¡£
д(write)¼ÆÊýÆ÷Ϊ0£¬ÒòΪ¸Ã°æ±¾µÄsquidÖ´ÐÐͬ²½Ð´²Ù×÷£¬¼´Ê¹ÊÇaufs¡£
check_callbak¼ÆÊýÆ÷ÏÔʾsquidÖ÷½ø³Ì¶ÔÍê³É¶ÓÁмì²éÁ˶àÉٴΡ£
queueÖµÏÔʾµ±Ç°ÇëÇó¶ÓÁеij¤¶È¡£Õý³£Çé¿öÏ£¬¶ÓÁ㤶ÈÉÙÓÚÏß³ÌÊýÁ¿µÄ5±¶¡£¼ÙÈçÄã³ÖÐø¹Û²ìµ½¶ÓÁг¤¶È´óÓÚÕâ¸öÖµ£¬ËµÃ÷squidÅäµÃÓÐÎÊÌâ¡£Ôö¼Ó¸ü¶àµÄÏß³ÌÒ²ÐíÓаïÖú£¬µ«½ö½öÔÚÌØ¶¨·¶Î§ÄÚ¡£

8.5 diskd´æ´¢»úÖÆ
diskd£¨diskÊØ»¤½ø³ÌµÄ¶Ì³Æ£©ÀàËÆÓÚaufs£¬´ÅÅÌI/O±»Íⲿ½ø³ÌÀ´Ö´ÐС£²»Í¬ÓÚaufsµÄÊÇ£¬diskd²»Ê¹ÓÃÏ̡߳£´úÌæµÄ£¬Ëüͨ¹ýÏûÏ¢¶ÓÁк͹²ÏíÄÚ´æÀ´ÊµÏÖÄÚ²¿½ø³Ì¼äͨÐÅ¡£
ÏûÏ¢¶ÓÁÐÊÇÏÖ´úUnix²Ù×÷ϵͳµÄ±ê×¼¹¦ÄÜ¡£Ðí¶àÄêÒÔǰÔÚAT&TµÄUnix System VµÄ°æ±¾1ÉÏʵÏÖÁËËüÃÇ¡£½ø³Ì¼äµÄ¶ÓÁÐÏûÏ¢ÒÔ½ÏÉÙµÄ×Ö½Ú´«µÝ£º32-40×Ö½Ú¡£Ã¿¸ödiskd½ø³ÌʹÓÃÒ»¸ö¶ÓÁÐÀ´½ÓÊÜÀ´×ÔsquidµÄÇëÇ󣬲¢Ê¹ÓÃÁíÒ»¸ö¶ÓÁÐÀ´´«»ØÇëÇó¡£

8.5.1 diskdÈçºÎ¹¤×÷
Squid¶Ôÿ¸öcache_dir´´½¨Ò»¸ödiskd½ø³Ì¡£ÕⲻͬÓÚaufs£¬aufs¶ÔËùÓеÄcache_dirʹÓÃÒ»¸ö´óµÄÏ̳߳ء£¶Ôÿ¸öI/O²Ù×÷£¬squid·¢ËÍÏûÏ¢µ½ÏàÓ¦µÄdiskd½ø³Ì¡£µ±¸Ã²Ù×÷Íê³Éºó£¬diskd½ø³Ì·µ»ØÒ»¸ö×´Ì