用Squid3搭建缓存代理服务器

  最近在实验室研究CDN和缓存的一些内容,看了很多Squid缓存服务器的资料,于是想在自己电脑上搭建和配置一个Squid缓存代理,看看它的工作流程,下面是自己做的一些步骤。

  实验环境:

      

  环境很简单,都是在自己的电脑上跑的客户机win7系统,缓存代理为win6内的ubuntu 12.04虚拟机,win7内chrome浏览器通过缓存代理访问外网资源。

环境配置:

  1.安装squid3

   sudo apt-get install squid3

  2.修改配置文件

   squid3的配置文件和squid2的位置不太一样,我安装后的配置文件目录为/etc/squid3/squid.conf/

   配置文件很长,用gedit打开方便查找修改。 gedit /etc/squid3/squid.conf

   2.1 找到http_port修改项

   # Squid normally listens to port 3128

   http_port 3128

   http_port 80

   注释显示Squid默认监听3128端口,此时加入监听80端口,因为在之后使用中发现,使用squidclient查看squid状态的请求是通过80端口发向squid服务器的,如果不监听80端口则无法进行一些查看缓存状态的命令。

2.2 找到http_access allow 项

   acl manager proto cache_object

   acl managercache src 127.0.0.1/32 ::1           允许本地ip进行缓存管理

   acl Purge method PURGE                               允许PURGE

   acl localhost src 127.0.0.1/32 ::1                   

   acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1

http_access allow managercache Purge

   这里是修改acl访问控制规则,以后需要从本地用PURGE命令来清除Squid缓存,所以加入了红色的三条访问控制规则,其他acl如localhost,to_localhost,manager,在后续配置文件中已经存在http_access allow 项,所以不需要再自己加入。

   2.3 找到cahce_dir

   cache_dir ufs /var/spool/squid3 100 16 256

   这里是设置缓存的目录,上面的参数是100M缓存空间,一级目录16,二级目录256,后面可以看一下具体的缓存目录情况。

   2.4 其他参数

   还有一些其他参数如mem_cache等等,具体可以参考http://www.php3.cn/squid/chap01.html

   2.5重新加载配置文件

squid3 -k reconfigure

   一定要重新加载,否则修改无效!

  3.通过缓存代理上网

   3.1浏览器设置

   

   使用Chrome浏览器的SwitchySharp插件,设置代理ip为缓存服务器ip 10.108.140.66 端口 3128

   3.2 查看缓存服务器状态

   浏览器浏览一些网页后,可以用命令查看Squid状态。

   squidclient -p 80 mgr:info

   ==================输出================================         

[email protected]:/etc/squid3# squidclient -p 80 mgr:info
HTTP/1.0 200 OK
Server: squid/3.1.19
Mime-Version: 1.0
Date: Tue, 28 Oct 2014 07:57:50 GMT
Content-Type: text/plain
Expires: Tue, 28 Oct 2014 07:57:50 GMT
Last-Modified: Tue, 28 Oct 2014 07:57:50 GMT
X-Cache: MISS from localhost
X-Cache-Lookup: MISS from localhost:3128
Via: 1.0 localhost (squid/3.1.19)
Connection: close

Squid Object Cache: Version 3.1.19
Start Time: Tue, 28 Oct 2014 06:14:20 GMT
Current Time: Tue, 28 Oct 2014 07:57:50 GMT
Connection information for squid:
Number of clients accessing cache: 2
Number of HTTP requests received: 1744
Number of ICP messages received: 0
Number of ICP messages sent: 0
Number of queued ICP replies: 0
Number of HTCP messages received: 0
Number of HTCP messages sent: 0
Request failure ratio: 0.00
Average HTTP requests per minute since start: 16.9
Average ICP messages per minute since start: 0.0
Select loop called: 640137 times, 9.700 ms avg
Cache information for squid:
Hits as % of all requests: 5min: 0.0%, 60min: 0.0%
Hits as % of bytes sent: 5min: 100.0%, 60min: 100.0%
Memory hits as % of hit requests: 5min: 0.0%, 60min: 0.0%
Disk hits as % of hit requests: 5min: 0.0%, 60min: 0.0%
Storage Swap size: 35560 KB
Storage Swap capacity: 34.7% used, 65.3% free
Storage Mem size: 8104 KB
Storage Mem capacity: 99.5% used, 0.5% free
Mean Object Size: 14.09 KB
Requests given to unlinkd: 61
Median Service Times (seconds) 5 min 60 min:
HTTP Requests (All): 0.00000 0.00000

......

=================================================================================

也可以查看Squid日志,里面记录了缓存Miss和Hit的一些情况,目录为/var/log/squid3/

或者查看/var/spool/squid3/缓存存储目录,里面有缓存下来的文件,是分级存放的。

    

    经过以上步骤,一个最简单的缓存代理就搭建完了,可以用来做一些实验,了解缓存代理的工作原理。

时间: 2024-10-12 10:26:54

用Squid3搭建缓存代理服务器的相关文章

Squid 搭建正向代理服务器

Squid 是一款缓存代理服务器软件,广泛用于网站的负载均衡架构中,常见的缓存服务器还有varnish.ATS等. 正向代理服务器可满足内网仅有一台服务器可以上网,而要供内网所有机器上网的需求,也可以用于爬虫的代理访问.在实践中我将Squid作为爬虫代理服务器,实现了多IP切换的功能,将在后续文章中记录实现过程. 安装 系统环境: CentOS 7.0Squid版本:3.5.20 源代码安装 到官方网站 http://www.squid-cache.org/Versions/ 查找版本号,找到下

Nginx搭建反向代理服务器过程详解 - Windows

本文主要是Nginx做一个简单的反向服务器代理和静态文件缓存. 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器 我们就开始动手吧. 1. Vistudio 创建两个简单的 WebApplication (Web Forms),一个叫WebApplication1,一个叫 WebApplication2. 为了区别

magent——memcached缓存代理服务器

memcached分布式缓存 我们使用PHP连接多台memcached服务器,做分布式缓存,实现如下: $memcache = new Memcache; $memcache->addServer('192.168.252.134', 11211); $memcache->addServer('192.168.252.134', 11212); $memcache->addServer('192.168.252.134', 11213); for ($i = 0; $i < 100

SpringAOP与Redis搭建缓存

SpringAOP与Redis搭建缓存 近期项目查询数据库太慢,持久层也没有开启二级缓存,现希望采用Redis作为缓存.为了不改写原来代码,在此采用AOP+Redis实现. 目前由于项目需要,只需要做查询部分: 数据查询时每次都需要从数据库查询数据,数据库压力很大,查询速度慢,因此设置缓存层,查询数据时先从redis中查询,如果查询不到,则到数据库中查询,然后将数据库中查询的数据放到redis中一份,下次查询时就能直接从redis中查到,不需要查询数据库了. redis作为缓存的优势: 1.内存

如何搭建web服务器 使用Nginx搭建反向代理服务器

转载   如何搭建web服务器 使用Nginx搭建反向代理服务器 :   http://blog.csdn.net/w13770269691/article/details/6977727 引言:最近公司有台服务器遭受DDOS攻击,流量在70M以上,由于服务器硬件配置较高所以不需要DDOS硬件防火 墙.但我们要知道,IDC机房是肯定不允许这种流量一直处于这么高的,因为没法具体知道后面陆续攻击的流量会有多大,如果流量过大就会导致整个IDC网络 瘫痪.我们都知道北方的数据中心和南方的数据中心从带宽出

Twemproxy 缓存代理服务器

Twemproxy 缓存代理服务器 Twemproxy 概述 Twemproxy(又称为nutcracker)是一个轻量级的Redis和Memcached代理,主要用来减少对后端缓存服务器的连接数.Twemproxy是由Twitter开源出来的缓存服务器集群管理工具,主要用来弥补Redis/Memcached 对集群(cluster)管理的不足. antirez(Redis作者)写过一篇对twemproxy的介绍,他认为twemproxy是目前Redis 分片管理的最好方案,虽然antirez的

Twemproxy 分布式集群缓存代理服务器

Twemproxy 分布式集群缓存代理服务器 是一个使用C语言编写.以代理的方式实现的.轻量级的Redis代理服务器, 它通过引入一个代理层,将应用程序后端的多台Redis实例进行统一管理, 使 应用程序只需要在Twemproxy上进行操作,而不用关心后面具体有 多少个真实的Redis或Memcached实例,从而实现了基于Redis和 Memcached的集群服务.当某个节点宕掉时,Twemproxy可以自 动将它从集群中剔除,而当它恢复服务时,Twemproxy也会自动连接. 由 于是代理,

基于tinyproxy搭建yum代理服务器

在我们实际的工作当中,经常会遇到这种情况,我们对线上服务器进行操作时是通过跳板机来进行的,出于安全性及投入资金来考虑非必要情况下除跳板机以外的服务器是没有内网ip的,所以当我们位于内网的服务器需要使用yum安装软件包时就遇到了不能连接网络的问题,我们可以通过部署基于Tinyproxy的http代理来用作yum代理,操作如下: 1.首先我们还是新建了一个名为TInyproxy的docker容器,新建容器后我们发现我们并没有ping命令,所以需要安装initscripts包 [[email prot

搭建MySQL代理服务器实现读写分离+主从同步

实验需求: 1.配置2台MySQL服务器(192.168.100.2,192.168.100.3)+1台代理服务器(192.168.100.1),实现MySQL代理的读写分离. 2.用户只需要访问MySQL代理服务器,实际的SQL查询.写入操作交给后台的2台MySQL服务器来完成. 3.2台MySQL服务器实现主从同步,其中Master服务器允许SQL查询.写入,Slave服务器只允许SQL查询. 一 .MASTER数据库服务器(192.168.100.2)的配置 1.安装软件包(本实验采用My