一、什么是squid服务
Squid是一种用来缓冲Internet数据的软件。它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器(比如:http://squid.nlanr.net/)并向这个页面发出请求。然后,Squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。当前的Squid可以处理HTTP,FTP,GOPHER,SSL和WAIS等协议。但它不能处理如POP,NNTP,RealAudio以及其它类型的东西。
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查询的时间。
二、squid的安装与正向代理
1.此实验在真实主机上做,要能ping通cn.bing.com
yum install squid -y //下在安装squid服务
vim /etc/squid/squid.conf //打开配置文件修改文件中的参数
systemctl stop firewalld //关掉火墙
56 http_access allow all
59 http_port 3128 //http服务允许所有人访问 3128端口
62 cache_dir ufs /var/spool/squid 100 16 256 // 代理取数据存放目录,此目录有16个一级目录,每个一级目录下有256个子目录
systemctl restart squid //重启服务
2.测试机:
打开浏览器,访问cn.bing.com
做以下配置
Edit—>Preferrnces---->Advanced----->Network---->Settings----->Manual proxy configuration---->HTTP Proxy:172.25.254.10 Port:3128
注意:此时虚拟机是不可以上网的,但它可把请求发给代理,代理将数据缓存到/var/spool/squid目录,虚拟机通过看代理主机的3128端口获取信息,进入网页
三、squid的反向解析
实验需要2个主机:
主机作为服务端,相当于深圳;server作为中介,相当于西安;
主机(服务端):设置好httpd服务
server的相关设置:
yum install squid.x86_64 -y
vim /etc/squid/squid.conf
56 http_access allow all
59 http_port 80 vhost vport ##80 虚拟域 虚拟端口
60 cache_peer 172.25.254.110 parent 80 0 proxy-only round-robin weight=2 name=web1
缓存 代理主机 父级(服务) 端口 代理 调用 权重 代替此行所有
61 cache_peer 172.25.254.112 parent 80 0 proxy-only round-robin name=web2 ##0 不通知;3130通知其他,要挂了
62 cache_peer_domain www.westos.com web1 web2 ##访问www.westos.com时,轮叫web1、web2
64 cache_dir ufs /var/spool/squid 100 16 256
systemctl restart squid
systemctl stop firewalld
测试机设置:
vim /etc/hosts
172.25.254.110 www.westos.com
打开浏览器:www.westos.com 轮询:权重决定了访问两次110主机,一次112主机