5.12、服务器架构

2017年12月04日 09:02 | 2350次浏览 作者原创 版权保护

简单的情况

Web服务器位于整个网站的最前端,它接受客户端的HTTP请求,并作出应答,如图所示:

流行的Web服务器有Apache HTTP ServerNginx,以及微软的IIS等。另外,有一些Web编程技术依赖于特定的Web服务器,如前面提到的Java Servlet须要运行在Servlet容器,如Aapche Tomcat,中;Node.js应用内建Web服务器。


负载均衡

对一个请求繁忙的网站来说,一个Web服务器可能是不够的;它往往有一组Web服务器,通过某种负载均衡技术组合起来,共同对外提供Web服务,如图所示:

负载均衡器(Load Balancer)接受来自用户的HTTP请求,并把它转发给内部的Web服务器。

知名的负载均衡器有HAProxy等。另外,Apache HTTP Server和Nginx等Web服务器也可以配置为负载均衡器使用。

需要说明的是,负载均衡器实际上是一种Web反向代理(Reverse Proxy)。反向代理不仅可以做负载均衡,还可以做Web缓存,或称之为Web加速器(Web Accelerator)——它可以缓存那些动态生成的页面,用以响应对这些页面的请求,从而加速网站访问。知名的Web加速器有Varnish等。另外,有些负载均衡器也有加速功能,比如Nginx(这是一种多功能的Web服务器)。


高可用性

少数网站有高可用性(High Availability)的要求,它要求网站在任何一个节点(如Web服务器、负载均衡器等)失效的情况下仍然可以正常工作。这须要对每个节点做冗余(redundency),并且在发生故障时自动切换故障节点,如图所示:

其中,“DNS解析”部分是这种架构的关键:它把一个域名,如www.example.com,指向到多个不同的IP——在本例中对应着不同的负载均衡器。浏览器会依次向这些IP发出请求,直到一个有效的节点。这种技术又称为Round Robin DNS1。

Round Robin DNS是一个有争议的HA技术,由于TTL的存在,故障切换不是“即时”发生的。但是即时性更好的DNS解析技术往往需要更大的代价,或者依赖服务器供应商提供的专有技术,如Digital Ocean的Floating IP



小说《我是全球混乱的源头》
此文章本站原创,地址 https://www.vxzsk.com/1571.html   转载请注明出处!谢谢!

感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程


上一篇:5.11、RESTful Web API 下一篇:5.13、Web缓存
^