【网络是怎样连接的】第五章 探索服务器

1.Web服务器部署的位置
Web服务器可以部署在公司里,也可以直接放在网络运营商管理的数据中心里,或者直接租用运营商提供的服务器。

放在公司里,服务器可以从互联网直接访问。这种情况下,网络包通过最近的POP中的路由器、接入网以及服务器端路由器之后,就直接到达了服务器。以前这样的服务器部署方式很常见,但现在已经不是主流方式了。这里有几个原因。第一个原因是IP 地址不足。这样的方式需要为公司网络中的所有设备,包括服务器和客户端计算机,都分配各自的公有地址。然而现在公有地址已经不够用了,因此采用这种方式已经不现实了。

放在数据中心里就直接与NOC连接,或者与运营商之间的枢纽中心,也就是IX直接连接。这样的话访问速度会非常快,此外,数据中心一般位于具有抗震结构的大楼内,还具有自主发电设备,并实行24小时门禁管理,可以说比放在公司里具有更高的安全性。此外,数据中心不但提供安放服务器的场地,还提供各种附加服务,如服务器工作状态监控、防火墙的配置和运营、非法入侵监控等,从这一点来看,其安全性也更高。

2.防火墙的结构和原理

防火墙的基本原理就是只允许发往特定服务器中的特定应用程序的包通过,然后屏蔽其他的包。为了做到这一点,必须正确地设置包过滤的规则。

在这里插入图片描述

在这里插入图片描述

防火墙可以根据上图中列出的项目对包过滤的规则进行设置,**包过滤方式的防火墙可根据接收方IP地址、发送方IP地址、接收方端口号、发送方端口号、控制位等信息来判断是否允许某个包通过。**如下图

在这里插入图片描述

假设Web服务器在收到含有特定数据的包时会引起宕机。但是防火墙只关心包的起点和终点,因此即便包中含有特定数据,防火墙也无法发现,于是包就被放行了。然后,当包到达Web服务器时,就会引发服务器宕机。

要应对这种情况有两种方法。这个问题的根源在于Web服务器程序的Bug,因此修复Bug防止宕机就是其中一种方法。

另一种方法就是在防火墙之外部署用来检查包的内容并阻止有害包的设备或软件。当然,即便是采用这种方法也并不是完美无缺的,因为包的内容是否有风险,是由Web服务器有没有Bug决定的,因此当服务器程序中有潜在的Bug并且尚未被发现时,我们也无法判断包中的风险,也无法阻止这样的包。

4.如何平衡服务器的负载

当服务器的访问量上升时,增加服务器线路的带宽是有效的,但并不是网络变快了就可以解决所有的问题。高速线路会传输大量的网络包,这会导致服务器的性能跟不上。

在这种情况下,使用多台服务器来分担负载的方法更有效。这种架构统称为分布式架构,其中对于负载的分担有几种方法,最简单的一种方法就是采用多台Web服务器,减少每台服务器的访问量。假设现在我们有3台服务器,那么每台服务器的访问量会减少到三分之一,负载也就减轻了。要采用这样的方法,必须有一个机制将客户端发送的请求分配到每台服务器上。具体的做法有很多种,最简单的一种是通过DNS服务器来分配。当访问服务器时,客户端需要先向DNS服务器查询服务器的IP地址,如果在DNS服务器中填写多个名称相同的记录,则每次查询时DNS服务器都会按顺序返回不同的IP地址。这样就可以平均访问各个服务器了。

在这里插入图片描述

除此之外,也可以用负载均衡器来实现负载均衡访问。。使用负载均衡器时,首先要用负载均衡器的IP地址代替Web服务器的实际地址注册到DNS服务器上。假设有一个域名www.lab.glasscom.com,我们将这个域名对应的IP 地址设置为负载均衡器的IP地址并注册到DNS服务器上。于是,客户端会认为负载均衡器就是一台Web服务器,并向其发送请求,然后由负载均衡器来判断将请求转发给哪台Web服务器。这里的关键点不言而喻,那就是如何判断将请求转发给哪台Web服务器。

在这里插入图片描述

5.使用缓存服务器来分担负载

除了使用多台功能相同的Web服务器分担负载之外,还有另外一种方法,就是将整个系统按功能分成不同的服务器,如Web服务器、数据库服务器。缓存服务器就是一种按功能来分担负载的方法。

缓存服务器是一台通过代理机制对数据进行缓存的服务器。代理介于Web服务器和客户端之间,具有对Web服务器访问进行中转的功能。当进行中转时,它可以将Web服务器返回的数据保存在磁盘中,并可以代替Web服务器将磁盘中的数据返回给客户端。这种保存的数据称为缓存,缓存服务器指的也就是这样的功能。

Web服务器需要执行检查网址和访问权限,以及在页面上填充数据等内部操作过程,因此将页面数据返回客户端所需的时间较长。相对地,缓存服务器只要将保存在磁盘上的数据读取出来发送给客户端就可以了,因此可以比Web服务器更快地返回数据。当然缓存都是暂时的,需要随着web的更新而更新。

缓存服务器和负载均衡器一样,需要代替Web服务器被注册到DNS服务器中。然后客户端会向缓存服务器发送HTTP请求消息。这时,缓存服务器会接收请求消息,这个接收操作和Web服务器相同。简单来说就是创建用来等待连接的套接字,当客户端进行连接时执行连接操作,然后接收客户端发送的请求消息。从客户端来看,缓存服务器就相当于Web服务器。接下来,缓存服务器会检查请求消息的内容,看看请求的数据是否已经保存在缓存中。若保存着,则直接返回,否则缓存服务器会以客户端的身份向目标Web服务器发送请求消息。也就是说,它会先创建套接字,然后连接到Web服务器的套接字,并发送请求消息。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值