1。Nginx简介Nginx是俄罗斯人编写的一个非常轻量级的HTTP服务器。Nginx,读作“engineX”,是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Nginx以稳定、丰富的模块库、灵活的配置和低系统资源消耗着称。业界一致认为它是Apache2.2+mod_proxy_balancer的轻量级替代品,不仅因为对静态页面的响应速度非常快,而且它的模块数量是Apache的近2/3。对proxy和rewrite模块的支持非常彻底,同时也支持mod_fcgi、ssl、vhosts,适用于mongrel集群的前端HTTP响应。目前,Nginx被国内多家大型企业所采用,渗透率逐年上升。选择Nginx的原因也很简单:第一,它可以支持5W的高并发连接;其次,它消耗更少的内存;第三,成本低。Nginx在架构中扮演的角色:网关---客户的总入口。虚拟主机---一台机器为不同的域名/ip/端口提供服务路由---使用反向代理将后续服务整合成一个完整的业务静态服务器---mvvm模式下,用于发布前端-endhtml/css/js/imgloadcluster---使用upstream,加载多个tomcat二、Nginx特性与其他web服务器相比,Nginx的特性:1、速度快nginx利用预读、连接池、内存池等技术来使单个HTTP请求更快。2、可扩展性好。Nginx的结构是“核心+模块”的结构。Nginx本身是Epool或Kqueue的事件处理分发架构。后面会讲到模块知识。3、高可靠性Nginx的核心是由一个轻型任务管理进程(masterprocess)和若干个worker进程(workerprocesses)组成。特定的HTTP请求在工作进程中进行负载平衡。如果一个worker进程异常终止,管理进程会迅速重启一个新的worker进程来接管该进程。4.内存占用低一般情况下,10,000个不活跃的HTTP保活连接只占用2.5MB内存。ngx_lua每扩展10000个连接只占用2.xMB内存。5、万级以上场合部署高并发能力。Nginx全异步非阻塞I/O的思想在core、modules、ngx_lua模块中实现。无论是自己实现的模块还是通过lua实现的脚本代码,都是非阻塞高速运行。6、热部署由于Nginx的管理流程和工作流程是分开设计的,所以可以实现热部署功能。即升级可执行程序,更新配置文件,更新日志,系统不中断。7.开源3.Nginx架构设计高度模块化的设计是Nginx的架构基础。Nginx服务器被分解成多个模块,每个模块都是一个功能模块,只负责自己的功能,模块之间严格遵循“高内聚、低耦合”的原则。Nginx模块图核心模块核心模块是Nginx服务器正常运行不可或缺的模块,提供错误日志记录、配置文件解析、事件驱动机制、进程管理等核心功能。标准HTTP模块标准HTTP模块提供HTTP协议解析相关功能,如:端口配置、网页编码设置、HTTP响应头设置等可选HTTP模块可选HTTP模块主要用于扩展标准HTTP功能,所以Nginx可以处理一些特殊的服务,比如:Flash多媒体传输,解析GeoIP请求,SSL支持等邮件服务模块邮件服务模块主要用来支持Nginx的邮件服务,包括对POP3协议、IMAP协议和SMTP的支持协议。第三方模块第三方模块是对Nginx服务端应用进行扩展,完成开发者自定义功能,如:Json支持,Lua支持等。
