Nginx基础知识
前言:本片博文,道人会介绍下Nginx的主要作用,地位,主要应用,以及延伸的特点的解释。详细原理,配置文件以及项目中如何使用(范例)会在后续文章中讲到。
一:什么是Nginx?
百度百科解释如下:
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
抓住重点,概括下:
- 高性能的HTTP和反向代理web服务器
- 特点是占有内存少,并发能力强
Nginx的优势?
- 高性能:基于事件驱动架构,使得其可以支持数以百万级别的 TCP 连接;高并发响应性能非常好,官方 Nginx 处理静态文件并发 5w/s。
- 高适用性:跨平台服务器,可以运行在 Linux、Windows、FreeBSD、Solaris、AIX、Mac OS 等操作系统上。
- 开源
- 应用场景广泛:HTTP 服务器、反向代理服务器(负载均衡)以及 IMAP、POP3、SMTP 代理服务器。
二:Nginx基本概念
提到Nginx就无法逃避到其主要的应用方向–反向代理服务器(负载均衡),处理静态文件的效率很高,就涉及到另一种应用–动静分离(或者干脆做为静态服务器来使用)。
1. 正向代理与反向代理
正向代理与反向代理示意图如下
反向代理(Reverse Proxy)实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
上面说的是不是有点扰,下面道人结合上面两图,简单总结下:
- 正向代理:客户端需要明确服务器端(即Server端是透明的);
- 本地的Client端需要进行相关配置,才能通过代理服务器访问服务端。
- Server端透明且Server端并不知道真正发起请求的Client端。
- 反向代理:Client端(透明)无需知道实际的Server端;
- Client端透明且Client端不知道实际提供服务的Server端。
2. 负载均衡与动静分离
负载均衡百度百科上解释
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
道人个人理解的负载均衡是?
- 负载均衡是将请求均匀分发到各操作单元(服务器),防止个别操作单元请求过多,压力过大,从而影响性能乃至宕机。
- 负载均衡的目的:提高了所有操作单元的资源利用效率,整体的数据处理性能;增加了(整个服务)吞吐量;请求压力均匀分布到各操作单元–提高了整个服务的稳定性。
动静分离
道人这里就简单概括下。
- 动静分离中的动静指的是请求的类型,动静分别表示者动态请求和静态请求。
- 动态请求:可以理解为动态页面的请求,当然动态请求实际应该是动态资源请求,这里方便理解一些基础概念,就使用动态页面请求来说明。常见的动态页面技术–JSP,ASP,PHP等。
- 静态请求:静态资源请求,包括静态页面(HTML),图片等本地文件,JS,CSS等。
- 动静分离的好处? 道人个人理解,是为了资源的分类管理,同时针对动态资源、静态资源采用不同的处理方式,提高资源的处理效率(Nginx在静态资源响应上,性能很高,官网表示每秒能承受5万静态请求的并发,Nginx服务器的某个应用方向也包括当做静态服务器来使用)。
各位道友,都看到这了,如果有收获,点个赞呗。