Squid 主要提供缓存加速、应用层过滤控制的功能。
web缓存:加速网页页面的访问,提高响应效率,降低服务端的负载压力(nginx、squid、varnish、CDN)
数据库缓存:缓存一些频繁被请求的高热度数据的,提高响应效率,降低关系型数据库的负载压力(Redis、memcache)
缓存网页对象,减少重复请求
将获得的网页数据(静态 Web 元素)保存到缓存中并发送给客户机,以便下次请求相同的数据时快速响应。
代理服务器是一个位于客户端和原始(资源)服务器之间的服务器,为了从原始服务器取得内容,客户端向代理服务器发送一个请求并指定目标原始服务器,然后代理服务器向原始服务器转交请求并将获得的内容返回给客户端。
缓存代理对于Web至关重要,尤其对于大型高负载Web站点。缓存可作为性能优化的一个重要手段,可以极大减轻后端服务器的负载。通常对于静态资源,即较少经常更新的资源,如图片,css或js等进行缓存,从而在每次刷新浏览器的时候,不用重新请求,而是从缓存里面读取,这样就可以减轻服务器的压力。
其主要作用有:
最基本的作用:提高web访问速度,隐藏客户机的真实IP地址。
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
yum -y install gcc gcc-c++ make
tar zxvf squid-3.5.28.tar.gz -C /opt/
cd /opt/squid-3.5.28
./configure --prefix=/usr/local/squid \ #指定安装目录路径
--sysconfdir=/etc \ #指定配置文件路径
--enable-arp-acl \ #MAC地址管控,防止客户端使用IP欺骗
--enable-linux-netfilter \ #使用内核过滤
--enable-linux-tproxy \ #支持透明模式
--enable-async-io=100 \ #异步IO,提升存储性能
--enable-err-language="Simplify_Chinese" \ #错误信息的显示语言
--enable-underscore \ #允许URL中有下划线
--disable-poll \ #关闭默认使用 poll 模式
--enable-epoll \ #开启epoll模式提升性能
--enable-gnuregex #使用GNU正则表达式
make -j 4 && make install
ln -s /usr/local/squid/sbin/* /usr/local/sbin/ #优化路径,使系统直接能够识别squid命令
useradd -M -s /sbin/nologin squid #创建squid用户,不创建家目录,不可登录系统(用于管理squid服务)
chown -R squid:squid /usr/local/squid/var/ #修改属主属组,此目录用于存放缓存文件
vim /etc/squid.conf
.....
--56行--插入
http_access allow all #放在 http_access deny all 之前,允许任意客户机使用代理服务,控制规则自上而下匹配
http_access deny all
http_port 3128 #用来指定代理服务监听的地址和端口(默认的端口号为 3128)
--61行--插入
cache_effective_user squid #添加,指定程序用户,用来设置初始化、运行时缓存的账号,否则启动不成功
cache_effec