#squid的概念
Squid是一种用来缓冲Internet数据的软件。它是这样实现其功能的,接受来自人们需要下载的目标的请求并适当地处理这些请求。 也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器(比 如:http://squid.nlanr.net/)并向这个页面发出请求。然后,Squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次 有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。当前的Squid可以处理 HTTP,FTP,GOPHER,SSL和WAIS等协议。但它不能处理如POP,NNTP,RealAudio以及其它类型的东西。
一.正向代理
正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。
环境:
此时真机可以正常上网
desktop可以上网
yum源配置好
1.安装squid软件

2.编辑代理缓存服务器配置文件
vim /etc/squid/squid.conf
56 http_access allow all
59 http_port 3128
62 cache_dir ufs /var/spool/squid 100 16 256
3.重启服务,并且关闭火墙
测试:
客户端server:
打开浏览器
点击preference
点击settings进行设置
添加ip,端口为3128
此时虽然server不能上网,却可以通过代理缓存服务器server来访问百度
实验结束,将环境设置为无代理,此时不能访问百度
二.反向代理
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
环境:
desktop,正向代理的基础上
1.切换到保存squid配置文件的目录

2.在正向代理的基础上修改配置文件
当浏览器访问172.25.254.162时,默认访问的是80端口,但是代理端并没有安装http,因此需要使用别人的80端口,vhost表示虚拟主机,vport表示虚拟端口
当访问200时,200会去向162的80端口要数据,proxy-only表示只做代理,具体格式可以去看/usr/share/doc
3.重启代理缓存服务
检测:
vim /etc/hosts
将本地解析的ip修改为172.25.254.200
打开浏览器,
www.westos.com
在客户端浏览器输入www.westos.com,系统会去找162,但是162并没有装http,162只是一个代理
三.反向代理的应用——cdn(内容发布网络)加速
1.编辑代理缓存服务器配置文件
在反向代理的基础上
vim /etc/squid/suqid.conf
59 http_port 80 vhost vport
60 cache_peer 172.25.254.162 parent 80 0 proxy-only name=web1 round-robin weight=2
61 cache_peer 172.25.254.216 parent 80 0 proxy-only name=web2 round-robin
62 cache_peer_domain web1 web2 www.westos.com
表示当访问www.westos.com时,系统会向web1和web2即216和130的80端口要数据,起到了代理作用,round-robin表示轮循访问,weight表示比重,也就是当访问www.westos.com时,系统每三次访问中,有两次是访问162,一次访问216,这主要用于当一个服务器性能较好,另一个服务器性能较差时的平衡
2.重启代理缓存服务
检测:
真机:
vim /etc/hosts
将本地解析的ip修改为172.25.254.200
打开浏览器,
www.westos.com
可以访问到,且重复访问,可以得到两台主机的内容,162的2次,216的一次