您好,欢迎访问三七文档
Squid教程第三空间系统配置部教程之Squid作者:李振韬提纲Squid是什么?Squid能做什么?Squid如何工作的?Squid的工作原理是什么?Squid实例讲解SQUID是什么Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。Squid将数据元缓存在内存中,同时也缓存DNS查询的结果,除此之外,它还支持非模块化的DNS查询,对失败的请求进行消极缓存。Squid支持SSL,支持访问控制。由于使用了ICP(轻量Internet缓存协议),Squid能够实现层叠的代理阵列,从而最大限度地节约带宽。Squid由一个主要的服务程序squid,一个DNS查询程序dnsserver,几个重写请求和执行认证的程序,以及几个管理工具组成。当Squid启动以后,它可以派生出预先指定数目的dnsserver进程,而每一个dnsserver进程都可以执行单独的DNS查询,这样一来就大大减少了服务器等待DNS查询的时间。什么是GOPHER、WAIS、Archie关于GOPHER:Gopher是Internet上一个非常有名的信息查找系统,它将Internet上的文件组织成某种索引,很方便地将用户从Internet的一处带到另一处。允许用户使用层叠结构的菜单与文件,以发现和检索信息,它拥有世界上最大、最神奇的编目。Gopher客户程序和Gopher服务器相连接,并能使用菜单结构显示其它的菜单、文档或文件,并索引。同时可通过Telnet远程访问其它应用程序。Gopher协议使得Internet上的所有Gopher客户程序,能够与Internet上的所有已注册的Gopher服务器进行对话。关于WAIS:WAIS这个名称是英文“WideAreaInformationService”(广域信息服务)的缩写。WAIS是一种能够在几百个数据库中搜索任何一个信息的Internet服务。我们把每个这样的数据库称之为源。用户指定一个或几个单词为关键字,WAIS按照用户所给出的关键字对指定的源中的每个项目或整个正文内容进行检索,并且找出符合用户指定标准的项目。关于Archie:我们上网时会遇到只知道文件名,但不知道文件在Internet的什么地方,导航系统就无法下载此文件,那么有什么办法能够查找到文件的位置呢?在Internet中有许多被称为Archie服务器的计算机,他们就象图书管理员,提供了一项相当重要的服务:它能够在只知道文件名的前提下,为用户找到这个文件所在的FTP服务器的地址,这种功能就叫做Archie。SQUID能做什么代理服务器透明代理反向代理什么是SQUID代理服务器做为代理服务器,这是SQUID的最基本功能;通过在squid.conf文件里添加一系列访问及控制规则,用户在客户端设置服务器地址和端口,即可通过SQUID访问INTERNET,在下面的规则里,squid实现局域网用户代理和高速缓存功能:规则举例http_port3128#监听内外网端口cache_dirufs/var/squidcache_mem32MBcache_swap_low90cache_swap_high95cache_dir/var/squid10001632cache_access_log/var/log/squid/access.logcache_log/var/log/squid/cache.logaclallsrc0.0.0.0/0.0.0.0aclheadsrc192.168.0.2/255.255.255.255192.168.0.3/255.255.255.255acldenysitedstdomaintwnetacldenyipdst202.96.134.133/255.255.255.255acldnsportport53http_accessallowheadhttp_accessdenydenysitehttp_accessdenydenyiphttp_accessdenydnsport客户端在IE设置里填写代理服务器IP地址及端口,即刻实现高速上网什么是透明代理所谓透明代理,是相对于代理服务器而言,客户端不需要做任何和代理服务器相关的设置和操作,对用户而言,更本感觉不到代理服务器的存在,所以称之为透明代理。透明代理流程说明用户A发送一个访问请求到防火墙,由防火墙将该用户的访问请求转发到SQUID,SQUID在先检查自身缓存中有无该用户请求的访问内容,如果没有,则请求远端目的服务器,获取该用户的访问内容,在返回给用户的同时,在自身缓存保留一份记录以备下次调用;当用户B发送一个和用户A相同的访问请求时,由防火墙将转发该用户请求到SQUID,SQUID检查自身缓存发现有同样内容后,直接将该内容返回给用户。注:在实际使用中,通常将SQUID和防火墙放在同一台机器上,为了更清楚的象浏览者描述其工作流程,在以下的流程图中将防火墙和SQUID分开显示。透明代理工作流程图WEB服务器防火墙SQUID用户A用户B什么是反向代理普通代理方式是代理内部网络用户访问internet上服务器的连接请求,客户端必须指定代理服务器,并将本来要直接发送到internet上服务器的连接请求发送给代理服务器处理。反向代理(ReverseProxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。反向代理流程说明SQUID做为反向代理服务器,通常工作在一个服务器集群的前端,在用户端看来,SQUID服务器就是他所要访问的服务器,而实际意义上SQUID只是接受用户的请求,同时将用户请求转发给内网真正的WEB服务器,如果SQUID本身有用户要访问的内容,则SQUID直接将数据返回给用户。反向代理工作流程WEB服务器集群WEB服务器WEB服务器WEB服务器SQUID服务器用户用户SQUID如何工作以下将讲解三种SQUID的工作方式,首先需要定义三种不通类型的网络结构,我们将三种网络结构分别命名为:传统代理,透明代理,反向代理。客户端IP为192.168.1.100,SQUID服务器的内外网IP分别为192.168.1.1/1.2.3.4,内外网网络接口分别为eth1和eth0,远端WEB服务器IP为2.3.4.5传统代理:透明代理:反向代理:ClientSQUID服务器WEB服务器ClientSQUID服务器WEB服务器防火墙WEB服务器SQUID服务器ClientSQUID如何工作传统代理1.SQUID被绑定到代理服务器的3128端口。2.客户端浏览器被配置使用代理服务器的3128端口。3.客户端不需要配置DNS。4.代理服务器上需要配置代理服务器。5.客户端不需要配置缺省路由。当我们在客户端浏览器中打开一个web请求,比如“”,这时将陆续发生以下事件:1.客户端使用某一端口(比如1025)连接代理服务器3128端口,请求web页面“”2.代理服务器向DNS请求“”,得到相应的IP地址2.3.4.5。然后,代理服务器使用某一端口(比如1037)向该IP地址的80端口发起web连接请求,请求web页面。3.收到响应的web页面后,代理服务器把该数据传送给客户端。4.客户端浏览器显示该页面。从的角度看来,连接是在1.2.3.4地1037端口和2.3.4.5的80端口之间建立的。从client的角度看来,连接是在192.168.1.100的1025端口和1.2.3.4的3128端口之间建立的。透明代理透明代理的意思是客户端根本不需要知道有代理服务器的存在。在以上基础上我们做以下工作:1.配置透明代理服务器软件运行在代理服务器的3128端口。2.配置代理服务器将所有对80端口的连接重定向到3128端口。3.配置客户端浏览器直接连解到Internet。4.在客户端配置好DNS.5.配置客户端的缺省网关为192.168.1.1.当我们在客户端浏览器中打开一个web请求,比如“”,这时将陆续发生以下事件:1.客户端向DNS请求“”,得到相应的IP地址2.3.4.5。然后,客户端使用某一端口(比如1066)向该IP地址的80端口发起web连接请求,请求web页面。2.当该请求包通过透明代理服务器时,被防火墙将该数据包重定向到代理服务器的绑定端口3128。于是,透明代理服务器用某一端口(比如1088)向2.3.4.5的80端口发起web连接请求,请求web页面。3.收到响应的web页面后,代理服务器把该数据传送给客户端。4.客户端浏览器显示该页面。从的角度看来,连接是在1.2.3.4地1088端口和2.3.4.5的80端口之间建立的。从client的角度看来,连接是在192.168.1.100的1066端口和2.3.4.5的80端口之间建立的。以上就是传统代理服务器和透明代理服务器的区别所在。反向代理反向代理是相对于传统代理而言,是代理web服务器接受客户端的请求在此,我们忽略客户端的设置,假设客户端是可以直接访问互联网web服务器与客户端的结构如下:假设已经将,并且在web服务器集群里做了dns轮询。webserver1-|webserver2-|-squid服务器/INTERNET/-Clientwebserver3-|1.客户端通过IE向DNS服务器发送访问的请求,由客户所在地的DNS服务器解析并返回给用户。2.客户收到DNS返回的服务器IP地址,重新向地址发送访问请求。3.squid服务器接收到用户的请求后,查询自身缓存中是否有用户请求内容,有则直接发送给客户端,如果没有则通过内部DNS轮询查询空闲服务器,并将客户请求发送到该服务器,在获取到用户数据并返回给用户的同时保留一份在自己本身的缓存当中。在用户看来,自己访问的是这个服务器,实际上真正的WEB服务器为SQUID缓存后面的服务器或者服务器集群,通过外部DNS做CNAME转向,将用户请求转发到内部真正的web服务器上去SQUID工作原理是什么一、SQUID缓存的存放方式:每一台Squid代理服务器上都有若干颗硬盘,每颗硬盘又分割成多个分区,每一个分区又可建立很多目录,目录下才放文件(Squid把它叫object)。二、SQUID的查询方式:SQUID通过查询表的方式来定位某个资源的位置,所查询的表叫Hashtable和Digesttable;Digesttable在这里可以称之为摘要或者索引,它记录了磁盘上每个分区,每个目录里存的缓存摘要,Hashtable在这里可以称之为目录或者提纲,它记录所有的Digesttable表信息,SQUID接受到请求后先查询Hashtable,在根据Hashtable所指向的Digesttable查询需要的信息。三、SQUID服务器之间的关系:SQUID服务器存在两种工作关系,一种为Child、Parent,当childsquidserver没有用户需要的数据时,就象parentserver发出请求,并持续等待,直到parentserver回应自己为止;另外一种为Sibling,当本地SQUIDserver没有用户请求数据时,会向siblingserver发出请求,如果siblingserver没有资料则会向上级sibling或者INTERNET发送
本文标题:Squid教程
链接地址:https://www.777doc.com/doc-2850486 .html