随着网络的快速发展,网络上的用户也越来越多。网络终端用户的不断膨胀,IP资源匮乏,用户访问计费,内部网络安全等一系列的问题也就随之出现了。为了很好的解决这些问题,代理服务器就诞生了。

代理服务器(Proxy Server)是介于浏览器和web服务器之间的一台服务器。它的作用是,当内部网络用户向代理服务器发去请求时,代理服务器就向外部的用户真正想要访问的服务器发送请求,然后将外部服务器的响应发送给内部网络用户。

代理服务器的主要功能:共享网络,访问代理,提高速度,突破限制,防止***,充当防火墙,方便对用户管理,隐藏身份。

124926366.jpg

1、启动代理服务器,初始化代理服务器器缓存。此时代理服务器主进程会一直监听某个绑定的端口。

2、客户端A向代理服务器发出访问Web服务器资源的请求

3、代理服务器主进程监听到客户端A所发出的请求后,会创建一个子进程应对客户端A的请求,主机厂继续执行监听

4、代理服务器子进程与客户端建立连接,读取并解析客户请求。在代理服务器中,预设有访问控制列表,用于检验当前接收到的请求是否满足规则约束,如果满足,则可以在代理服务器缓存中查找需要的信息。

5、子进程开始查询缓存,根据查询结果做出相应处理:

a)在缓存中命中客户端A请求的信息,并且该信息没有过期,服务器则将信息直接传送给客户端,并根据具体的缓存更新算法和代理服务器缓存。

b)缓存命中客户端A的请求,但是该信息过期,则该子进程代理客户端A向目标Web服务器发出请求。

6、目标Web服务器响应代理服务器子进程发来的请求,同时代理服务器子进程根据具体的缓存更新算法更新代理服务器缓存。

7、代理服务器子进程将目标Web服务器响应的信息转送给客户端A

8、代理服务器子进程处理完客户端A的代理服务后,进程自动终止,所有相关资源全部释放。

Squid是著名的代理服务器软件之一(还有微软的ISA、WINGATE、SYGATE、PROXY SERVER),也是Linux环境下最为流行的高性能缓存代理服务器软件。功能强大,设置简单。

二、试验拓扑

125027707.jpg

三、Squid安装

1.基本要求

操作系统:Squid可以运行在所有的Linux系统和UNIx系统,也可以运行在windows系统上。

硬件:Squid对硬件的要求不算高。但内存和磁盘空间是较为重要的资源,内存短缺会严重影响性能,而磁盘空间受限则意味着缓存目标受限的同时命中率会下降。

在RedHat  Enterprise Linux 5中,使用系统光盘自带的rpm包来安装。

125147953.png

125208880.png

缓存目录在第一次启动Squid服务时,会自动创建。也可以使用命令:

squid  -zX

125552943.png

125602762.png

125618851.png

125623288.png

125628202.png

125636675.png

125659948.png

125705696.png

125718212.png

125743681.png

当再次访问以前访问过的内容时,会从缓存中读取,如果有日志中表示的TCP_HIT,如果没有的话,日志中表示的是TCP_MISS。

四、基本配置

135028291.png

配置说明:

1、监听192.168.16.1的8080端口

2、内存缓冲大小64M

3、硬盘缓冲大小最大为4096M,硬盘缓冲文件一级目录为16个,二级目录为256个

4、运行Squid的用户是squid  (为系统帐号,没有登录的权限)

5、用户所属组是squid

6、域名解析服务器IP地址

7、Squid成功访问日志文件

8、Squid出错页面显示的名称:192.168.16.1

9、管理员邮箱

10、定义一个名为all的访问控制列表,控制源地址为任意地址

11、应用控制列表all,运行所有主机通过。