手机版网站制作模板,微商城怎么注册怎么弄,网页设计素材表格,公司网站优化怎么做本文主要取材于 《网络是怎样连接的》 第五章。
目录
5.1 Web服务器的部署地点 5.2 防火墙的结构和原理
5.3服务器负载平衡
5.4 使用缓存服务器分担负载
5.5 内容分发服务 简述#xff1a;本文主要内容是解释 网络包如何朝服务器前进#xff0c;并通过服务器前面的防…本文主要取材于 《网络是怎样连接的》 第五章。
目录
5.1 Web服务器的部署地点 5.2 防火墙的结构和原理
5.3服务器负载平衡
5.4 使用缓存服务器分担负载
5.5 内容分发服务 简述本文主要内容是解释 网络包如何朝服务器前进并通过服务器前面的防火墙、缓存服务器、负载均衡器等。
为了保护服务器免受攻击一般会在服务器前面部署防火墙包过滤方式的防火墙可根据接收方IP地址、发送方IP地址、接收方端口号、发送方端口号、控制位等信息来判断是否允许某个包通过。不过这种无法检查包内数据的威胁。单个服务器无法承载过多的访问量因此需要分布式架构即多个服务器来分担流量此时需要一个机制来分配客户端的请求。可通过DNS或者负载均衡器方式来分配请求。缓存服务器通过缓存一些数据同样可以分担流量但是Web运营者弄缓存服务器的代价高。厂商来部署缓存服务器并租借给Web服务器运营者称为内容分发服务。部署好缓存服务器后最重要的是如何分配用户请求一般要选择离客户端最近的服务器因此如何判断客户端 到各个缓存服务器的距离很重要有DNS扩展或者重定向等方法。另外还需要及时更新缓存服务器保证数据的同步。 5.1 Web服务器的部署地点
如果客户端都可以直接访问服务器那么服务器相当于在裸奔容易受到攻击防火墙可以先检查包再转发包。
Web服务器既可以部署在公司内部如下图a和b也可以部署在运营商的数据中心如c。数据中心是与运营商核心部分NOC直接连接的或者是与运营商之间的枢纽IX直接连接的可以提高访问速度。 5.2 防火墙的结构和原理
防火墙的基本思路是只允许发往特定服务器中的特定应用程序的包通过然后屏蔽其他的包。
但是如何设置包过滤规则呢
IP过滤可以先根据接收方和发送方地址判断包的流向并设置是允许还是阻止。
通过端口过滤应用程序包要限定某个应用程序时可以在判断条件中加上TCP头部或者UDP头部中的端口号。当包的接收方IP地址为Web服务器地址且接收方端口号为80时允许这些包通过图5.2中表的第1行或者当包的发送方IP地址为Web服务器地址且发送方端口号为80时允许这些包通过图5.2中的表的第3行。
通过控制位判断连接方向TCP在执行连接操作时需要收发3个包其中第一个包的TCP控制位中SYN为1而ACK为0。其他的包中这些值都不同因此只要按照这个规则就能够过滤到TCP连接的第一个包。如果这第一个包是从Web服务器发往互联网的那么我们就阻止它图5.2表中的第2行。这样设置之后当然也不会收到对方返回的第二个响应包TCP连接操作就失败了。
公司内网访问公开区域我们不仅要设置互联网和公开区域之间的包过滤规则还需要设置公司内网和互联网之间或者公司内网与公开区域之间的包过滤规则
包过滤方式的防火墙不仅可以允许或者阻止网络包的通过还具备地址转换功能。当使用地址转换时默认状态下是无法从互联网访问公司内网的。
包过滤方式的防火墙可根据接收方IP地址、发送方IP地址、接收方端口号、发送方端口号、控制位等信息来判断是否允许某个包通过。
防火墙可以根据包的起点和终点来判断是否允许包通过但这样并不能筛选出所有有风险的包。如包中包中含有特定数据会使服务器宕机。应对方式有两种一是修复Bug防止宕机二是在防火墙之外部署用来检查包的内容并阻止有害包的设备或软件。
5.3服务器负载平衡
当很多用户同时访问时无论服务器的性能再好仅靠一台服务器还是难以胜任的。在这种情况下使用多台服务器来分担负载的方法更有效这种成为分布式架构。若部署多个服务器从而减轻每个服务器的访问量需要一套机制将客户端发送的请求分配到每台服务器上。
1.通过DNS服务器来分配。当访问服务器时客户端需要先向DNS服务器查询服务器的IP地址如果在DNS服务器中填写多个名称相同的记录则每次查询时DNS服务器都会按顺序返回不同的IP地址。
缺点是若一台Web服务器出现了故障这时希望在返回IP地址时能够跳过故障的Web服务器然而普通的DNS服务器并不能确认Web服务器是否正常工作。
此外轮询分配还可能会引发一些问题。在通过CGI等方式动态生成网页的情况下有些操作是要跨多个页面的如果这期间访问的服务器发生了变化这个操作就可能无法继续。
2.使用负载均衡器。首先要用负载均衡器的IP地址代替Web服务器的实际地址注册到DNS服务器上,假设有一个域名www.lab.glasscom.com我们将这个域名对应的IP地址设置为负载均衡器的IP地址并注册到DNS服务器上。于是客户端会认为负载均衡器就是一台Web服务器并向其发送请求然后由负载均衡器来判断将请求转发给哪台Web服务器. 负载均衡器可以定期采集Web服务器的CPU、内存使用率并根据这些数据判断服务器的负载状况也可以向Web服务器发送测试包根据响应所需的时间来判断负载状况。
对于有关联性的请求可以在发送表单数据时在里面加上用来表示关联的信息。或者对HTTP规格进行扩展在HTTP头部字段中加上用来判断相关性的信息。这样负载均衡器就可以通过这些信息来作出判断将一系列相关的请求发送到同一台Web服务器对于不相关的请求则发送到负载较低的服务器了。
5.4 缓存服务器分担负载
将整个系统按功能分成不同的服务器如Web服务器、数据库服务器。缓存服务器就是一种按功能来分担负载的方法。
缓存服务器是一台通过代理机制对数据进行缓存的服务器。代理介于Web服务器和客户端之间具有对Web服务器访问进行中转的功能。当进行中转时它可以将Web服务器返回的数据保存在磁盘中并可以代替Web服务器将磁盘中的数据返回给客户端。这种保存的数据称为缓存缓存服务器指的也就是这样的功能。不过Web服务器更新了数据会造成缓存不可用。 正向代理反向代理和透明代理不详细讲。
5.5 内容分发服务
缓存服务器放在放在服务器之前易于管理但是无法减少网络流量放在客户端可减少网络流量但是无法管理放在网络边缘可以达到均衡。 一些厂商来部署缓存服务器并租借给Web服务器运营者。这种服务称为内容分发服务。提供这种服务的厂商称为CDSPcontent delivery service provider), 缓存服务器可以缓存多个网站的数据因此CDSP的缓存服务器就可以提供给多个Web服务器的运营者共享,从而降低了成本。
在使用内容分发服务时互联网中有很多缓存服务器如何才能从这些服务器中找到离客户端最近的一个并让客户端去访问那台服务器呢
对DNS服务器进行扩展作为准备需要事先从缓存服务器部署地点的路由器收集路由信息图5.13。DNS服务器根据路由表查询从本机到DNS查询消息的发送方也就是客户端DNS服务器的路由信息。例如根据图5.13路由器A的路由表可以查出路由器A到客户端DNS服务器的路由。通过互联网内部的路由表中的路由信息可以知道先通过运营商X然后通过运营商Y最后到达运营商Z这样的信息通过这样的信息可以大致估算出距离。依次查询所有路由器的路由表之后我们就可以通过比较找出哪一台路由器距离客户端DNS服务器最近。提供路由表的路由器位于缓存服务器的位置而客户端DNS服务器也应该和客户端在同一位置这样就等于估算出了缓存服务器与客户端之间的距离从而能够判断出哪台缓存服务器距离客户端最近了。 重定向服务器分配访问目标
HTTP规格中定义了很多头部字段其中有一个叫作Location的字段。当Web服务器数据转移到其他服务器时可以使用这个字段它的意思是“您要访问的数据在另一台服务器上请访问那台服务器吧。”这种将客户端访问引导到另一台Web服务器的操作称为重定向通过这种方法也可以将访问目标分配到最近的缓存服务器。
对DNS服务器进行扩展的方法是估算客户端DNS服务器到缓存服务器之间的距离因此精度较差相对而言重定向的方法是根据客户端发送来的HTTP消息的发送方IP地址来估算距离的因此精度较高。
缓存的更新方法
让Web服务器在原始数据发生更新时立即通知缓存服务器使得缓存服务器上的数据一直保持最新状态这样就不需要每次确认原始数据是否有变化了而且从第一次访问就可以发挥缓存的效果。内容分发服务采用的缓存服务器就具备这样的功能。