返回列表 发帖

Squid反向代理+缓存

工作流程》

当代理服务器中有客户端需要的数据时:
1.客户端向代理服务器发送数据请求;
2.代理服务器检查自己的数据缓存;
3.代理服务器在缓存中找到客户端需要的数据,取出数据;
4.代理服务器将缓存中取得的数据返回给客户端。

当代理服务器中没有客户端需要的数据时:
1.客户端向代理服务器发送数据请求;
2.代理服务器检查自己的数据缓存;
3.代理服务器在缓存中没有找到客户端需要的数据;
4.代理服务器向后台服务器发送数据请求;
5.后台服务器响应,返回相应数据;
6.代理服务器取得后台服务器的数据后,除了返回给客户端外,自己还保留一份到自己的缓存中。


图片1.png


笺注:
Squid服务器的IP为192.168.168.130
后台服务器的IP为192.168.168.154


安装squid:
[root@localhost ~]# yum -y install squid


[root@localhost ~]# squid -v
Squid Cache: Version 3.1.23


启动squid:
[root@localhost ~]# service squid start
[root@localhost ~]# chkconfig --level 35 squid on



squid 的主配置文件
[root@localhost ~]# vi /etc/squid/squid.conf

文件开头插入:
http_port 80 vhost vport
接着插入站点信息:(后台站点IP为192.168.168.154,端口为80
cache_peer 192.168.168.154 parent 80 0 originserver
图片2.png


插入: httpd_suppress_version_string on
图片3.png


修改: http_access allow all
图片4.png


修改: http_port 80
图片5.png


保存文件后,重启squid服务:
service squid restart



防火墙配置:
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables-save > /etc/sysconfig/iptables





先确定后台服务器的站点可以正常访问:
图片6.png


访问代理服务器的IP就等于服务后台服务器的IP:(也就是说访问代理服务器的Web就等于访问后台服务器的Web)
笺注:后台站点服务器无需为代理服务器做任何额外操作。
图片7.png













######
此时是代理服务器没有缓存的
图片8.png


代理服务器开启缓存功能:
[root@localhost ~]# vi /etc/squid/squid.conf
http_port 下面插入:
cache_mem 500 MB
maximum_object_size 4 MB
minimum_object_size 0 KB
maximum_object_size_in_memory 4096 KB
cache_dir ufs /var/spool/squid 500 16 256
图片9.png


重启squid:
service squid restart




当客户端访问Squid服务器时,Squid服务器会产生缓存文件
图片10.png


图片11.png


备注:
/var/spool/squid/ 下的缓存文件是可以删除的,但删除后,必须要重启squid服务!!!
重启squid服务后,代理服务器的代理功能才能正常使用,并且缓存文件会自动重新生成。



笺注:
1、后台站点的对应文件内容没有更新,代理服务器就不用更新缓存,直接把缓存的内容发给客户端;
2、假如后台站点的对应文件内容更新了,代理服务器会重新从后台服务器提取信息给客户端。
3、实验中,后台站点的对应文件内容更新后,客户端可以马上看到新的内容,没有出现更新延迟。




相关文章:
Squid反向代理+轮询(一)
CentOS8_Squid反向代理+缓存

返回列表