上一节,我们学习了linux下文件服务器NFS的搭建,了解了他的基本原理。可以说也是很简单的一个服务。今天我们学习影响互联网最重要服务web服务(应用服务)。什么是web服务呢?就是我们平常在浏览器输入一个网站的地址,然后能给我们提供服务的就是web服务器。Web服务器的发展历史我就不多说了,我直接说下现在流行的搭建这种服务的常用软件。在Linux下比较常用的有三种分别是apache软件,tomcat软件,nginx软件。这三款是我在工作都接触过的,当然还有别的,其原理都是一样的,在这里我就不多说了。
Web服务器的工作原理前面我已经讲过了就是三次握手。那我们前面都已经讲过了,今天讲什么呢?今天我们讲解下Web服务架构的演变。
网站我们常听说有静态网站和动态网站,那什么是静态网站和动态网站呢?官方的回答我就不引用了,我说下我的理解,有数据库的网站就是动态网站,没有数据库的就是静态网站。他们之间的区别是什么呢?看下面
静态网站
1、 静态网页是以.htm、.html、.shtml、.xml等为后缀的
2、 静态网页的内容相对稳定,因此容易被搜索引擎检索;
3、 静态网页的交互性较差,在功能方面有较大的限制
4、 静态网页是实实在在保存在服务器上的文件,每个网页都是一个独立的文件;
5、 静态网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作方式比较困难。
动态网站
1、 采用动态网页技术的网站可以实现更多的功能,如用户注册、用户登录、在线调查、用户管理、订单管理等等;
2、 动态网页以数据库技术为基础,可以大大降低网站维护的工作量;
3、 动态网页实际上并不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页。
在网站开始之初只有静态网站,后来才衍生出了动态网站,对于动静态网页最简单的最直接的判断就是看网址的后缀。
网站的初期,我们经常会在一台服务器上跑我们所有的程序和软件包括数据库。
但随着网站的上线,访问量逐步上升,服务器的负载慢慢提高,在服务器还没有超载的时候,我们应该就要做好准备,提升网站的负载能力。假如我们 代码层面已难以优化,在不提高单台机器的性能的情况下,增加机器是一个不错的方式,不仅可以有效地提高系统的负载能力,而且性价比高。
增加的机器用来做什么呢?此时我们可以把数据库,web服务器拆分开来,这样不仅提高了单台机器的负载能力,也提高了容灾能力。
随着访问量继续增加,单台应用服务器已经无法满足需求了。在假设数据库服务器没有压力的情况下,我们可以把应用服务器从一台变成了两台甚至多台,把用户的请求分散到不同的服务器中,从而提高负载能力。多台应用服务器之间没有直接的交互,他们都是依赖数据库各自对外提供服务。这时有负载均衡方案和高可用方案。
注释:高可用方案指的是当一个web服务器宕机了,另一台会自动接管。
注释:负载均衡方案是当访问用户多了,负载均衡器把任务分配到不同Web服务器上
上面我们总是假设数据库负载正常,但随着访问量的的提高,数据库的负载也在慢慢增大。那么可能有人马上就想到跟应用服务器一样,把数据库一份为二再负载均衡即可。但对于数据库来说,并没有那么简单。假如我们简单的把数据库一分为二,然后对于数据库的请求,分别负载到A机器和B机器,那么显而 易见会造成两台数据库数据不统一的问题。那么对于这种情况,我们可以先考虑使用读写分离的方式。
读写分离后的数据库系统结构如下: