您现在的位置:首页 >> 前端 >> 内容

squid缓存服务器安装和使用

时间:2017/5/11 9:18:00 点击:

  核心提示:squid缓存服务器安装和使用。1.首先在https://www.squid-cache.org/Versions/下载源码,我下载的版本是3.5。环境是ubuntu。2.解压源码,然后cd到该文件夹...

squid缓存服务器安装和使用。

1.首先在https://www.squid-cache.org/Versions/下载源码,我下载的版本是3.5。环境是ubuntu。

2.解压源码,然后cd到该文件夹下,执行编译三部曲。具体可参见网上的教程。

这里说一下我安装的时候遇到的问题。

主要是文件权限的问题。

1.squid.conf里需要打开dir_cache这个配置,否则启动的时候会提示dir_cache没有配置。

2./usr/local/squid/var/cache这个目录及下面的文件没有权限。我直接执行chown -R cyb cache & chmod -R 777 cache,保证了权限,尤其是写的权限。

3.启动时提示无法创建/usr/local/squid/var/logs/cache.log,因为logs是own是root,所以我手动创建了这个文件,并且赋值权限为777。

总体来说就是根据提示来修改出错的地方,很多是权限的问题。

然后就可以启动squid了。执行netstat -ano | grep 3128看到squid启动成功。下面可以进行测试了。这里以squid为正向代理使用。

测试环境:物理主机一台(安装了apache),物理主机里安装虚拟机一个(安装了squid)。

1.打开火狐浏览器,设置代理为squid的ip和端口,然后访问1111.js,响应如图所示。via响应头说明请求apache是由squid代理发出的,并且X-Cache说明squid没有命中缓存,因为是第一次访问。

squid缓存服务器安装和使用

2.这里有个地方需要注意的是,在再次刷新页面之前如果没有清理火狐的缓存文件,刷新页面时,(1)如果是点击url栏,然后回车,响应是直接从浏览器的缓存里获取的,这时候没有发请求到squid。(2)如果是按F5,这时候会加上Cache-Control:max-age=0,所以会请求apache,但是因为满足检验条件,也就是文件没有改变,所以这时候返回304。通过查看apache的access.log可以看到收到了请求,并返回了304。

3.在再次刷新页面之前如果清理了火狐的缓存文件,刷新页面时,不管是何种方式刷新,请求都没有缓存控制指令,所以请求到squid后命中squid缓存,直接返回。通过查看apache日志可以看到请求没有发到apache。(但是这里squid应该也要有文件的存活时间,需要到服务器验证新鲜度)。

为了模拟真实的情况,我把物理主机的火狐也配置代理执行虚拟机里的squid,然后在虚拟机里访问一1.js,然后再在物理机上访问1.js,可以看到响应中的X-Cache:hit from squid。并且apache没有访问记录。从中可以看到squid的作用。也顺带验证了apache得到的ip是squid所在的虚拟机的ip而不是浏览器所在的物理主机ip。

Tags:SQ QU UI ID 
作者:网络 来源:标子 的专栏