Squid简介
Squid是一个支持HTTP,HTTPS,FTP等服务的Web缓存代理软件,它可以通过缓存页面来提高服务器的相应速度并降低带宽占用。并且,Squid还具有强大的访问控制功能。Squid可以运行在各种操作系统平台上。
Squid会将访问页面的结果缓存在硬盘和内存上。所以Squid对硬盘和内存的空间大小具有较高的要求。内存和硬盘越大,缓存的命中率就越高。但是真实服务器数据是实时更新的,因此,我们就需要不定期的清空缓存数据以保证用户访问结果的准确性。
Squid代理服务器原理
Squid原理:客户端访问Squid代理服务器,由代理服务器代表客户访问后端真实服务器,真实服务器将响应的数据返回给Squid代理服务器。最后,Squid代理服务器将响应结果返回给客户端,同时将结果缓存在硬盘上及内存中,当客户端再次访问相同的网页时,代理服务器直接将响应结果返回给客户端。
安装squid服务
RHEL7 系统的安装光盘中自带了Squid的RPM格式的软件包。
Squid服务端:
- 软件包:squid-3.3.8-26.el7.x86_64.rpm
- 系统服务:squid
- 主程序:/usr/bin/squid
- 主配置文件:/etc/squid/squid.conf
- 默认监听地址:TCP 3128
- 默认访问日志:/var/log/squid/access.log
- 默认缓存日志:/var/log/squid/cache.log
常见代理服务器类型
代理服务器有多种类型,一般意义上常分为标准正向代理服务器,透明代理服务器,反向代理服务器。
正向代理服务器主要应用于内部网络希望访问外部网络时缓存页面数据。由于公网IP地址稀缺,企业内部成百上千台计算机不可能同时大欧连接到Internet上,目前的解决方案就是通过一个统一的网络接口连接Internet。Squid就可以提供这样的接口。所有的客户端通过设置代理服务器连接值Squid,通过代理上网。此模型下,Squid主要负责提供缓存加速服务和访问控制的功能。正向代理是对用户的一种操作。
透明代理与传统的正向代理相似,区别在于传统的正向代理需要每个客户端都进行代理服务器的设置。而透明代理通过网关进行部署。即,所有的设置都是由管理员在网关服务器以及代理服务器进行的。因此,透明代理对于用户是透明的,不需要用户进行任何设置。
反向代理结合智能DNS可以实现基本的CDN框架。通过DNS的分离解析功能,可以为不同地区的DNS请求解析不同的结果返回给客户端。用户访问时,感觉不到是在访问代理服务器。由于使用到了缓存技术,当大的并发量到达时,Squid也可以更快的给用户返回响应结果。反向代理结构如下图所示。
配置文件解析
安装好Squid包后,默认的配置文件为/etc/squid/squid.conf。Squid支持功能非常丰富,配置语句也较多。下表给出了Squid主要的配置语句以及相关说明。
反向代理案例
案例需求
通过配置代理服务器,实现以下目标:
- 代理服务器可以将远程的Web服务器页面缓存在本地
- 代理服务器端口设置为80端口
- 用户通过访问代理服务器即可获得远程Web服务器上的页面内容
- 远程Web服务器对客户端用户是透明的
- 利用缓存机制提高网站的响应速度
方案
使用3台RHEL7虚拟机,其中一台作为Squid代理服务器,该服务器用来连接两个网段,因此需要配置两块网卡,地址分别为192.168.4.5和192.168.2.5。一台作为客户端测试主机,IP地址为192.168.4.100。一台Web服务器,地址为192.168.2.100,该Web服务器为其他代理提供Web数据源,拓扑图如下图所示。
实现步骤
步骤1:在主机192.168.2.100 上构建Web服务器
- 在Web服务器上安装httpd软件包,并部署主页。
步骤2:部署Squid代理服务器
- 在代理服务器上安装squid软件包
- 修改squid服务的主配置文件:/etc/squid/squid.conf
- 启动系统服务,并查看80端口
步骤3: 客户端client上测试squid代理服务器结果
- 通过更改/etc/hosts文件来做域名和IP解析服务
- 使用curl浏览器来测试访问结果。使用-I选项测试可以看到头部信息。
总结答疑
- 修改配置文件时,注意不要改错位置。否则,squid服务无法启动
- 启动squid服务时,若配置文件没有错误。但服务仍然无法启动,则查看80端口是否被其他服务占用。
比如80端口被httpd服务占用,则停掉httpd服务。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。