nginx的概念
niginx是一款自由的、开源的、高性能HTTP服务器和反向代理服务器;也是一个IMAP、POP3、SMTP代理服务器;也就是说Nginx本身就可以托管网站(类似于Tomcat一样),进行Http服务处理,也可以作为反向代理服务器使用。
代理服务器一般指局域网内部的机器通过代理服务器发送请求到互联网上的服务器,代理服务器一般作用在客户端。
正向代理
我们的客户端在进行翻墙操作的时候,我们使用的正是正向代理,通过正向代理的方式,在我们的客户端运行一个软件,将我们的HTTP请求转发到其他不同的服务器端,实现请求的分发。
反向代理
反向代理服务器作用在服务器端,它在服务器端接收客户端的请求,然后将请求分发给具体的服务器进行处理,然后再将服务器的相应结果反馈给客户端。Nginx就是一个反向代理服务器软件。
服务器的类型:
1、Web服务器:提供Http的访问,例如Nginx、Apache、IIS等,虽然Tomcat也能够实现,但这并不是他的主要功能,而且性能也远不如专门的Web服务器;
2、应用程序服务器:能够用于应用程序的运行;
3、代理服务器:代理服务器通常是客户端访问的一种行为,在整个客户端访问服务器的过程中有着重要的作用;
4、反向代理
5、后台服务器
6、CDN缓存服务器:它是缓存服务器的角色,而且是反向代理的应用,在网站部署的时候,他算是一种策略,对于远距离访问的解决方案。
Nginx的特点
Ø 跨平台:可以在大多数Unix like 系统编译运行。而且也有Windows的移植版本。
Ø 配置异常简单:非常的简单,易上手。
Ø 非阻塞、高并发连接:数据复制时,磁盘I/O的第一阶段是非阻塞的。官方测试能支持5万并发连接,实际生产中能跑2~3万并发连接数(得益于Nginx采用了最新的epoll事件处理模型(消息队列)。
Ø Nginx代理和后端Web服务器间无需长连接;
Ø Nginx接收用户请求是异步的,即先将用户请求全部接收下来,再一次性发送到后端Web服务器,极大减轻后端Web服务器的压力。
Ø 发送响应报文时,是边接收来自后端Web服务器的数据,边发送给客户端。
Ø 网络依赖性低,理论上只要能够ping通就可以实施负载均衡,而且可以有效区分内网、外网流量。
Ø 支持内置服务器检测。Nginx能够根据应用服务器处理页面返回的状态码、超时信息等检测服务器是否出现故障,并及时返回错误的请求重新提交到其它节点上。
Ø 采用Master/worker多进程工作模式
Ø 此外还有内存消耗小、成本低廉(比F5硬件负载均衡器廉价太多)、节省带宽、稳定性高等特点。
Nginx的基本模块
Nginx的核心模块包括内核模块和事件驱动模块,即:CoreModule和EventsModule;另外还有第三方模块 HTTP内核模块,HttpCoreModule,它是Nginx服务器的核心模块。
CoreModule和EventsModule模块的配置相对于HttpCoreModule会少一些,但是它们的配置将会影响系统的性能,而非功能上的差异。
1、CoreModule用于控制Nginx服务器的基本功能;
2、EventsModule用于控制Nginx如何处理连接。该模块的指令的一些参数会对应用系统的性能产生重要的影响;
3、HttpCoreModule提供HTTP访问Nginx服务器,该模块是不能缺少的。
网友评论