Linux系统的squid服务的安装及配置——正向代理、反向代理、CDN集群

一、什么是squid?

Squid是一种用来缓冲Internet数据的软件。它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器并向这个页面发出请求。然后,Squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。当前的Squid可以处理HTTP,FTP,GOPHER,SSL和WAIS等协议。但它不能处理如POP,NNTP,RealAudio以及其它类型的东西。

二、正向代理

准备两台主机,一台可以上网,一台不可以上网
在能上网的主机上

安装服务

yum install squid -y
systemctl stop firewalld

编辑配置文件

vim /etc/squid/squid.conf ##打开主配置文件
 52 http_access allow localnet
 53 http_access allow localhost
 54 
 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 3128
 60 
 61 # Uncomment and adjust the following to add a disk cache directory.
 62 cache_dir ufs /var/spool/squid 100 16 256

在这里插入图片描述

systemctl start squid

在不能上网的主机上的浏览器上作以下设置

Edit---->Preferences---->Network—>Settings---->Manual proxy configuration
勾选:Use this proxy server for all protocols
浏览器填写HTTP Proxy:能够上网的ip
Port:3128(查看主配置文件)

在这里插入图片描述
在这里插入图片描述
测试:
在这里插入图片描述
在这里插入图片描述
分析: 网址访问成功,注意这里客户机是没有网络的,客户机把这个请求发给部署的squid服务器的主机上,主机去访问网址将内容缓存下来,客户机访问主机的缓存的内容。这就是正向代理

三、反向代理

在计算机网络中,反向代理是代理服务器的一种。服务器根据客户端的请求,从其关系的一组或多组后端服务器(如Web服务器)上获取资源,然后再将这些资源返回给客户端,客户端只会得知反向代理的IP地址,而不知道在代理服务器后面的服务器簇的存在。

与正向代理的区别:
前向代理作为客户端的代理,将从互联网上获取的资源返回给一个或多个的客户端,服务端(如Web服务器)只知道代理的IP地址而不知道客户端的IP地址;而反向代理是作为服务器端(如Web服务器)的代理使用,而不是客户端。客户端借由前向代理可以间接访问很多不同互联网服务器(簇)的资源,而反向代理是供很多客户端都通过它间接访问不同后端服务器上的资源,而不需要知道这些后端服务器的存在,而以为所有资源都来自于这个反向代理服务器

1、服务器下载squid软件及更改相关配置文件

环境:
需要布置好一个充当后端服务器的squid服务,我们之前做的正向代理的主机可以充当后端服务器(170)!

服务器(120):

yum install squid -y

vim /etc/squid/squid.conf
# And finally deny all other access to this proxy
http_access allow all

# Squid normally listens to port 3128
http_port 80 vhost vport				##表明80是一个虚拟端口提供http服务
cache_peer 172.25.254.170 parent 80 0 proxy-only	##IP为后端服务器IP,80端口,无备用分服务器,只代理
# Uncomment and adjust the following to add a disk cache directory.
cache_dir ufs /var/spool/squid 100 16 256

# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid

在这里插入图片描述

2、重启服务

systemctl restart squid

3、测试

在客户端(非120;170)设置本地解析:

vim /etc/resolv.conf
nameserver 172.25.254.120		##此处IP为服务器IP(120)而不是后端服务器IP(170)

在浏览器中输入:172.25.254.170
在这里插入图片描述
在浏览器中输入:172.25.254.120
在这里插入图片描述
这个测试页是后端服务器(170)发布的内容,我们访问服务器(120)的IP也可以访问到,这就是反向代理。

四、CDN集群服务与负载均衡

1、什么是CDN?

CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。

2、什么是CDN集群服务与负载均衡?

Web集群是由多个同时运行同一个web应用的服务器组成,在外界看来就像一个服务器一样,
这多台服务器共同来为客户提供更高性能的服务。
集群更标准的定义是:一组相互独立的服务器在网络中表现为单一的系统,
并以单一系统的模式加以管理,此单一系统为客户工作站提供高可靠性的服务。

而负载均衡的任务就是负责多个服务器之 间(集群内)实现合理的任务分配,
使这些服务器(集群)不会出现因某一台超负荷、而其他的服务器却没有充分发挥处理能力的情况。

3、部署CDN集群和负载均衡服务

环境:
需要至少两台部署了squid服务的后端服务器和至少一台服务器。

为了实验效果,我们两台后端服务器的发布内容不一致,注意这里在实际工作中,多台后端服务器的内容是一致的,用户访问时不会有什么差别,这里只是为了实验效果:

后端服务器1(170):
在这里插入图片描述
后端服务器2(120):
在这里插入图片描述
服务器200配置:

vim /etc/squid/squid.conf
# And finally deny all other access to this proxy
http_access allow all

# Squid normally listens to port 3128
http_port 80 vhost vport
cache_peer 172.25.254.133 parent 80 0 proxy-only name=web1 originserver round-robin weight=2
cache_peer 172.25.254.132 parent 80 0 proxy-only name=web2 originserver round-robin
cache_peer_domain web1 web2 www.westos.com
# Uncomment and adjust the following to add a disk cache directory.
cache_dir ufs /var/spool/squid 100 16 256

# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid

注意:

配置信息 意义
name = web1 别名
originserver 说明web1为taylor域名服务
round-robin 说明是轮询的
weight=2 轮询次数

在这里插入图片描述
重启服务:

systemctl restart squid

测试:
客户机更改本地解析(服务器ip:200):

vim /etc/hosts
172.25.254.200 www.taylor.com

在客户机浏览器地址输入栏输入:www.taylor.com
点击刷新!
在这里插入图片描述
在这里插入图片描述
分析: 点击刷新后会发现,后端服务器120的内容会发布两次,后端服务器170的内容会发布一次,依次循环。服务机把请求发给120服务器两次,发给170一次,实现了负载均衡。在工作中我们的多台后端服务器的内容是一致的,用户多次访问时,请求发送到不同的后端服务器,使服务器的负载降低,也加快了访问速度!

关于linux系统的squid服务的安装及配置的内容就是这些。

猜你喜欢

转载自blog.csdn.net/qq_43570369/article/details/87777256