squid代理缓存服务器的学习与应用

本文深入探讨Squid代理缓存服务器的功能,包括正向代理、反向代理(CDN加速)及调度器作用。通过实际实验,演示如何配置Squid实现网络访问加速与负载均衡。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

squid代理缓存服务器

Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher、HTTPS和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。
squid服务器到底是用来干什么的呢?
简单来说squid服务器就是帮助客户主机去获取客户主机想要获取的intetnet上的信息,只不过因为很多限制,客户主机无法直接获取,需要由squid去访问,然后缓存信息,最后由客户主机去浏览缓存,类似于现实生活中的代购。

squid代理缓存服务器的功能有正向代理,反向代理(cdn高速缓存),做调度器,那么我们接下来就对这三个功能做更加详细的说明与实验

正向代理

正向代理 是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。
正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性(由mod_cache提供)减少网络使用率。
实验:
我们来模拟一个正向代理的过程,假设我们有两台主机,其中一台主机可上网,另一台主机则不可以,我们以www.baidu.com作为原始服务器,最终只要能够再不能上网的主机上通过代理服务器(能上网)可以访问百度,则代表实验成功
1.设置代理服务器(可上网)的网络配置,确保其可以正常访问百度
由于我们的代理服务器是虚拟机,我们需要通过配置网关来上网,这个在前面的文章中有提到过,就不做说明了。
在这里插入图片描述
做dns解析vim /etc/resolv.conf
在这里插入图片描述
真机打开火墙伪装
在这里插入图片描述
ping百度
在这里插入图片描述
2.代理服务器安装squid并对其进行配置
在这里插入图片描述
查询squid的配置文件路径
在这里插入图片描述
最终找到其配置文件所在路径为/etc/squid.squid.conf

vim /etc/squid/squid.conf
	 57 http_access allow all			##允许所有人连接
	 58 # Squid normally listens to port 3128
	 59 http_port 3128				##端口
	 60 
	 61 # Uncomment and adjust the following to add a disk cache directory.
	 62 cache_dir ufs /var/spool/squid 100 16 256	##缓存目录共100M 分为16个目录,每个目录100个子目录

在这里插入图片描述
启动squid服务
在这里插入图片描述
2.客户主机(不能上网)主机进入浏览器去设置代理

edit
preferences
advnced
network
settings
manual。。。   第一个打勾,填入代理主机(79)和squid端口号(3128)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试:通过客户机去访问百度
在这里插入图片描述
通过对比发现通过代理却是可以访问百度
这这里再向大家说明一下,squid的配置文件说明是不能通过man5来查看的,其配置文件说明在/usr/share/doc/squid-3.3.8/squid.conf.documented
在这里插入图片描述

反向代理(cdn加速,高速缓存)

和正向代理不同的是反向代理客户主机不需要做任何配置,代理服务器和原始服务器都是由企业来做的,通过代理服务器的高速缓存,客户主机通过http的80端口访问代理主机,而代理主机则使用vpn建立专用通道来缓存原始主机信息,这样客户主机就好像是直接访问了原始主机一样,加快了访问速度
实验:
这个实验我们和正向代理不同,我们需要将刚才的代理主机作为目标主机,客户主机作为代理主机,真机作为客户主机
客户主机和代理主机由于属于同一网段,可直接通讯,类似于httpd的80端口,而我们的代理主机和目标主机都要安装squid,使目标主机和代理主机之间形成一种“父子”关系,使用squid打开80端口进行通信,类似于架构了一个vpn通道

目标主机:
开启httpd服务,开启squid服务,关闭火墙,然后什么都不用设置,只要客户主机能用apache访问即可
代理主机:(不开启httpd服务)
安装squid
在这里插入图片描述
配置squid文件

vim /etc/squid/squid.conf
	 55 # And finally deny all other access to this proxy
	 56 http_access allow all
	 57 
	 58 # Squid normally listens to port 3128
	 59 http_port 80 vhost vport			##开启apache的80端口,虚拟主机,虚拟端口
	 60 cache_peer 172.25.254.79 parent 80 0 proxy-only ##父级端口80,0是备用的,这里没有所以是0,只做代理
	 61 
	 62 # Uncomment and adjust the following to add a disk cache directory.
	 63 cache_dir ufs /var/spool/squid 100 16 256

在这里插入图片描述
然后打开squid服务
在这里插入图片描述
测试:
真机通过查看代理主机的apache默认发布文件
目标主机的默认发布文件内容:
在这里插入图片描述
查看:
在这里插入图片描述
成功,因为99没有打开httpd服务,按原理来说通过apache不会看到任何东西,然而我们却看到了79的发布文件,则反向代理成功

squid做调度器

squid还可以作为调度器去调度不同的主机
代理主机:

vim /etc/squid/squid.conf
 56 http_access allow all
 57 
 58 # Squid normally listens to port 3128
 59 http_port 80 vhost vport
 60 cache_peer 172.25.254.79 parent 80 0 proxy-only name=web1 originserver round-robin weight=2
 61 cache_peer 172.25.254.109 parent 80 0 proxy-only name=web2 originserver round-robin 
 62 cache_peer_domain web1 web2 www.ljz.com
 63 # Uncomment and adjust the following to add a disk cache directory.
 64 cache_dir ufs /var/spool/squid 100 16 256

所添加的参数意义

round—robin轮询调度
originserver核服务器,有这个参数才能识别轮询调度所维护的域名
weight=x重量级,也就是访问x次然后轮转,为1默认不用写
web1调度的主机之一
web2调度的另一个主机
cache_peer_domain两台主机访问的域名

在这里插入图片描述
测试,用客户主机(真机)去访问www.ljz.com
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上是我三次访问www.ljz.com的结果,符合weight次数,也做到了调度,成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值