文章目录
squid的概念
squid是一种用来缓存Internet数据的软件。接受来自人们需要下载的目标(object)的请求并适当的处理这些请求。也就是说,如果一个人想下载一web界面,他请求squid为他取得这个页面。squid随之连接到远程服务器并向这个页面发出请求。然后,squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时, squid可以简单的从磁盘中读到它,那样数据会立即传输到客户机上。
一:squid概述
Squid(Squid cache,简称Squid)是Linux系统中最常用的一款开源代理服务软件,可以很好地实现HTTP和FTP,以及DNS查询、SSL等应用的缓存代理,功能十分强大,本篇博客详细介绍了传统代理、透明代理,squid日志分析的配置。squid的官方网站为http://www.squid-cache.org
- 代理用户向web服务器请求数据并进行缓存,可以过滤流量帮助网络安全。
- 可以作为代理服务器链中的一环,向上级代理转发数据或直接连接互联网。
- 可以用在局域网中,使局域网用户通过代理上网。
- 可以将数据缓存在内存中,同时也缓存DNS查询的结果,还支持非模块化的DNS查询,对失败的请求进行消极缓存。
- Squid支持SSL,支持ACL访问控制。
1.1:squid代理的作用
- 代理上网 (传统代理,透明代理)
- 网站静态页面缓存加速(反向代理)
1.2:缓存代理概述
1.21:Web代理的工作机制
- 缓存网页对象,减少重复请求
二:squid的代理类型
- 普通代理:需要客户机在浏览器中指定代理服务器的地址、端口;
- 透明代理:适用于企业的网关主机(共享接入Internet)中,客户机不需要指定代理服务器地址、端口等信息,代理服务器需要设置防火墙策略将客户机的Web访问数据转交给代理服务程序处理;
- 反向代理:是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
使用代理的好处
- 提高Web访问速度
- 隐藏客户机的真实IP地址
- 部署简单,可以实现访问控制。
三:squid传统代理的部署
传统代理模式
客户端必须在自己的浏览器里指定服务器的ip地址和监听的端口号,才能通过squid代理服务器上网。**
3.1: 项目介绍
如上图所示,在服务器B上构建Squid代理服务器,允许客户机指定squid代理服务器作为Web代理,访问网站服务器,但禁止通过代理下载超过10MB的文件,超过4MB的文件不进行缓存。
环境介绍
主机 | 系统 | IP地址 | 主要软件 |
---|---|---|---|
squid代理服务器 | CentoS7.4 | 192.168.158.10 | squid-3.5.27.tar.gz |
WEB服务器 | CentoS7.4 | 192.168.158.20 | Apache |
客户机 | win10 | 192.168.158.60 | 自带的浏览器 |
- 先修改主机名,方便实验效果
[root@localhost ~]# hostnamectl set-hostname squid
[root@localhost ~]# su
[root@squid ~]#
[root@localhost ~]# hostnamectl set-hostname web
[root@localhost ~]# su
3.2:部署过程
- 在squid服务器部署squid服务
tar zxvf squid-3.4.6.tar.gz -C /opt/
cd /opt/squid-3.4.6
./configure --prefix=/usr/local/squid \
--sysconfdir=/etc \
--enable-arp-acl \
--enable-linux-netfilter \
--enable-linux-tproxy \
--enable-async-io=100 \
--enable-err-language="Simplify_Chinese" \
--enable-underscore \
--enable-poll \
--enable-gnuregex
./configure --prefix=