工作流程》
当代理服务器中有客户端需要的数据时:
1.客户端向代理服务器发送数据请求;
2.代理服务器检查自己的数据缓存;
3.代理服务器在缓存中找到客户端需要的数据,取出数据;
4.代理服务器将缓存中取得的数据返回给客户端。
当代理服务器中没有客户端需要的数据时:
1.客户端向代理服务器发送数据请求;
2.代理服务器检查自己的数据缓存;
3.代理服务器在缓存中没有找到客户端需要的数据;
4.代理服务器向后台服务器发送数据请求;
5.后台服务器响应,返回相应数据;
6.代理服务器取得后台服务器的数据后,除了返回给客户端外,自己还保留一份到自己的缓存中。
笺注:
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
插入: httpd_suppress_version_string on
修改: http_access allow all
修改: http_port 80
保存文件后,重启squid服务:
service squid restart
防火墙配置:
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables-save > /etc/sysconfig/iptables
先确定后台服务器的站点可以正常访问:
访问代理服务器的IP就等于服务后台服务器的IP:(也就是说访问代理服务器的Web就等于访问后台服务器的Web)
笺注:后台站点服务器无需为代理服务器做任何额外操作。
######
此时是代理服务器没有缓存的
代理服务器开启缓存功能:
[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
重启squid:
service squid restart
当客户端访问Squid服务器时,Squid服务器会产生缓存文件
备注:
/var/spool/squid/ 下的缓存文件是可以删除的,但删除后,必须要重启squid服务!!!
重启squid服务后,代理服务器的代理功能才能正常使用,并且缓存文件会自动重新生成。
笺注:
1、后台站点的对应文件内容没有更新,代理服务器就不用更新缓存,直接把缓存的内容发给客户端;
2、假如后台站点的对应文件内容更新了,代理服务器会重新从后台服务器提取信息给客户端。
3、实验中,后台站点的对应文件内容更新后,客户端可以马上看到新的内容,没有出现更新延迟。
相关文章:
Squid反向代理+轮询(一)
CentOS8_Squid反向代理+缓存 |