对Squid使用的几点总结

1.cache_dir

在Linux环境下用aufs类型的cache_dir比较稳定,速度也比较快。cache_dir所在文件系统如果用noatime选项来mount,可以避

免访问cache文件时经常要更新access time的操作。

一般cache容量和被加速内容的比值在1:10到1:20比较合适。

cache_dir aufs /var/spool/squid 10240 64 64
这是一个典型网站web caching server的cache_dir配置,加速100GB到200GB的内容

cache_dir aufs /var/spool/squid 1024 16 64
这是一个典型办公室透明代理的cache_dir配置,加速10GB到20GB的内容

2.cache_mem

很多文章说cache_mem要设置成物理内存数量的一半,比如物理内存2GB的cache_mem要设置成1GB。但是经过实际使用检验,这往往

是造成服务器内存超负荷的元凶。《Squid: The Definitive Guide》关于cache_mem这样说:“This directive doesn‘t

entirely control the size of the Squid process”。实际使用当中内存占用往往超过cache_mem限定值很多,也就是说,

squid占用内存量似乎不受这个参数的控制。所以,此参数不必设得太大,适量就行,我的设置是:

服务器:
cache_mem 100 MB

局域网:
cache_mem 10 MB

另外,设置较小的maximum_object_size_in_memory值有助于有效控制squid过度占用内存,例如:
maximum_object_size 12288 KB
maximum_object_size_in_memory 24 KB

memory_pools off,也是一个不错的设置

题外话,个人觉得squid这个软件设计的比较失败的地方就是内存管理这一块...

3.透明代理

防火墙设置好端口拦截,然后这样设置可以实现透明代理:

httpd_accel_port 80 (0: 加速任何端口)
httpd_accel_host virtual
httpd_accel_uses_host_header on
httpd_accel_with_proxy on

这是使两种工作模式:代理模式和加速模式,同时工作。要想关闭代理模式,只要把httpd_accel_with_proxy设成off

4.http_port

http_port可以重复设置,使得squid在多个端口侦听

http_port 80
http_port 3128
http_port localhost:8080

5.访问控制

acl it_nets src 192.168.0.0/19 (限制访问ip)
acl over_conn_limit maxconn 20 (限制连接数)
acl illegal_access url_regex -i what_ever_you_want (限制访问内容)

http_access deny over_conn_limit
http_access deny illegal_access
http_access allow it_nets
http_access deny all

6.cache文件的更新周期

refresh_pattern ^/$ 0 66% 240 reload-into-ims
refresh_pattern ^.+/(<^.>*)$ 0 66% 720 reload-into-ims
(首页,更新得比较频繁,cache更新周期短一些)

refresh_pattern -i /.(htm|html|txt|js)$ 0 66% 1440 reload-into-ims
(一般页面,更新得没那么频繁,cache更新周期长一些)

refresh_pattern -i /.(bmp|gif|jpg|png|swf)$ 0 66% 10080 reload-into-ims
(图片、flash,更新得最不频繁,cache更新周期最长)

refresh_pattern . 0 66% 10080 reload-into-ims
(缺省,长一些)

reload-into-ims

When set, this option makes Squid transform a request with a no-cache directive into a validation

(If-Modified-Since) request. In other words, Squid adds an If-Modified-Since header to the request

before forwarding it on. Note that this only works for objects that have a Last-Modified timestamp.

The outbound request retains the no-cache directive, so that it reaches the origin server.

大概意思是:只在源服务器上文件变动的情况下才实际更新cache当中的内容。

小技巧:Ctrl+F5可以强制浏览器和squid刷新它的缓存。

题外话:内容管理系统(CMS)在更新发布页面的时候,应该与cache服务器之间有一种沟通机制,通知cache刷新更新了的内容

7.杂项

negative_ttl 0 minutes

pipeline_prefetch on (对提升squid处理客户端请求的速度有帮助)

forwarded_for on

dns_nameservers 202.96.128.86 202.96.128.166

8.Squid+Apache

在apache服务器中前置squid,可以有效减少apache衍生进程的数量,从而减少内存消耗。

利用Squid的访问控制功能,可以实现内容过滤、连接数限制等apache力所不能及的功能。

利用Squid的I/O驱动的请求处理模式,更高效地实现静态内容请求处理,至于动态内容还是交给apache来处理。

9.max_filedesc 16384

这个不用多说了...

10.待续..

对Squid使用的一些总结相关推荐

  1. debian10 简单搭建squid

    安装 apt-get install squid 添加密码文件 此文件储存squid的用户与密码 echo "USERNAME:$(openssl passwd -crypt 'PASSWO ...

  2. squid中的X-Cache和X-Cache-Lookup的意义

    在做的CDN的机器的http头中,我们常常见到X-Cache和X-Cache-Lookup的二个参数,那这二个参数分别是什么意思,有什么分别啦. HTTP/1.0 200 OK Expires: Mo ...

  3. Squid故障与解决方法汇总

    1.COSS will not function without large file support (off_t is 4 bytes long. Please reconsider recomp ...

  4. Varnish 和 Squid比较到底强多少

    对于坊间流传的: 1.varnish的性能比squid高10~20倍 2.squid 3.0的性能比2.6有提高 本次测试将会揭示结果, 是否varnish的架构真的能提升那么多的性能 是否squid ...

  5. Squid的refresh_pattern配置

    refresh_pattern 大概是 squid 最有意思但最不好懂的配置参数了. 记住refresh_pattern 只对后端没设置Expires过期时间的页面起作用,比如论坛页面:而对类似apa ...

  6. Squid下Http头信息优先级

    no-cache>Expires>refresh_pattern>Last-Modified 也就是讲,最前面的最重要,前面的生效后,后面的基本就失效了. 另外squid本身就能对比 ...

  7. 清除Squid缓存的小工具

    [ 2007-11-2 17:49 | by 张宴 ] 以前我写过一篇<清除指定squid缓存文件的脚本>,但在取URL时存在10%的错误率.如今找到一款老外的程序,可以批量清除某类URL ...

  8. 让Squid 显示本地时间

    Squid的Error messages 默认的时间显示的GMT时间,而非本地时间,这个有时候看着很别扭. 下面是修改方法,找到Squid的源文件src/errorpage.c 大概在60多行, { ...

  9. squid日志文件太大,怎样处理?

    Squid 默认的5天会压缩一次, 在  /etc/logrotate.d/squid中有设置.如果你修改了日志的位置, 请修改 /etc/logrotate.d/squid /home/log/sq ...

最新文章

  1. 分页原理+分页代码+分页类制作
  2. Android属性动画 ValueAnimator
  3. VTK:灯光之SpotLights
  4. air java,Java Bean
  5. c语言编程作业最大整数问题,C语言编程第六章作业答案.doc
  6. 简单的webservice发布和测试
  7. asp.net应用程序级别跟踪
  8. 普通循环和numpy速率对比
  9. 操作系统第一章操作系统引论例题及答案
  10. codevs1253 超级市场(dp)
  11. 【python】【爬虫】爬取电子书《红星照耀中国》
  12. VR/AR/MR/CR/XR概念及应用
  13. SpringBoot初学笔记(SpringBoot实战之数据库相关操作)
  14. 如何将代码写的更加优雅?
  15. 【模电】第十章、信号处理与信号产生电路(振荡电路)
  16. 如何打造自己有创意的平面设计灵魂作品
  17. python小游戏——俄罗斯方块
  18. Cameralink转SDI接口转换器
  19. 张乐:研发效能的黄金三角及需求与敏捷协作领域的实践
  20. 英语口语练习三十五之To tell the truth... 老实说……

热门文章

  1. linux的mount(挂载)命令
  2. Android系统手机端抓包方法
  3. Tomcat 服务器的端口号的修改
  4. vs2008与IIS 7.0使用在vista上时出现的问题及解决方法(Internet Explorer 无法显示该页面)(VS2008: IE Cannot Display Web Page)...
  5. codeforces round 416 div2补题
  6. java的scanner用法_Java Scanner用法详解
  7. 福建省2013高职单招计算机类试题,13年福建-高职单招-计算机类试题及答案.doc
  8. java 窗体隐藏和关闭_java JFrame窗体真正关闭
  9. python不用编译吗_windows编译xgboost-python,不用vs编译
  10. c语言判断字符串是不是回文_125. 验证回文串