1.1 一个简单的web服务器
在日常的后端开发工作中,我们常常使用apache作为后端的应用服务器:
1.2 高并发情况下的web服务器
随着用户访问量的增加,应用服务器的QPS(每秒用户查询量)达到瓶颈,我们考虑搭建应用服务器集群和数据库集群。这时候Nginx的作用就体现出来了,它可以将不同用户的请求按照一定的算法分发到不同的应用服务器中:
我们把这种请求分发的功能叫做反向代理(代理应用服务器接收用户的请求)
1.3 页面加载迅速的web服务器
用户访问一个网站,往往需要加载各种不同的页面。这实际上就是把不同的CSS文件、Javascript文件、图片等静态的文件传输到了浏览器,让其解析并最终呈现在用户的浏览器上。这些文件往往是固定不变的,不需要频繁修改的,我们称它为静态文件。既然是不需要修改的文件,我们可不可以把它从应用服务器分离出来单独放在缓存里呢?这样每次用户直接读缓存就可以刷出页面了,不再需要访问应用服务器,大大加快了页面加载的速度。很显然,nginx服务器也可以缓存各种静态页面: