Squid服务搭建

技术分享  / 只看大图  / 倒序浏览   ©

#楼主# 2020-2-16

跳转到指定楼层

马上注册,分享更多源码,享用更多功能,让你轻松玩转云大陆。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
183518b8asu4otknocw74v.jpg
一、简介

Squid 是一个 Web 缓存代理,支持 HTTP, HTTPS, FTP, 以及更多。它通过缓存与重用经常请求的web页面,减少带宽使用同时提升了相应时间。Squid 具有可扩展的访问控制功能,同时可以使服务器加速。Squid总共有三种模式,分别是传统模式、透明模式、反向代理。
二、缓存服务器的工作原理

通过代理服务器访问外部网站,开启缓存池,缓存了部分的静态页面,如果下一个客户再来访问,代理服务器会去真是服务器核实页面是否更新了,然后决定是否更新缓存池,然后返回给客户。如果是全新页面,代理服务器会去真实服务器读取数据返回给客户。
183519hz0b3ssevmzbbonb.png
三、实验情况

本实验共准备三台(CentOS 7.6)。
记得关闭三台服务的防火墙和SElinux。
1)传统模式的搭建
a.ip配置
客户端ip:192.168.80.10,Squid服务器有两块网卡,对应的ip分别是:内:192.168.80.20,外:192.168.90.20,web服务器则是192.168.90.30。
b.我们现搭建并启动web服务器,我们选择Apache
yum -y install httpdsystemctl start httpdecho "This is a web server" > /var/www/html/index.htmlc.测试

183519prbna0ilbjnjij11.png
d.客户端搭建
由于传统模式要在浏览器中配置代理,因此我们实现准备一台装有桌面的CentOS。

183519qoeetvqifogqoe4e.png
e.Squid的配置与启动
yum -y install squidsystemctl start squid查看是否启动

183520xb7meuddssbymy2s.png
由于squid要吸收来自客户端的数据包,并转发给真正的web服务器,因此要开启路由转发功能
echo 1 > /proc/sys/net/ipv4/ip_forwardf.最终测试
从客户端的浏览器访问

183520zq26msm2qsdsggjj.png

查看web服务器的访问日记

183520qij3vl1mzxvvmmlv.png

可以看到都是由squid服务器来访问的。最后,我们也可以将web服务器关闭,再在client上测试,同样也能访问到网页。
2)透明模式的搭建
由于传统模式要在客户端的浏览器上设置代理,比力麻烦。因此有了透明模式。
透明模式则不需要再浏览器上设置,client直接访问即可。
a.client的设置
由于我们这边没有路由器,因此我们指定client的网关为squid的ip地址,这样在client访问web会先将数据包发送给squid内网,再由squid服务器将其请求转发给web服务器。
echo "GATEWAY=192.168.80.20" >> /etc/sysconfig/network-scripts/ifcfg-ens33重启网卡
查看是否设置成功

183521heooteoaohtaftu1.png
b.squid服务器的配置
修改配置文件
vim /etc/squid/squid.conf修改http_port为
http_port 192.168.80.20:3128 transparent (transparent为透明的意思),重启服务
同样,该服务器的路由转发功能也要打开。
c.防火墙的配置
Centos 7.x中没有iptables工具,用yum下载
yum -y install iptables-services首先要清空防火墙的规则
iptables -F添加一条规则
iptables -t nat -A PREROUTING -i ens33 -s 192.168.80.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128这条规则的意思是:当入站网卡是ens33,内网网段是192.168.80.0段,并且访问的是80端口,那么则将该请求的端口重定向到3128端口。
生存配置
service iptables save启动iptables
systemctl start iptables查看
iptables -t nat -L
183521rq5vc5v5elqxyev8.png
d.client测试

183521sa4txi9lx4l1u9vu.png

关闭apache服务,依然能够获取到网页。
f.添加其他的功能
如果想要限制squid代理的文件大小,可以在配置文件中添加
reply_body_max_size 10 MB
意思是:允许代理的最大文件大小为10 MB,超过10 MB不被允许访问。
测试:
向apache的根目录下写入一个11MB的文件
dd if=/dev/zero of=/var/www/html/test.txt bs=11M count=1客户端测试

183522vaoff038506q2hhw.png

提示文件太大,代理服务器不能够缓存。
分享淘帖
回复

使用道具

您的回复是对作者最大的奖励

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于作者

江南MALL

新手猿

  • 主题

    2

  • 帖子

    2

  • 关注者

    0

楼主新帖

Archiver|手机版|小黑屋|云大陆 | 赣ICP备18008958号-4|网站地图
Powered by vrarz.com!  © 2019-2020版权所有云大陆