-
代理缓存服务
Squid是Linux系统中最为流行的一款高性能代理服务软件,通常用作Web网站的前置缓存服务,能够代替用户向网站服务器请求页面数据并进行缓存。
Squid服务程序具有配置简单、效率高、功能丰富等特点,它能支持HTTP、FTP、SSL等多种协议的数据缓存,可以基于访问控制列表(ACL)和访问权限列表(ARL)执行内容过滤与权限管理功能,还可以基于多种条件禁止用户访问存在威胁或不适宜的网站资源,因此可以保护企业内网的安全,提升用户的网络体验,帮助节省网络带宽。
由于缓存代理服务不但会消耗服务器较多的CPU计算性能、内存以及硬盘等硬件资源,同时还需要较大的网络带宽来保障数据的传输效率,由此会造成较大的网络带宽开销。因此国内很多IDC或CDN服务提供商会将缓存代理节点服务器放置在二三线城市以降低运营成本。
在使用Squid服务程序为用户提供缓存代理服务时,具有正向代理模式和反向代理模式之分。
正向代理模式,是指让用户通过Squid服务程序获取网站页面等资源,以及基于访问控制列表(ACL)功能对用户访问网站行为进行限制,在具体的服务方式上又分为标准代理模式与透明代理模式。
标准正向代理模式是把网站数据缓存到服务器本地,提高数据资源被再次访问时的效率,但是用户在上网时必须在浏览器等软件中填写代理服务器的IP地址与端口号信息,否则默认不使用代理服务。
透明正向代理模式的作用与标准正向代理模式基本相同,区别是用户不需要手动指定代理服务器的IP地址与端口号,所以这种代理服务对于用户来讲是相对透明的。
使用Squid服务程序提供正向代理服务的拓扑图
局域网内的主机如果想要访问外网,则必须要通过Squid服务器提供的代理才行,这样当Squid服务器接收到用户的指令后会向外部发出请求,然后将接收到的数据交还给发出指令的那个用户,从而实现了用户的代理上网需求。
反向代理模式是指让多台节点主机反向缓存网站数据,从而加快用户访问速度。
使用Squid服务程序提供反向代理服务的拓扑图
配置Squid服务程序
主机名称 |
操作系统 |
IP地址 |
Squid服务器 |
RHEL8 |
内网卡:192.168.10.10 外网卡:桥接DHCP模式 |
客户端 |
RHEL 8 |
192.168.10.20 |
客户端 |
Windows 7 |
192.168.10.50 |
服务配置
在虚拟机中增加一个网卡,宣威桥接模式
[root@localhost ~]# nm-connection-editor
[root@localhost ~]# nmcli connection up ens192
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)
[root@localhost ~]# ping www.baidu.com
PING www.a.shifen.com (180.101.49.11) 56(84) bytes of data.
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=1 ttl=52 time=110 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=2 ttl=52 time=14.9 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=3 ttl=52 time=15.4 ms
^C
--- www.a.shifen.com ping statistics ---
4 packets transmitted, 3 received, 25% packet loss, time 9ms
rtt min/avg/max/mdev = 14.854/46.717/109.889/44.670 ms
[root@localhost ~]#
[root@localhost ~]# ping 192.168.10.20
PING 192.168.10.20 (192.168.10.20) 56(84) bytes of data.
64 bytes from 192.168.10.20: icmp_seq=1 ttl=64 time=2.01 ms
64 bytes from 192.168.10.20: icmp_seq=2 ttl=64 time=1.40 ms
64 bytes from 192.168.10.20: icmp_seq=3 ttl=64 time=0.828 ms
64 bytes from 192.168.10.20: icmp_seq=4 ttl=64 time=0.992 ms
^C
--- 192.168.10.20 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 9ms
rtt min/avg/max/mdev = 0.828/1.305/2.006/0.456 ms
[root@localhost ~]#
安装 squid 服务
[root@localhost ~]# dnf install squid
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 0:40:22 ago on Tue 12 Oct 2021 01:40:25 PM CST.
Dependencies resolved.
============================================================================================================================================
Package