Linux系统中Squid代理服务器配置全过程解析
什么是squid?
Squid是一个缓存internet数据的一个软件,它接收用户的下载申请,并自动处理所下载的数据。也就是说,当一个用户象要下载一个主页时,它向Squid发出一个申请,要Squid替它下载,然后Squid连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid把保存的备份立即传给用户,使用户觉得速度相当快。目前,Squid 可以代理HTTP, FTP, GOPHER, SSL 和 WAIS 协议.
使用squid的好处:快速响应,减少网络阻塞,增强访问控制,提高安全性.可以针对特定的网站,用户,网络,数据类型实施访问控制.
squid有3种代理方式:普通代理模式,透明代理模式,反向代理模式
1.普通代理模式
一个标准的代理缓冲服务被用于缓存静态的网页(例如:html文件和图片文件等)到本地网络上的一台主机上(即代理服务器)。当被缓存的页面被第二次访问的时候,浏览器将直接从本地代理服务器那里获取请求数据而不再向原web站点请求数据。这样就节省了宝贵的网络带宽,而且提高了访问速度。但是,要想实现这种方式,必须在每一个内部主机的浏览器上明确指明代理服务器的IP地址和端口号。客户端上网时,每次都把请求送给代理服务器处理,代理服务器根据请求确定是否连接到远程web服务器获取数据。如果在本地缓冲区有目标文件,则直接将文件传给用户即可。如果没有的话则先取回文件,先在本地保存一份缓冲,然后将文件发给客户端浏览器。
2.透明代理模式
透明代理缓冲服务和标准代理服务器的功能完全相同。但是,代理操作对客户端的浏览器是透明的(即不需指明代理服务器的IP和端口)。透明代理服务器阻断网络通信,并且过滤出访问外部的HTTP(80端口)流量。如果客户端的请求在本地有缓冲则将缓冲的数据直接发给用户,如果在本地没有缓冲则向远程web服务器发出请求,其余操作和标准的代理服务器完全相同。对于Linux操作系统来说,透明代理使用Iptables或者Ipchains实现。因为不需要对浏览器作任何设置,所以,透明代理对于ISP(Internet服务器提供商)特别有用。
3.反向代理模式
反向代理是和前两种代理完全不同的一种代理服务。使用它可以降低原始WEB服务器的负载,又称HTTP加速器。反向代理服务器承担了对原始WEB服务器的静态页面的请求,它是一种通过在繁忙的WEB服务器和Internet之间增加一个高速的WEB缓冲服务器(即:WEB反向代理服务器)来降低实际的WEB服务器的负载.Web服务器加速(反向代理)是针对Web服务器提供加速功能的。它作为代理Cache,但并不针对浏览器用户,而针对一台或多台特定Web服务器。只要将Reverse Proxy Cache设备放置在一台或多台Web服务器前端即可。当互联网用户访问某个WEB服务器时,通过DNS服务器解析后的IP地址是Reverse Proxy Server的IP地址,而非原始Web服务器的IP地址,这时Reverse Proxy Server设备充当Web服务器,浏览器可以与它连接,无需再直接与Web服务器相连。因此,大量Web服务工作量被卸载到反向代理服务上。不但能够防止外部网主机直接和web服务器直接通信带来的安全隐患,而且能够很大程度上减轻web服务器的负担,提高访问速度。
以下是squid反向代理实验
有2台服务器,1台HTTP Server 10.1.1.200,端口80,有2个虚拟机主机www.testone.com www.testtwo.com提供服务
另一台Squid Server为反向代理服务器,10.1.6.200
客户机ip:10.1.6.173
测试: 客户机访问通过Squid Server 访问HTTP Server. 这里需要在客户机上修改/etc/hosts,添加二行10.1.6.200 www.testone.com10.1.6.200 www.testtwo.com(为了让客户机能够解析这2个域名对应ip为10.1.6.200 squid反向代理服务器的ip,监听端口默认是3128)
Squid Server 修改/etc/hosts,添加二行10.1.1.200 www.testone.com10.1.1.200 www.testtwo.com
安装squid
代码如下:
配置squid
代码如下:
代码如下:
代码如下:
代码如下:
代码如下:
代码如下:
代码如下:
代码如下:
代码如下:
代码如下:
设置缓存目录权限为proxy,否则启动会提示没有权限
代码如下:
在开启squid服务之前,先检查配置文件是否正确:(假如看不输出,配置文件有效)
root@10.1.6.200:opt# squid -k parse
初始化cache目录,即建立缓存目录的存储格式(在初次运行squid之前,或者增加了新的cache_dir,必须初始化cache目录),cache目录初始化可能花费一些时间,依赖cache目录的大小和数量,要观察详细过程可以加-X选项.
代码如下:
启动squid服务
代码如下:
这里不详细讲解HTTP Server 10.1.1.200配置虚拟主机过程,已分别配置好www.testone.com,www.testtwo.com虚拟主机
查看HTTP Server日志,会发现是Squid Server ip 请求数据.
代码如下:
代码如下:
以下是整个访问原理过程:
1.当客户端在浏览器输入:www.testone.com 通过本地/etc/hosts解析,域名www.testone.com对应的ip是10.1.6.200(Squid反向代理服务器),于是客户端向Squid反向代理服务器默认3128端口发送请求,注意:在客户端输入www.testone.com和http://10.1.6.200是不一样的,如果是通过ip请求,则不能实现让Squid服务器对内部网络多个服务器代理,需要使用域名方式.在 配置 Squid 时,有两个选项,cache_peer 和 cache_peer_domain,这两个配置项让 Squid 有能力知道www.testone.com这个请求最终是想访问HTTP服务器10.1.1.200的80端口,从而实现了 Squid 对内部多个服务器作代理的功能需求。
2.Squid服务器收到客户端发来的请求,一看是www.testone.com,从配置它知道请求HTTP服务器10.1.1.200的80端口.
3.HTTP服务器提供服务监听80端口,收到Squid发送来的请求,于是根据请求发送相应数据给Squid服务器.
4.Squid收到HTTP服务器从80端口发送过来的数据后,会将该数据在本地缓存,同时将数据从自己的3128发送给客户端10.1.6.173.
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布投稿,分享有金币奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务 请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长,可领回失去的金币,并额外有奖!
6. 如遇到加密压缩包,默认解压密码为"www.zyfx8.cn",如遇到无法解压的请联系管理员!
本站部分文章、资源来自互联网,版权归原作者及网站所有,如果侵犯了您的权利,请及时联系我站删除。免责声明
资源分享吧 » Linux系统中Squid代理服务器配置全过程解析
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 织梦模板使用说明
- 你下载的织梦模板并不包括DedeCMS使用授权,根据DedeCMS授权协议,除个人非盈利站点外,均需购买DedeCMS商业使用授权。购买地址: http://www.desdev.cn/service-dedecms.html