首页 > 系统 > Linux > 正文

linux中squid3(高命中率)缓存服务器配置

2024-08-27 23:59:31
字体:
来源:转载
供稿:网友

quid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid有广泛的用途,从作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid主要设计用于在Unix一类系统运行,下面我们来看看squid3(高命中率)缓存服务器配置教程。

今天对我的varnish进行了下小小的压力测试,40s里的8000并发,没有失败一个,估计还可以承受更大的并发,先不说varnish了,我最近找到个命中率很高的squid的配置文件,当然是squid3.0的配置文件,有需要的可以copy回去自己改.

系统:centos 5.x

需要的软件:squid-3.0.STABLE25.tar.gz

1.下载squid

  1. wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE25.tar.gz 
  2.  
  3. tar zxf squid-3.0.STABLE25.tar.gz && cd squid-3.0.STABLE25 

2.编译squid,代码如下:

  1. ./configure --prefix=/usr/local/squid  
  2. --enable-async-io=100  
  3. --with-pthreads  
  4. --enable-storeio="aufs,diskd,ufs"  
  5. --enable-removal-policies="heap,lru"  
  6. --enable-icmp  
  7. --enable-delay-pools  
  8. --enable-useragent-log  
  9. --enable-referer-log  
  10. --enable-kill-parent-hack  
  11. --enable-arp-acl  
  12. --enable-default-err-language=Simplify_Chinese  
  13. --enable-err-languages="Simplify_Chinese English"  
  14. --disable-poll  
  15. --disable-wccp  
  16. --disable-wccpv2  
  17. --disable-ident-lookups  
  18. --disable-internal-dns  
  19. --enable-basic-auth-helpers="NCSA"  
  20. --enable-stacktrace  
  21. --with-large-files  
  22. --disable-mempools  
  23. --with-filedescriptors=65536  
  24. --enable-ssl  
  25. --enable-x-accelerator-var 
  26. make 
  27. make install 
  28. make install-pinger 

3.配置squid,代码如下:

  1. cp /usr/local/squid/etc/squid.conf /usr/local/squid/etc/squid.conf.old 
  2. >/usr/local/squid/etc/squid.conf 
  3. ln -s /usr/local/squid/etc/squid.conf /etc/squid.conf 

squid.conf里的内容,代码如下:

  1. #accel listen port 
  2. http_port 80 accel vhost vport 
  3. #accel domain 
  4. cache_peer xx.xx.xx.xx parent 80 0 no-query originserver no-digest name=a 
  5. cache_peer_domain a www.Vevb.com 
  6.  
  7. #acl 
  8. acl manager proto cache_object 
  9. acl localhost src 127.0.0.1/255.255.255.255 
  10. acl SSL_ports port 443 563 
  11. acl Safe_ports port 80       # http 
  12. acl Safe_ports port 8080 
  13. acl LanSrc src all 
  14. acl LanDst dst all 
  15. acl LanDstDM dstdomain www.Vevb.com 
  16.  
  17. acl CONNECT method CONNECT 
  18. http_access allow manager localhost 
  19. http_access deny manager 
  20. http_access deny !Safe_ports 
  21. http_access deny CONNECT !SSL_ports 
  22. http_access allow LanSrc 
  23. http_access allow LanDst 
  24. http_access allow LanDstDM 
  25. http_access deny   all 
  26.  
  27. #base 
  28. visible_hostname www.Vevb.com 
  29. cache_mgr rocdk890@gmail.com 
  30. cache_effective_user squid 
  31. cache_effective_group squid 
  32.  
  33. error_directory /usr/local/squid/share/errors/Simplify_Chinese 
  34. icon_directory /usr/local/squid/share/icons 
  35. mime_table /usr/local/squid/etc/mime.conf 
  36.  
  37. cache_replacement_policy lru 
  38. #cache_dir 
  39. cache_dir aufs /var/cache1 32768 64 64 
  40. cache_dir aufs /var/cache2 32768 64 64 
  41. cache_mem 2048 MB 
  42. max_open_disk_fds 0 
  43. #maximum_object_size 512 KB 
  44. #maximum_object_size_in_memory 256 KB 
  45. maximum_object_size 20 MB 
  46. maximum_object_size_in_memory 8 MB 
  47.  
  48. #keepalived 
  49. client_persistent_connections off 
  50. server_persistent_connections on 
  51. #persistent_request_timeout 60 seconds 
  52.  
  53. #memory_pools on 
  54. #memory_pools_limit 64 MB 
  55.  
  56. forwarded_for on 
  57. log_icp_queries off 
  58.  
  59. via off 
  60. httpd_suppress_version_string off 
  61.  
  62. ie_refresh off 
  63. tcp_recv_bufsize 32 KB 
  64.  
  65. #acl webservices rep_header Server -i ^linuxtoneWS ^Apache ^nginx 
  66. #broken_vary_encoding allow webservices 
  67.  
  68. #hidden the squid header 
  69. #reply_header_access Server deny all 
  70. #reply_header_access X-Cache deny all 
  71. #reply_header_access Warning deny all 
  72. #reply_header_access Expires deny all 
  73. #reply_header_access Cache-Control deny all 
  74. #reply_header_access age deny all 
  75. #reply_header_access All deny all 
  76.  
  77. ipcache_size 1024 
  78. ipcache_low 90 
  79. ipcache_high 95 
  80.  
  81. memory_replacement_policy lru 
  82.  
  83. hosts_file /etc/hosts 
  84. request_header_max_size 128 KB 
  85.  
  86. #deny cache 
  87. hierarchy_stoplist cgi-bin ? .php 
  88. acl QUERY urlpath_regex cgi-bin? .php 
  89. cache deny QUERY 
  90.  
  91. #request_body_max_size 0 KB 
  92.  
  93. refresh_pattern ^ftp:           60      20%     10080 
  94. refresh_pattern ^gopher:        60      0%      1440 
  95. refresh_pattern .               0       20%     1440 
  96. refresh_pattern -i .css$       360    50%     2880    reload-into-ims 
  97. refresh_pattern -i .js$        1440    50%     2880    reload-into-ims 
  98. refresh_pattern -i .html$        720   50%     1440    reload-into-ims 
  99. refresh_pattern -i .jpg$       1440    90%     2880    ignore-reload 
  100. refresh_pattern -i .gif$       1440    90%     2880    ignore-reload 
  101. refresh_pattern -i .swf$       1440    90%     2880    ignore-reload 
  102. refresh_pattern -i .jpg$       1440      50%     2880    ignore-reload 
  103. refresh_pattern -i .png$       1440      50%     2880      ignore-reload 
  104. refresh_pattern -i .bmp$       1440      50%     2880      ignore-reload 
  105.  
  106. refresh_pattern -i .doc$ 1440    50%     2880      ignore-reload 
  107. refresh_pattern -i .ppt$ 1440    50%     2880      ignore-reload 
  108. refresh_pattern -i .xls$ 1440    50%     2880      ignore-reload 
  109. refresh_pattern -i .pdf$ 1440    50%     2880      ignore-reload 
  110. refresh_pattern -i .rar$       1440    50%     2880      ignore-reload 
  111. refresh_pattern -i .zip$ 1440    50%     2880      ignore-reload 
  112. refresh_pattern -i .txt$ 1440    50%     2880      ignore-reload 
  113.  
  114. quick_abort_min 20 KB 
  115. quick_abort_max 20 KB 
  116. quick_abort_pct 95 
  117.  
  118. connect_timeout 1 minute 
  119. negative_ttl 0 minutes 
  120. read_timeout 30 seconds 
  121. pconn_timeout 120 seconds 
  122. shutdown_lifetime 5 seconds 
  123. strip_query_terms off 
  124.  
  125. #snmp 
  126. #snmp_port 3401 
  127. #acl snmppublic snmp_orgmunity snsimg 
  128. #snmp_access allow snmppublic localhost 
  129. #snmp_access deny all 
  130.  
  131. icp_port 0 
  132.  
  133. # logfile 
  134. emulate_httpd_log on 
  135. #logformat combined %{X-Forwarded-For}>h %ui %un [%tl] “%rm %ru HTTP/%rv” %Hs %<st “%{Referer}>h” “%{User-Agent}>h” %Ss:%Sh 
  136. #access_log none 
  137. #access_log /data/logs/access.log combined 
  138. logformat squid  %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt 
  139. access_log /var/log/squid/access.log squid 
  140. #cache_store_log /var/log/squid/store.log 
  141. cache_store_log /dev/null 
  142. cache_log /var/log/squid/cache.log 
  143. logfile_rotate 12 
  144.  
  145. # MISCELLANEOUS 
  146. store_objects_per_bucket 15 
  147. client_db off 

4.创建目录,代码如下:

  1. /usr/sbin/groupadd squid 
  2. /usr/sbin/useradd -g squid squid 
  3. mkdir -p /var/log/squid 
  4. chown -R squid:squid /var/log/squid 
  5. mkdir -p /var/{cache1,cache2} 
  6. chown -R squid:squid /var/{cache1,cache2} 

初始化squid的cache目录:

/usr/local/squid/sbin/squid -z

启动squid:

/usr/local/squid/sbin/squid -D

如果大家不喜欢这样的启动方式,可以自己去找个squid的启动脚本,这里就不放出了.当squid运行起来了之后,大家可以使用下面这个命令来查看命中率:

/usr/local/squid/bin/squidclient -p 80 mgr:info

好了,具体其他squid的使用命令就只能你们自己去搜了,就到这里了.

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表