客户端访问Squid代理服务器,由代理服务器代表客户访问后端真实服务器,真实服务器将响应的数据返回给Squid代理服务器。最后,Squid代理服务器将响应结果返回给客户端,同时将结果缓存在硬盘上及内存中,当客户端再次访问相同的网页时,Squid代理服务器直接从缓存中获取结果并将其返回给客户端,从而减少了与真实服务器之间的通信次数,提高了响应速度 。
实验环境:
Rocky_linux9 镜像一份。
虚拟机四台(两台作为web服务器,一台作为Squid服务器(Squid服务器需要配置双网卡),一台模拟客户端)
参考传统模式中的web服务器配置,这里不再重复记录操作。web服务器网关需要指向squid服务器的内网ip
#此命令为配置web服务器网关与IP地址
nmcli c modify ens33 ipv4.addresses 10.10.10.4/24 ipv4.gateway 10.10.10.5
nmcli c modify ens33 ipv4.addresses 10.10.10.7/24 ipv4.gateway 10.10.10.5
开启路由转发模式
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf #开启路由转发
#立即生效
sysctl -p
修改squid配置文件,
vim /etc/squid/squid.conf
http_port 192.168.46.128:80 vhost #监听该地址的80端口,并设置为虚拟主机模式
cache_peer 10.10.10.4 parent 80 0 originserver round-robin #这行配置表示将一个缓存服务器配置为代理服务器的上游服务器。10.10.10.11是缓存服务器的IP地址,parent 80表示使用80端口连接到上游服务器。0是服务器的缓存级别,originserver表示上游服务器是源服务器而不是另一个缓存服务器。round-robin表示使用轮询的方式在多个缓存服务器之间分发请求。
cache_peer 10.10.10.7 parent 80 0 originserver round-robin
未放行ACL时访问服务器,会提示访问被拒绝
放行ACL后,再次进行访问
vim /etc/squid/squid.conf
acl GW_WEB src 192.168.46.0/24 #acl后跟的是自定义名称。
#放行策略
http_access allow GW_WEB
#重新加载配置文件
systemctl reload squid
重启服务后再次访问查看
systemctl restart squid
#注:真实环境中网页内容是一致的,这里为了看效果,两个网页中的内容是不一样的。
再次刷新页面就会将请求发送到另一个web服务器上