缓存服务器也是代理服务器,对于个人用户来说,缓存和代理服务器是不可见的。
常见缓存服务器有:Squid、ats、nginx、varnish
squid官网:http://www.squid-cache.org/
cahe命中:缓存服务器匹配到客户端http请求。
提升cache命中率的方法:1.apache nginx 可以expres,cache-control 缓存头;2.动静分离,静态化,对静态走CDN(内容分发网络);3.Mysql cache 让缓存靠前;4. 5xx、4xx之类的错误页面,死链。5、动态业务独立不走squid。
cahe丢失:缓存服务器没有匹配到客户端http请求。原因很多。
cache确认: 确认回复客户端的请求是有效的。
可以主动调用接口去清除对象缓存的指令。CND5-15分钟删除。
=======================Squid===========================
squid是一个高性能的代理和缓存服务器。支持FTP、gopher、HTTP。他的数据缓存在内存和硬盘中,同时也缓存DNS查询的结果。squid支持SSL、ACL。
ICP (轻量internet缓存协议)使squid能实现层叠的代理阵列,从而节约带宽。
位置:1、放置web服务器前,也被称为方向代理服务。2、放置在企业内部关键出网位置或者共享网络的前端,也被称为正向代理。(普通代理和透明代理)3、放置在网络的关键位置 过滤网络流量和访问数据,也可以iptable配合作为公网网关。4、用作局域网的代理服务器。
![v2-0c8e5e5619ba690208d1b35667254fa6_b.jpg](https://i-blog.csdnimg.cn/blog_migrate/319817247b75c64e19168f48dff271d7.jpeg)
![v2-f0c1b15f63ab9e00a3f9a0d9ff5cfcf3_b.jpg](https://i-blog.csdnimg.cn/blog_migrate/bc2e59e33d5b9264a960b981f8e3c0c1.png)
squid 服务器 磁盘和内存比例:1G:32M
===================squid之------安装与基本配置==================
环境:VM Pro 15 CentOS 8 Squid 4.4
1.安装:yum -y install squid
2.squid主要组成部分
服务名:squid
主程序:/usr/sbin/squid
配置目录:/etc/squid
主配置文件:/etc/squid/squid.conf 只看配置 egrep -v '^#|^$' squid.conf
监听tcp端口号:3128
默认访问日志文件:/var/log/squid/access.log
3.配置squid.conf文件
vim /etc/squid/squid.conf
#允许任意客户机使用代理
http_access allow all
#使用3128端口
http_port 3128
coredump_dir /var/spool/squid
#指定缓存功能所使用的内存空间大小,便于保持访问较频繁的WEB对象,容量最好为4的倍数,单位为MB,建议设为物理内存的1/4
cache_mem 128 MB
#允许保存到缓存空间的最大对象大小,以KB为单位,超过大小限制的文件将不被缓存,而是直接转发给用户
maximum_object_size 16 MB
#允许用户下载的最大文件大小,以字节为单位。默认设置0表示不进行限制
reply_body_max_size 10 MB
#缓存文件夹,默认是只在内存中进行缓存的。这里指定缓存大小为100M,第一层子目录为16个,第二层为256
cache_dir ufs /var/spool/squid 100 16 256
#定义访问日志路径
access_log /var/log/squid/access.log
4.在防火墙添加允许策略
iptables -F #清除防火墙filter表中规则
setenforce 0 #关闭增强安全×××
iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
#这句策略就是允许访问3218端口的tcp数据包通过
service squid reload #重新加载服务配置
5.初始化squid
squid -z
6.启动命令与开机自启
# 启动
systemctl start squid.service
# 停止
systemctl stop squid.service
# 重启
systemctl restart squid.service
#设置开机自启
systemctl enable squid.service