配置文件如下
http_port 59.175.238.60:80 defaultsite=219.140.171.194 vhost vport=80
cache_mem 2048 MB
cache_swap_low 90
cache_swap_high 95
maximum_object_size 20 MB
maximum_object_size_in_memory 8 MB
cache_dir ufs /squid_cache 100000 128 512
cache_peer 219.140.171.194 parent 80 0 no-query originserver
cache_peer_domain 219.140.171.194 img.cnhubei.com
acl all src 0.0.0.0/0.0.0.0
acl Safe_ports port 80
acl Safe_ports port 443
acl AntiBaidu req_header User-Agent Baiduspider
acl cnhubei referer_regex -i cnhubei
acl nullref referer_regex -i ^$
http_access allow nullref
http_access deny !Safe_ports
http_access deny AntiBaidu
http_access deny !cnhubei
deny_info http://www.cnhubei.com/images/2007cnhubei04y002.jpg cnhubei
http_access allow all
visible_hostname www.w3cool.com
cache_mgr zhangweijie@gmail.com
#### Disable Logs
cache_store_log none
cache_vary on
logfile_rotate 0
refresh_pattern -i \.*$ 1440 90% 129600 reload-into-ims
参数设置的都很暴力,还设置了一个反盗链
其实主要就是refresh_pattern的一些理解和建议.
概念LM,LM就是页面Header里时间(Date)和Last-Modified时间的差。Date一般是Squid从后面取页面的时间,Last-Modified 一般是页面生成时间。
refresh_pattern 的语法是
refresh_pattern [-i] regexp min percent max [options]
min, max的单位是分钟,percent就是百分比。
refresh_pattern 的算法如下:(当前时间定义为CURRENT_DATE)
1) If ((CURRENT_DATE-DATE(就是LM里定义的时间)) < min),cache是新鲜的
2) else if ((CURRENT_DATE-DATE) < (min + (max-min)*percent),cache是新鲜的
3) else cache是过期的
cache过期就需要从后面server取新鲜内容。
常用的几个参数的意思
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指令,以便它到达原始服务器。
一般情况可以使用 reload-into-ims。它其实是强行控制对象的超时时间,这违反了http协议的精神,但是在带宽较窄的场合,可以提高明显系统相应时间。
举例:
refresh_pattern -i \.css$ 1440 50% 129600 reload-into-ims
refresh_pattern -i \.xml$ 1440 50% 129600 reload-into-ims
refresh_pattern -i \.html$ 1440 90% 129600 reload-into-ims-
refresh_pattern -i \.shtml$ 1440 90% 129600 reload-into-ims
refresh_pattern -i \.hml$ 1440 90% 129600 reload-into-ims
refresh_pattern -i \.jpg$ 1440 90% 129600 reload-into-ims
refresh_pattern -i \.png$ 1440 90% 129600 reload-into-ims
refresh_pattern -i \.gif$ 1440 90% 129600 ignore-reload
refresh_pattern -i \.bmp$ 1440 90% 129600 reload-into-ims
refresh_pattern -i \.js$ 1440 90% 129600 reload-into-ims
ignore-reload
该选项导致squid忽略请求里的任何no-cache指令。
所以。如果希望内容一进入cache就不删除,直到被主动purge掉为止,可以加上ignore-reload选项,这个我们常用在mp3,wma,wmv,gif之类。
Examples:
refresh_pattern -i \.mp3$ 1440 50% 2880 ignore-reload
refresh_pattern -i \.wmv$ 1440 50% 2880 ignore-reload
refresh_pattern -i \.rm$ 1440 50% 2880 ignore-reload
refresh_pattern -i \.swf$ 1440 50% 2880 ignore-reload
refresh_pattern -i \.mpeg$ 1440 50% 2880 ignore-reload
refresh_pattern -i \.wma$ 1440 50% 2880 ignore-reload
resource age =对象进入cache的时间-对象的last_modified
response age =当前时间-对象进入cache的时间
LM-factor=(response age)/(resource age)
举个例子,这里只考虑percent, 不考虑min 和max
例如:refresh_pattern 20%
假设源服务器上www.aaa.com/index.htm -----lastmodified 是 2007-04-10 02:00:00
squid上 proxy.aaa.com/index.htm index.htm进入cache的时间 2007-04-10 03:00:00
1)如果当前时间 2007-04-10 03:00:00
resource age =3点-2点=60分钟
response age =0分钟
index.htm还可以在cache停留的时间(resource age)*20%=12分钟
也就是说,index.htm进入cache后,可以停留12分钟,才被重新确认。
2)如果当前时间 2007-04-10 03:05:00
resource age =3点-2点=60分钟
response age =5分钟
index.htm还可以在cache停留的时间(resource age)*20%=12分钟-5=7
LM-factor=5/60=8.3%<20%
一直到2007-04-10 03:12:00 LM-factor=12/60=20% 之后,cache中的页面index.htm终于stale。
如果这时没有index.htm的请求,index.htm会一直在缓存中,如果有index.htm请求,squid收到该请求后,由于已经过期, squid会向源服务器发一个index.htm是否有改变的请求,源服务器收到后,如果index.htm没有更新,squid就不用更新缓存,直接把缓存的内容放回给客户端,同时,重置对象进入cache的时间为与源服务器确认的时间,比如2007-04-10 03:13:00,如果正好在这个后重新确认了页面。重置后,resource age变长,相应在cache中存活的时间也变长。
如果有改变则把最新的index.htm返回给squid,squid收到会更新缓存,然后把新的index.htm返回给客户端,同时根据新页面中的Last_Modified和取页面的时间,重新计算resource age,进一步计算出存活时间。
实际上,一个页面进入cache后,他的存活时间就确定了,即 (resource age) * 百分比,一直到被重新确认。
测试一个防盗链:
http://www.w3cool.com/2008/06/24/squid.html
相关推荐
** squid 配置缓存服务器** Squid 是一个广泛使用的开源 HTTP 代理服务器和缓存系统,它能够显著提高网络访问速度,减轻服务器负载,同时提供内容过滤、访问控制等功能。在本文中,我们将深入探讨如何配置 Squid ...
"squid-2.7.STABLE8-for windows" 是针对Windows平台的Squid版本,它提供了稳定和优化的服务。 在Windows上安装Squid-2.7.STABLE8,你需要以下步骤: 1. **下载与解压**:首先,你需要从可靠的源获取`squid-2.7....
3. 进入 Squid 源代码目录:使用 cd 命令进入 squid-3.0.PRE4 目录,例如 `# cd squid-3.0.PRE4`。 4. 编译安装 Squid:使用 configure 命令来配置 Squid,例如 `# ./configure -prefix=/usr/local/squid`,然后使用...
### squid缓存服务器的配置详解 #### 一、概述与背景 Squid是一个高性能的代理缓存服务器,主要用于加速Web浏览,减少对外部网络的带宽需求,提高响应速度,以及提供一定的安全性和访问控制功能。在企业、教育机构...
### Squid 缓存服务器研究 #### 一、Squid 概述 Squid 是一款广泛应用于互联网数据缓存的开源软件。其主要功能是接收来自客户端的请求,并根据请求内容,从远程服务器获取数据后缓存至本地。当下次再次请求相同的...
- 下载Squid稳定版本`squid-2.6.STABLE13-bin.zip`。 - 将下载的压缩包解压至`C:\`目录下(默认路径为`C:\squid`)。 2. **复制配置文件**: - 复制`C:\squid\etc`目录下的`squid.conf.default`为`squid.conf`。...
通过深入研究和使用Squid-2.7.STABLE9的源代码,开发者和系统管理员不仅可以学习到C语言编程技巧,还能了解到网络缓存、负载均衡和访问控制等领域的实践知识。对于想要深入了解网络服务优化和安全管理的人来说,这是...
squid-2.6.STABLE20-bin.zip
1) 软件资源列表:《squid-2.7.STABLE9-20101125.tar.gz》。 2) 安装操作系统环境:CentOS-6.5,(其它linux操作系统请自行尝试)。 3) 本软件安装步骤详解:...
文档为squid缓存服务的配置文档,系统为CentOS部署,本人自己部署成功后整理的文档,绝对清晰。
### Squid 配置 HTTPS 实践指南 #### 概述 本文档旨在提供一份详细的实践指导,帮助读者理解和实现基于 Squid 的 ...此外,还可以根据实际需求调整 Squid 的其他配置选项,例如缓存设置等,以优化性能或增强功能。
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
在互联网访问控制、内容缓存和性能优化等方面,Squid扮演着至关重要的角色。本文将深入探讨Squid的基本概念、功能特性以及配置与管理方法。 一、Squid基础 Squid是一个基于C语言编写的高性能的Web代理缓存服务器。...
WEB缓存功能对于一个规模较大、访问繁忙的网络来说是有必要的,IBM网站上的一篇文章,详细分析介绍了WEB缓存给上网用户带来的好处: http://www-900.ibm.com/developerWorks/cn/web/webcachinga/index.shtml ...
Squid的缓存代理机制是:当一个内部人员通过Squid服务器访问外部网站时,Squid服务器首先会检查它的缓存池里是否有这个外部网站的静态数据(图片、js文件等)。如果有,就直接从缓存池中取出这些数据返回给用户。...
Squid-Premium-v4.0.9-GP_build_4000009-Mod_yxssp.com.apk
【Squid web缓存技术】是网络优化和性能提升的一种关键工具,主要负责存储、重用和分发网络上的内容,以减少网络带宽的消耗和提高访问速度。Squid是一个开源的代理服务器和缓存系统,广泛应用于企业和大型网络环境中...
8. **性能调优**:根据系统资源和网络状况,可以调整Squid的内存缓存大小、硬盘缓存目录、并发连接数等参数以优化性能。 9. **安全与内容过滤**:Squid可以通过第三方模块如DansGuardian实现内容过滤,以阻止不适当...
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
Linux运维-6.集群-集群视频-5、Squid缓存、代理服务-18、Squid简介.mp4