apache:squid的正向代理,cdn反向代理和web调度器

一:代理服务器的概念

代理服务器简介

代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。Squid是一个缓存Internet数据的软件,其接收用户的下载申请,并自动处理所下载的数据。当一个用户想要下载一个主页时,可以向Squid 发出一个申请,要Squid 代替其进行下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid把保存的备份立即传给用户,使用户觉得速度相当快。 Squid 可以代理HTTP、FTP、GOPHER、SSL和WAIS等协议,并且Squid可以自动地进行处理, 也可以根据自己的需要设置Squid,使之过滤掉不想要的东西。

正向代理:

正向代理,是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。 正向代理也是大家最常接触的到的代理模式。要想实现这种方式,必须在客户端的浏览器上明确指名代理服务器的IP地址和端口号。
举个例子:
在如今的网络环境下,我们如果由于技术需要要去访问国外的某些网站,此时你会发现位于国外的某网站我们通过浏览器是没有办法访问的,此时大家可能都会用一个操作vpn(vpn连接代理服务器哦的一个隧道)进行访问,这个操作的的方式主要是找到一个可以访问国外网站的代理服务器,我们将请求发送给代理服务器,代理服务器去访问国外的网站,然后将访问到的数据传递给我们!
这样的代理模式称为正向代理,正向代理最大的特点是客户端非常明确要访问的服务器地址,比如www.baidu.com;原始服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式屏蔽或者隐藏了真实客户端信息。

反向代理:

反向代理,是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器
反向代理服务器承担了对原始WEB服务器的静态页面的请求,防止原始服务器过载。它位于WEB服务器和Internet之间,处理所有对WEB服务器的请求,组织了WEB服务器和Internet的直接通信。如果互联网用户请求的页面在代理服务器上有缓冲的话,代理服务器直接将缓冲内容发送给用户。如果没有缓冲则先向WEB服务器发出请求,取回数据,本地缓存后再发给用户。这种方式通过降低了WEB服务器的请求数从而降低了WEB服务器的负载。

反向代理有什么用为什么要这么做:

作用:用户请求过多,服务器会有一个处理的极限。所以使用反向代理服务器接受请求,再用均衡负载将请求分布给多个真实的服务器。既能提高效率还有一定的安全性。
用途:如果不采用代理,用户的IP、端口号直接暴露在Internet(尽管地址转换NAT),外部主机依然可以根据IP、端口号来开采主机安全漏洞,所以在企业网,一般都是采用代理服务器访问互联网。
举例:
深圳这个服务器是原始web服务器,此时西安也有一个服务器,现在西安有一台主机上面的网页想要去向深圳发送一个请求,但是直接去访问深圳的服务器会造成深圳服务器的繁忙,还有发送请求响应的速度缓慢(因为要做的地址转换比较多),此时西安这个服务器可以代替这个这个网页去发送请求,因为两个服务器之间的速度比较快,并将请求的结果缓存下来,如果下一次有人问,西安就不用去发送请求,可以将缓存结果直接交付给它,这样就缓解了深圳服务器的工作压力。

总结:

正向代理,其真实服务器对客户端是明确的。你只是借助代理服务器让它帮忙去请求你想访问的那个地址。
反向代理,其真实服务器对客户端是透明的。你永远不知道代访问的地址是代理服务器还是真实服务器。就比如直接访问www.baidu.com。

正向代理与反向代理最简单的区别

正向代理隐藏的是用户,反向代理隐藏的是服务器

二:正向代理服务器的搭建

模拟问题:让一台client主机本身无法上网,但是可以通过代理服务器在浏览器中上网

前提工作

为了实验环境的纯净,我们将操作的虚拟机重置:

在这里插入图片描述
将要搭建服务器的主机起名为server.westos.com
在这里插入图片描述
用ssh连接:
在这里插入图片描述

搭建yum仓库,使yum源可用
在这里插入图片描述
设置网关和解析,使这台虚拟机可以上网
在这里插入图片描述

在这里插入图片描述

可以上网
在这里插入图片描述
实验步骤如下:

第一步

yum install squid -y            安装squid软件包 
systemctl start squid                开启服务
netstat -antlupe | grep squid           查看端口,squid服务端口是3128

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第二步:修改配置文件

 vim /etc/squid/squid.conf
在里面修改56行还有62行,修改为如下
第56内容:http_access allow all                           允许所有主机来访问
第62行:cache_dir ufs /var/spool/squid 100 16 256 (100是缓存大小,生成16个一级目录每一个里面有256个二级目录) 

在这里插入图片描述
在这里插入图片描述

第三步

cd /var/spool/squid/ 查看生成的目录
ls
systemctl restart squid            重启服务

在这里插入图片描述
第四步:关闭防火墙

 systemctl  stop firewalld

在这里插入图片描述

测试

设置测试主机为客户端,名字为client.westos.com
在这里插入图片描述
修改ip
在这里插入图片描述
用ssh连接,不能ping通百度

在这里插入图片描述

打开firefox浏览器
在这里插入图片描述
此时不能访问到百度在这里插入图片描述

在客户端的浏览器上明确指名代理服务器的IP地址和端口号。在这里插入图片描述

在这里插入图片描述
此时再去访问百度,可以访问到

在这里插入图片描述

但我们发现,浏览器可以上网,主机还是不能上网
在这里插入图片描述

三:cdn(网络资源分发)反向代理服务器的搭建

squid + apache = cdn

CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。

模拟问题:一台客户端主机上面有apache,另一台server’没有,但是有反向代理服务器,通过在浏览器访问代理服务端ip地址跳转apache的默认发布文件

在客户端(ip是172.25.254.106):

yum install httpd -y
systemctl start httpd
cd /var/www/html
vim index.html     里面随便写点什么
systemctl  stop firewalld

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

此时172.25.254.206访问不到,172.25.254.106可以访问到
在这里插入图片描述

在这里插入图片描述

在服务端:(ip是172.25.254.206)

服务器上没有httpd,有squid

vim /etc/squid/squid.conf
第五十九行:http_port 80 vhost vport
第六十行:cache_peer  172.25.254.106   parent 80 0 proxy-only
systemctl restart squid

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试
在真机的浏览器上输入172.25.254.206能访问到106里面的内容
在这里插入图片描述

在真机上面将本地解析里面的ip改为172.25.254.206
vim /etc/hosts
172.25.254.206  www.westos.com

在这里插入图片描述
在真机的浏览器上输入www.westos.com能访问到106里面的内容
在这里插入图片描述

四:web调度器的搭建

调度器:(调节负载均衡)

在企业中当站点的服务器负载过大时,我们可以使用轮循调度来降低负载——虽然访问的IP不同,但是访问内容是一致的。

实验如下

配置两个apache,在默认发布文件随便写点什么,为了实验效果,同一个域名对应的默认发布内容最好写的不一样,在企业中默认发布内容其实是一样的。

一个apache我们在上个实验都做好了,此时来搭建另一个apache(用真机):

第一步:配置好yum源
在这里插入图片描述
第二步安装httpd软件包
在这里插入图片描述
在这里插入图片描述
第三步:开启服务,并编辑默认发布文件
在这里插入图片描述
第四步:关闭防火墙

在这里插入图片描述

搭建web调度器(也可以用上个实验的服务端server):

配置一个调度器:(主机ip是172.25.254.206)
yum install squid -y
systemctl start squid
 vim /etc/squid/squid.conf     编辑配置文件
在里面修改56-65
 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.106  parent  80  0  proxy-only   no-query  round-robin  originserver   name=web1
 61 cache_peer 172.25.254.15  parent  80  0  proxy-only   no-query  round-robin  originserver    name=web2  weight=3
 62 cache_peer_domain web1  web2  www.westos.com
 63 
 64 # Uncomment and adjust the following to add a disk cache directory.
 65 cache_dir ufs /var/spool/squiid 100 16 256

因为我们这里已经安装过squid并且开启过服务,所以不用安装跟开启服务

编辑配置文件
在这里插入图片描述
在这里插入图片描述

cache_peer 172.25.254.106 parent 80 0 proxy-only round-robin
originserver name=web1
80指连接浏览器的端口,0指当服务器挂掉后没有备用的(通过进入目录/usr/share/doc/squid-3.3.8/squid.conf.documented(可以查看到本机没有备用服务器)
proxy-only指只能代理
name=web1是给呈现出ip为172.25.25.106中的内容(共享目录下/var/www/html/index.html的内容)起的别名
round-robin用的是轮循方式
originserver说明为哪一个域名服务(本机为www.westos.com),只有设置这个参数才会去识别round-robin(轮循)

systemctl restart squid         重启服务
systemctl stop firewalld      关闭火墙

在这里插入图片描述

测试
在真机里测试:

vim /etc/hosts
172.25.254.206   www.westos.com

在这里插入图片描述
在这里插入图片描述

然后在浏览器输入www.westos.com测试,发现出来的内容不一样,刷新频率,两个页面出现的频率为:“我好喜欢你”页面出现一次,“声之形”页面出现两次

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

注意

1.两个http服务端的防火墙要关闭
2.调度器不要安装httpd,可能会占用端口
3.轮循调度都是为一个站点所服务的
4.在调度器不要设置dns(本机不做解析),否则会占用端口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值