前言
以前的nginx总结的概念!
正文
来看下百度的概念:
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。
其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
实际上现在nginx已经是一个功能加载器了,有很多开发者在其中加载新的东西。
nginx 对于我们开发人员就是一个工具,因为我们是工具人。
好吧,看下nginx有啥作用。
正向代理与反向代理
nginx 做为服务器一般是反向代码来看下代理的东西吧。
正向代理
看下概念:
正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,
客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。
客户端才能使用正向代理。
来上图:
这个www.google.com 就是原始服务器。
假如这时候我用火狐去访问,火狐就作为客户端。那么这时候发现不能访问了怎么办呢?
这时候就需要代理服务器了,好吧。比如这时候你开了代理1080端口,那么我们这时候通过1080端口就会去访问到我们的代理服务器,然后代理服务器去访问原始服务器了。
反向代理
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。
同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率
我们知道我们去访问百度这个网址的时候呢,会去访问百度的目标服务器。
但是难道百度就是一台服务器吗?肯定不是的。
但是我们访问的就是www.baidu.com啊。
好吧,这时候呢,百度通过代理服务器,然后去转发代理请求到各个服务器,这样就是反向代理了。
好了之所以叫正向反向看我的图红色位置。
负载均衡
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
还是上面这张图,加入有100个请求,现在代理服务器给他们每个分25个这个时候是不是负载均衡了呢?
是的,原本需要一台服务器的,现在多台来承担,这个又叫横向扩展,当然负载均衡的方式太多了,后面专门系列中会出现的。
动静分离
这个是什么意思呢?什么是静,这个静指的是我们的静态资源,如图片,html等其他的,其他的就是动了。
看下官方:
动静分离是指在web服务器架构中,将静态页面与动态页面或者静态内容接口和动态内容接口分开不同系统访问的架构设计方法,进而提升整个服务访问性能和可维护性。
那么怎么动静分离呢?
这其实是本身是均衡负载的一种哈。好处很很多哈,一个就是动态资源关注的是cpu,静态资源关注的是内存和io。