本章重要介绍 Nginx的配置管理和应用。作为一个轻量级的HITP服务器, Nginx与 Apache相比有以下优势:在性能上,它占用很少的系统资源,能支撑更多的并发连接,达到更高的访问效率;在功效上, Nginx是优良的代理服务器和负载均衡服务器;在安装配置上, Nginx安装简略、配置机动。下面就详细介绍 Nginx的配置与应用。
1.什么是 Nginx
信任很多读者都对 Apache非常熟悉, Nginx与 Apache类似,也是款高性能的HIIP和反向代理服务器软件,还是一个IMAP/POP3SMTP代理服务器。 Nginx(发音是“ engine x”)由俄罗斯的程序设计师 Igor Sysoev开发(Igor将源代码以类BSD允许证的情势发布),可以运行在UNIX、GNU/ Linux、BSD、 Mac OS X、 Solaris以及 Micro-soft Windows等操作系统中。随着 Nginx在很多大型网站的广泛应用,其稳固、高效的特征逐渐被越来越多的用户认可。
2.选择 Nginx的优势所在
通过上面的简略介绍,可以看出, Nginx作为HTP服务器的优势是显而易见的,它有很多其他Web服务器无法比较的性能和优势。
作为Web服务器, Nginx处理静态文件、索引文件,主动索引的效率非常高。作为代理服务器, Nginx可以实现无缓存的反向代理加速,进步网站运行速度。
作为负载均衡服务器, Nginx既可以在内部直接支撑 Rails和PHP,也可以支撑HITP代理服务器对外进行服务,同时还支撑简略的容错和利用算法进行负载均衡。
在性能方面, Nginx是专门为性能优化而开发的,在实现上非常重视效率。它采用内核Pol模型,可以支撑更多的并发连接,最大可以支撑对50000个并发连接数的响应,而且只占用很低的内存资源。
在稳固性方面, Nginx采用了分阶段资源分配技巧,使得CPU与内存的占用率非常低。 Nginx官方表现, Nginx保持10000个没有运动的连接,而这些连接只占用2.5MB内存,因此,类似DOS这样的攻击对Nginx来说基础上是没有任何作用的。
在高可用性方面, Nginx支撑热安排,启动速度特别迅速,因此可以在不间断服务的情况下,对软件版本或者配置进行升级,即使运行数月也无需重新启动,几乎可以做到7×x24小时不间断地运行。
3.Nginx的模块与工作原理
Nginx由内核和模块组成,其中,内核的设计非常渺小和简洁,完成的工作也非常简略,仅仅通过查找配置文件将客户端恳求映射到一个lo-cation block( location是 Nginx配置中的一个指令,用于URL匹配),而在这个 location中所配置的每个指令将会启动不同的模块去完成相应的工作。
Nginx的模块从结构上分为核心模块、基础模块和第三方模块HTTP模块、EVENT模块和MAL模块等属于核心模块,HIPAccess模块、HTTPFASTCGII模块、HTTPProxy模块和HTTPRewrite模块属于基础模块,而HTTPUpstreamRequestHash模块、Notice模块和HTTPAccessKey模块属于第三方模块,用户根据自己的需要开发的模块都属于第三方模块。正是有了这么多模块的支撑, Nginx的功效才会如此壮大。
Nginx的模块从功效上分为如下三类。
Handlers(处理器模块)。此类模块直接处理恳求,并进行输出内容和修正 headers信息等操作。 Handlers处理器模块一般只能有一个。
Filters(过滤器模块)。此类模块重要对其他处理器模块输出的内容进行修正操作,最后由 Nginx输出。
Proxies(代理类模块)。此类模块是Nginx的HTTPUpstream之类的模块,这些模块重要与后端一些服务比如 Fastcgi等进行交互,实现服务代理和负載均衡等功效。图1-1展现了 Nginx模块惯例的HTP恳求和响应的过程。
在工作方法上, Nginx分为单工作过程和多工作过程两种模式。在单工作过程模式下,除主过程外,还有一个工作过程,工作过程是单线程的;在多工作过程模式下,每个工作过程包含多个线程。 Nginx默认为单工作过程模式。
Nginx的模块直接被编译进 Nginx,因此属于静态编译方法。启动Nginx后, Nginx的模块被主动加载,不像 Apache,首先将模块编译为个so文件,然后在配置文件中指定是不是进行加。在解析配置文件时, Nginx的每个模块都有可能去处理某个恳求,但是同一个处理恳求只能由一个模块来完成。
TikTok千粉号购买平台:https://tiktokusername.com/
TOP