作为Web服务器,Nginx处理静态文件、索引文件,自动索引的效率非常高。作为代理服务器,Nginx可以实现无缓存的反向代理加速,提高网站运行速度。作为负载均衡服务器,Nginx既可以在内部直接支持Rails和PHP,也可以支持HTTP代理服务器对外进行服务,同时还支持简单的容错和利用算法进行负载均衡。在性能方面,Nginx是专门为性能优化而开发的,在实现上非常注重效率。它采用内核Poll模型,可以支持更多的并发连接,*大可以支持对50000个并发连接数的响应,而且只占用很低的内存资源。
在稳定性方面,Nginx采取了分阶段资源分配技术,使得CPU与内存的占用率非常低。Nginx官方表示,Nginx保持10000个没有活动的连接,而这些连接只占用2.5MB内存,因此,类似DOS这样的攻击对Nginx来说基本上是没有任何作用的。
在高可用性方面,Nginx支持热部署,启动速度特别迅速,因此可以在不间断服务的情况下,对软件版本或者配置进行升级,即使运行数月也无需重新启动,几乎可以做到7X24小时不间断地运行。
1.3 Nginx的模块与工作原理
Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个locationblock(10cation是Nginx配置中的一个指令,用于URL匹配),而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。
Nginx的模块从结构上分为核心模块、基础模块和第三方模块,HTTP模块、EVENT模块和MAIL模块等属于核心模块,HTTPAccess模块、HTTP FastCGI模块、HTTP Proxy模块和H了了P Rewrite模块属于基础模块,而H77PUpstream Request I-hsh模块、Notice模块和H了7P AccessKey模块属于第三方模块,用户根据自己的需要开发的模块都属于第二方模块。正是有了这么多模块的支撑,Nginx的功能才会如此強大。
Nginx的模块从功能上分为如下三类。
Handlers(处理器模块)。此类模块直接处理请求,并进行输出内容和修改headers信息等操作。Hand...