`
beyondhjjyt
  • 浏览: 39756 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Squid

 
阅读更多
Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid有广泛的用途,从作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid主要设计用于在Linux一类系统运行。[1]
Squid是一种在Linux系统下使用的优秀的代理服务器软件。
squid不仅可用在Linux系统上,还可以用在AIX、Digital Unix、FreeBSDHP-UXIrixNetBSDNextstepSCOSolaris等系统上。
Squid与Linux下其它的代理软件如ApacheSocks、TIS FWTK和delegate相比,下载安装简单,配置简单灵活,支持缓存和多种协议。用ipchains+Squid的解决方案,就可以获得通过缓存高性能的同时能够无缝的访问Internet。
Squid是一个缓存internet数据的一个软件,它接收用户的下载申请,并自动处理所下载的数据。也就是说,当一个用户想要下载一个主页时,它向Squid发出一个申请,要Squid替它下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid把保存的备份立即传给用户,使用户觉得速度相当快。[2]
对于Web用户来说,Squid是一个高性能的代理缓存服务器,可以加快内部网浏览Internet的速度,提高客户机的访问命中率。Squid不仅支持HTTP协议,还支持FTPgopherSSLWAIS等协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。
Squid将数据元缓存在内存中,同时也缓存DNS查寻的结果,除此之外,它还支持非模块化的DNS查询,对失败的请求进行消极缓存。Squid支持SSL,支持访问控制。由于使用了ICP,Squid能够实现重叠的代理阵列,从而最大限度的节约带宽。
Squid由一个主要的服务程序Squid,一个DNS查询程序dnsserver,几个重写请求和执行认证的程序,以及几个管理工具组成。当Squid启动以后,它可以派生出指定数目的dnsserver进程,而每一个dnsserver进程都可以执行单独的DNS查询,这样一来就大大减少了服务器等待DNS查询的时间。
Squid的另一个优越性在于它使用访问控制清单(ACL)和访问权限清单(ARL)。访问控制清单和访问权限清单通过阻止特定的网络连接来减少潜在的Internet非法连接,可以使用这些清单来确保内部网的主机无法访问有威胁的或不适宜的站点。
Squid对硬件的要求是内存一定要大,不应小于128M,硬盘转速越快越好,最好使用服务器专用SCSI硬盘,处理器要求不高,400MH以上既可。

配置

squid

squid是Linux下的一个代理服务器,本文限于篇幅,简单介绍一下squid配置,在文章结尾处提供一个squid配置的word文件供大家下载。
代理服务器接受到请求后,首先与访问控制列表中的访问规则相对照,如果满足规则,则在缓存中查找是否存在需要的信息。
客户端B向代理服务器提出相同的请求。代理服务器也首先与访问控制列表中的访问规则相对照。如果满足规则,则将缓存中的信息传送给客户端B

squid简介

访问控制清单和访问权限清单通过阻止特定的网络连接来减少潜在的Internet非法连接,可以使用这些清单来确保内部网的主机无法访问有威胁的或不适宜的站点。
以下是一些squid的基本配置参数解释
http_port 3128 //设置监听的IP与端口号
cache_mem 64 MB //设置内存缓冲的大小
cache_dir ufs /var/spool/squid 2000 16 256 //设置硬盘缓冲大小
cache_effective_user squid //设置缓存的有效用户
cache_effective_group squid //设置缓存的有效用户组
dns_nameservers 192.168.0.254 //设置DNS服务器地址,一般可以不设置,默认使用服务器自己设置的dns
cache_access_log /var/log/squid/access.log //设置访问日志文件
cache_log /var/log/squid/cache.log //设置缓存日志文件
visible_hostname 192.168.0.20 //设置squid主机名称
以上全局参数根据你自己的需要修改
其实linux下的服务器配置文件最好就是squid,它对每个参数都有解释,而且有很多很多的实例
Acl的访问控制列表

语法

语法:acl 列表名称 列表类型 [-i] 列表值
列表名称:用于区分Squid的各个访问控制列表,任何两个访问控制列表不能用相同的列表名。虽然列表名称可以随便定义,但为了避免以后不知道这条列表是干什么用的,应尽量使用有意义的名称,如badurl、clientip和work time等。
列表类型:是可被Squid识别的类别。Squid支持的控制类别很多,可以通过IP地址、主机名、MAC地址和用户/密码认证等识别用户,也可以通过域名、域后缀、文件类型、IP地址、端口和URL匹配等控制用户的访问,还可以使用时间区间对用户进行管理
-i选项:表示忽略列表值的大小写,否则Squid是区分大小写的。
列表值:针对不同的类型,列表值的内容是不同的。例如,对于类型为src或dst,列表值的内容是某台主机的IP地址或子网地址;对于类型为time,列表值的内容是时间;对于类型为srcdomain和dstdomain,列表值的内容是DNS域名。约翰尼的记忆
量子扰动超导探测器。战争期间用它搜索潜艇,寻找敌人的赛伯武器系统.”
“哦?海军的玩意儿?打仗的时候用过?这么说,乌贼能读出你大脑芯片上储存的东西?”她停住脚步。我觉得她藏在那两片镜面后面的一双眼睛正死死盯着我。
“要说探测磁场,哪怕最低级的乌贼都比过去的磁力探测器强十亿倍,就跟在体育场的一片欢呼声中听清谁说的一句悄悄话似的。

常用调试命令

1、初始化你在 squid.conf 里配置的 cache 目录
#squid/sbin/squid -z //第一次启动squid服务时必须输入此命令
如果有错误提示,请检查你的 cache目录的权限。
2、对你的squid.conf 排错,即验证 squid.conf 的 语法和配置。
#squid/sbin/squid -k parse
如果squid.conf 有语法或配置错误,这里会返回提示你,如果没有返回,恭喜,可以尝试启动squid。
3、在前台启动squid,并输出启动过程。
#squid/sbin/squid -N -d1
如果有到 ready to server reques,恭喜,启动成功。
然后 ctrl + c,停止squid,并以后台运行的方式启动它。
4、启动squid在后台运行。
#squid/sbin/squid -s
这时候可以 ps -A 来查看系统进程,可以看到俩个 squid 进程。
5、停止 squid
#squid/sbin/squid -k shutdown
这个不用解释吧。
6、重引导修改过的 squid.conf
#squid/sbin/squid -k reconfigure
这个估计用的时候比较多,当你发现你的配置有不尽你意的时候,可以随时修改squid.conf,然后别忘记对你的 squid.conf排错,然后再执行此指令,即可让运行中squid重新按照你的squid.conf 来运行。
7、把squid添加到系统启动项
编辑 /etc/rc.d/rc.local
添加如下行: /usr/local/squid/sbin/squid -s
当然,并不是每个人都喜欢这种启动方式,你可以用你最习惯的方式;或者把它安装为服务。
再来点其他的。
1、修改cache 缓存目录的权限。
#chown -R squid:squid /home/cache
我的cache缓存目录是 /home/cache,squid执行用户和用户组是 squid,squid。
2、修改squid 日志目录的权限
#chown -R squid:squid /usr/local/squid/var/logs
这一步并不是适合每一个使用squid的用户.意为让squid有权限在该目录进行写操作 。
例如生成 access.log cache.log store.log
3、查看你的日志文档。
#more /usr/local/squid/var/logs/access.log | grep TCP_MEM_HIT
该指令可以看到在squid运行过程中,有那些文件被squid缓存到内存中,并返回给访问用户。
#more /usr/local/squid/var/logs/access.log | grep TCP_HIT
该指令可以看到在squid运行过程中,有那些文件被squid缓存到cache目录中,并返回给访问用户。
#more /usr/local/squid/var/logs/access.log | grep TCP_MISS
该指令可以看到在squid运行过程中,有那些文件没有被squid缓存,而是现重原始服务器获取并返回给访问用户。
关于 TCP_XXXX 等参数及代表的信息,请参看彭勇华《squid中文权威指南》13.2.1 章节。
当然,本例中的蓝色文字是可以修改为其他的参数,例如你的域名,同样可以看到access.log里关于该域名的行。
4、squid -k rotate 轮换squid的日志文件/var/log/squid,Squid代理服务器日志文件
的增长速度是惊人的,很容易点球满磁盘空间导致系统不能正常工作,甚至是死机.为了解决日志文件增长太快的问题,squid采用了"轮换"的方法.在squid.conf中可以通过logfile_rotate来设置文件轮换的个数,如:
logfile_rotate 10 ,轮换的工作一般用crontab定时器完在周期性的日志轮换,例如每周六凌晨2:00进行日志轮换,则执行如下命令: crontab -e
0 2 * * 6 squid -k rotate
小贴士:Squid默认的错误提示信息为英文,对于英文不好的用户来说,实在不方便.在/etc/squid/squid.conf里添加如下:
error_directory /usr/share/squid/errors/Simplify_Chinese 即可显示中文的错误提示。
分享到:
评论

相关推荐

    Linux搭建Squid透明代理及squid+icap环境

    Squid是一款广泛应用的开源代理缓存服务器,它可以帮助提高网络访问速度,减轻服务器负载。透明代理则是指用户在使用网络时,无感知地通过代理服务器进行访问。而Squid与ICAP(Internet Content Adaptation Protocol...

    linux squid 管理界面

    Linux Squid管理界面是针对Squid网络代理服务器的一个重要工具,它提供了用户友好的图形化界面,使得管理员能够更加方便地管理和配置Squid。Squid是一款广泛使用的开源缓存代理软件,用于提高网络访问速度并降低...

    squid缓存服务器的研究

    ### Squid 缓存服务器研究 #### 一、Squid 概述 Squid 是一款广泛应用于互联网数据缓存的开源软件。其主要功能是接收来自客户端的请求,并根据请求内容,从远程服务器获取数据后缓存至本地。当下次再次请求相同的...

    squid文件上传大小配置

    ### Squid 文件上传大小配置详解 #### 一、引言 在互联网应用中,代理服务器是一种常见的技术手段,用于提供安全、高效的网络访问服务。Squid 作为一款开源的高性能代理缓存软件,在众多场景中得到了广泛的应用。...

    squid全套使用手册

    ### Squid全套使用手册知识点概览 #### 一、Squid简介与概述 ##### 1.1 Web 缓存概念 - **定义**: Web 缓存是一种存储 Web 内容副本的技术,以便后续请求可以直接从缓存中提供,而无需重新从源头服务器获取数据。...

    squid-3.5.28.tar.gz

    《Squid代理服务器详解与应用》 Squid是一个广泛应用的开源代理服务器,其最新版本为3.5.28。在互联网访问控制、内容缓存和性能优化等方面,Squid扮演着至关重要的角色。本文将深入探讨Squid的基本概念、功能特性...

    squid代理中出现的错误

    ### Squid 代理服务器启动时常见错误解析及解决方法 #### 概述 Squid 是一款广泛使用的开源代理缓存服务器,它能够为局域网内的用户提供更快的Web访问速度,并通过缓存机制减轻对外部网络的带宽压力。在安装与配置...

    squid-2.7.STABLE8-for windows

    Squid 是一个功能强大的开源代理服务器,常用于网络缓存和访问控制,广泛应用于企业、教育机构和大型网站。在Windows环境下安装Squid代理服务器,可以提高网络访问速度,节省带宽,并实现一定的网络访问策略控制。...

    linux下squid的安装,配置,卸载及SNMP的安装配置

    在Linux环境中,Squid是一个常用的代理服务器和缓存服务器,它可以提高网络访问速度并实现内容过滤。在本文中,我们将详细介绍如何在Linux系统中安装、配置、卸载Squid,以及安装和配置SNMP(简单网络管理协议)。 ...

    squid和nginx配置正向代理访问API接口.rar

    在这个场景中,"squid"和"nginx"都是流行的开源软件,它们可以被配置为正向代理来转发请求到API接口。下面我们将深入探讨这两个工具以及如何配置它们。 首先,让我们了解一下 Squid。Squid 是一个高性能的代理缓存...

    squid日志格式-http错误代码-注解

    5. Squid request status (TCP_MISS etc):表示Squid服务器对请求的处理状态,包括TCP_MISS、TCP_HIT、TCP_REFRESH_HIT等。 6. HTTP status code:表示HTTP的状态代码,例如200 OK、404 Not Found等。 7. Reply ...

    squid-3.1.23-24.el6.x86_64 linux安装及依赖包

    5. **访问控制**:Squid的访问控制通过`/etc/squid/squid.conf`中的ACL(Access Control List)实现,可以根据IP地址、子网或时间范围限制用户的访问权限。 6. **缓存策略**:Squid支持多种缓存策略,如基于内容...

    Squid Windows版架设二级代理服务器

    ### Squid Windows版架设二级代理服务器 #### 概述 在本文中,我们将详细介绍如何在Windows环境下配置Squid作为二级代理服务器的过程。通过设置Squid为二级代理,可以实现更高效的网络访问和资源管理。下面将从...

    squid、varnish、ngx_cache的性能测试对比报告

    本报告对比了Squid、Varnish和Ngx_cache三款缓存软件的性能。首先,从测试环境来看,本次测试所使用的Squid、Ngx_cache(也就是Varnish)、Nginx_cache均运行在具有单硬盘资源的服务器上,并为缓存分配了180G的存储...

    Squid cache(简称为Squid)代理缓存服务器

    Squid Cache,通常简称为Squid,是一款广泛应用的开源代理服务器和Web缓存系统。它基于GNU通用公共许可证(GPL),允许用户免费获取、使用、修改和分发源代码。这款强大的软件旨在提高网络性能,通过在本地存储经常...

    Squid中文权威指南

    本人在工作中维护着数台Squid服务器,多次参阅Duane Wessels(他也是Squid的创始人)的这本书,原书名是"Squid: The Definitive Guide",由O'Reilly出版。我在业余时间把它翻译成中文,希望对中文Squid用户有所帮助...

    Linux下Squid安装步骤

    10.Squid 排错如果遇到问题,查看Squid的日志文件(默认为`/var/log/squid/access.log`和`/var/log/squid/cache.log`)以获取错误信息。使用`grep`或`less`命令筛选相关错误。 总结,安装和配置Squid需要对Linux...

    Squid中文权威指南 最好的Squid指南

    《Squid中文权威指南》是一本专注于Squid缓存代理服务器的详细教程,旨在帮助读者深入理解和高效使用这款开源软件。Squid作为一款广泛应用于Linux环境的网络代理服务器,其主要功能是提高网络访问速度,节省带宽,...

    squid-3.5.25.tar.gz

    Squid是一个广泛使用的开源代理服务器,主要用于网络缓存,以提高网络访问速度并减轻服务器负载。Squid 3.5.25是该软件的一个稳定版本,它包含了多种功能改进和错误修复,适用于企业级环境。在这个版本中,我们主要...

    squid编译安装及配置详解.pdf

    4. 编译安装 Squid:使用 configure 命令来配置 Squid,例如 `# ./configure -prefix=/usr/local/squid`,然后使用 make 命令编译 Squid,例如 `# make`,最后使用 make install 命令安装 Squid,例如 `# make ...

Global site tag (gtag.js) - Google Analytics