squid是什么?
Squid是一种用来缓冲Internet数据的软件。它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器(比如:http://squid.nlanr.net/)并向这个页面发出请求。然后,Squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。
Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。
Squid将数据元缓存在内存中,同时也缓存DNS查询的结果,除此之外,它还支持非模块化的DNS查询,对失败的请求进行消极缓存。Squid支持SSL,支持访问控制。由于使用了ICP(轻量Internet缓存协议),Squid能够实现层叠的代理阵列,从而最大限度地节约带宽。
squid可以实现 正向 / 反向 / 透明代理
一、叙述
1、正向代理 (传统代理)
1.SQUID被绑定到代理服务器的3128端口。
2.客户端浏览器被配置使用代理服务器的3128端口。
3.客户端不需要配置DNS。4.代理服务器上需要配置代理服务器。
5.客户端不需要配置缺省路由。
当我们在客户端浏览器中打开一个web请求,比如“http://www.96333.com”,这时将陆续发生以 下事件:
1.客户端使用某一端口(比如1025)连接代理服务器3128端口,请求web页面 “http://www.96333.com”
2.代理服务器向DNS请求“www.96333.com”,得到相应的IP地址2.3.4.5。然后,代理服务器使用某一端口(比如1037)向该IP地址的80端口发起web连接请求,请求web页面。
3.收到响应的web页面后,代理服务器把该数据传送给客户端。
4.客户端浏览器显示该页面。
从www.96333.com的角度看来,连接是在1.2.3.4地1037端口和2.3.4.5的80端口之间建立的。
从client的角度看来,连接是在192.168.1.100的1025端口和1.2.3.4的3128端口之间建立的。
2、反向代理
反向代理是相对于传统代理而言,是代理web服务器接受客户端的请求。在此,我们忽略客户端的设置,假设客户端是可以直接访问互联网。
详细可参考Nginx中的反向代理
3、透明代理
透明代理的意思是客户端根本不需要知道有代理服务器的存在。通过一系列配置(防火墙端口转发、路由转发等),直接访问后端web服务器的真实ip,但是内部确实通过相关规则,先走到透明代理服务器,然后再转发至后端web服务器,但是给用户的感觉却是直接访问后端.
博主提一嘴 :个人理解而言,透明代理的话只能使用自己的网关,就更加偏向于内部资源请求访问,(都是自己人,访问的时候当然没必要做代理~~~~)
纯纯个人理解!!! 各位想法与我有差别的话,请住嘴 O.o
二、服务搭建
squid服务端:192.168.75.145 (安装squid)
web端1:192.168.75.141 (安装http,为配置方便,事先关闭firewalld、selinux)
web端2:192.168.75.142 (安装http,为配置方便,事先关闭firewalld、selinux)
1、正向代理
squid服务端修改配置文件后重启squid服务
web端安装http服务后配置想赢端口及索引文件,确保其能连同网络
配置浏览器的代理服务 (这里用到搜狗,其余任意浏览器皆可)
客户端验证
2、反向代理轮询
继上配置squid服务端
添加141、142轮询策论
也可以指定域名轮询:cache_peer_domain webserver1 webserver2 www.dream.com
###round-robin 平衡轮询;
####weight=3 平衡轮询三次
###originserver:指定name=webserver1,代表索引信息,以round-robin(轮询)方式工作
web端不变(只搭建http服务)
验证
3、透明代理
squid透明代理_拾亿少女梦的博客-CSDN博客_squid 透明代理
博主手断了,不能继续写完了,但还是坚持为友友们找到了链接
感动~ TnT