Squid缓存概念
squid是一个缓存服务器的守护进程
之前涉及的缓存服务:redis
2-8原则:80%的访问就是从20%的数据提供的;因此把20%的数据给到缓存–>完美解决等待时间;
nginx是没有缓存的服务的;那么专业的事情就交给专业服务来部署squid服务
- 支持的代理协议:FTP / HTTP /SSL,套接字
- 存储分类:磁盘>分区>目录>Object(缓存文件)
- 一般是只有二级目录:存放在Object目录上
- 涉及分区就是涉及文件系统;
- 索引方式:
- Hash Tables:目录–>每个Digest的索引信息
- 大概的目录篇章;
- Digest Tables:索引–>不同分区对应的Object;
- Hash Tables:目录–>每个Digest的索引信息
Varnish也是另外一款缓存的概念;
- squid的竞争者:
- 架构比较新颖–>功能比较多
- 技术的更新是需要时间的—>会不会取代squid?
squid的工作逻辑图:
客户端-->请求数据--->squid代理服务器--->后端服务器
--->squid服务器询问后端服务器数据并且缓存到自己的cache上面
--->squid服务也是有最大的缓存量-->也可以设置缓存的要求
squid的工作模式:
- 传统代理
- 透明代理
- 反向代理
1.1、squid的三种工作模式讲解
传统代理与透明模式–>用在内网
反向代理–>多数用在公网
2.1、传统模式:
- 模式说明:此类工作模式为三种模式中最简单的构成,对客户端配置较不友好,主要功能为加速内网用户的访问速度,减少出口流量
- 工作架构图:
- 标准代理服务器必须在每一个内部主机的浏览器上明确指明代理服务器的in地址和端口号
- 要自己手工配置代理服务器的ip和端口号
2.2、透明模式:
- 模式说明:此类工作模式配置较为复杂,需要借助防火墙对端口进行重定向操作。但是,对于客户端来说配置较为友好无需进行任何配置即可使用代理功能,主要功能为加速内网用户的访问速度,减少出口流量
- 工作模式:
- 通过防火墙自动给你调转;不用自己手工添加;
- 与传统模式相比:不需要手工配置代理服务器
2.3、方向代理
- 模式说明:反向代理服务器位于本地 WEB 服务器和互联网用户之间,处理公网用户发送的请求并代理至内网服务中,有效减轻后端真实服务器压力,增加服务并发能力
- 工作结构图:
1.2、squid的服务相关说明
软件包: squid-3.1STABLE21-6.e16
- 3.0以上是C语言重写
主程序: /us/sin/squid
主配器文件: /etc/squid/squid.conf
默认监听端口: TCP 3128
默认访问日志: /ar/log/squid/access.log
特别说明: Squid 在经过 3.0 版本后使用 C 语言进行重构,效率大大提升,Centos6 标配 Squid3.0以后的版本
squid的配置文件选项说明
http port 3128#Squid #启动端口为 3128
access 1og /war/log squid/access.log squid # 指定 Squid 存储日志目录
cache mem 64 MB # 指定Squid进程能够使用的内存大小
cache dir ufs /var/spool/squid 100 16 256 # 指定 Squid 对象文件存储路径使用大小限制为
100MB ,一级目录个数为 16 个,二级目录个数为 256个
visible hostmame proxy benet.com # 指定 Squid 服务器自身的主机名
dns testnames www google.com www.163.com # 指定Squid服务器测试本机是否正常时的测试域名
maximum object size 4096 KB #指定Squid最大允许缓存对象的大小
reply body max size 10 MB # 指定允许通过 Squid 的单个元素大小