文章目录
squid缓存代理概述
squid概述
Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher、HTTPS和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。
由于不同地理位置的客户机请求服务速度不同,使用squid缓存代理可提升响应速度,squid将服务端内容放在自己开辟的缓存空间内,客户在请求服务时,可由相应地域的squid缓存服务器提供相应内容的服务,以弥补地域上的差异。
squid工作机制
代理的工作机制
- 缓存网页对象,减少重复请求
工作机制示意图如下:
squid–ACL访问控制
ACL访问控制
ACL访问控制方式
根据源地址、目标URL、文件类型等定义列表
acl列表名称 列表类型 列表内容....
针对已定义的acl列表进行限制
http_access allow或deny列表名称...
常用的ACL列表类型
- src→源地址
- dst→目标地址
- port →目标地址
- dstdomain→目标域
- time→访问时间
- maxconn →最大并发连接
- url_regex →目标URL地址
- Urlpath_regex →整个目标URL路径
ACL规则优先级
一个用户访问代理服务器时,Squid会顺序匹配Squid中定义的所有规则列表,一旦匹配成功,立即停止匹配
所有规则都不匹配时,Squid会使用与最后一条相反的规则
squid代理服务器配置案例
案例环境
本案例使用一台squid代理服务器一台web服务器和一台客户端;
主机 | IP | 系统 | 软件 |
---|---|---|---|
squid端 | ens33:20.0.0.61/24 ens36:192.168.8.10/24 | centos 7.6 | squid-3.4.6.tar.gz |
WEB源站 | ens33:20.0.0.31/24 | centos 7.6 | httpd |
客户端 | 192.168.8.30/24(指明网关为squid端的192.168.8.10) | windows 10 | 浏览器 |
拓扑如下:
传统代理
配置步骤
所以设备均可先使用网卡的NAT模式,这样可以下载需要的软件或是环境包
可以对主机进行改名,好识别
---------web源站------------
[root@web ~]# yum -y install httpd
[root@web ~]# systemctl start httpd
[root@web ~]# netstat -antp |grep httpd
-------squid服务端------------
[root@squid ~]# yum -y install gcc gcc-c++
[root@squid ~]#tar zxvf squid-3.4.6.tar.gz
[root@squid ~]#cd squid-3.4.6/
[root@squid squid-3.4.6]#./configure --prefix=/usr/local/squid \
--sysconfd