1、Nginx简介
1.1 什么是Nginx
-
Nginx(发音同engine x)是一款由俄罗斯程序员lgor Ssoev所开发轻量级的网页服务器、反向代理服务器以及电子邮件(IMAP/POP3)代理服务器。起初是供俄国大型的门户网站及搜索引Rambler(俄语: Pamnep)使用。此软件BSD-like协议下发以在UNIX、GNU/Linux、BSD、Mac osX、Solaris,以及Microsoft Windows等操作系统中运行。
-
Nginx 因具有高并发(特别是静态资源)、 占用系统资源少等特性,目功能丰富而逐渐流行起来。在功能应用方面,Nginx 不但是一个优秀的 Web 服务软件,还具有反向代理负载均衡功能和缓存服务功能。
-
Nginx 的官方介绍见 nginx news
1.2 Nginx 相比 Apache 有以下优势
-
高并发处理能力: Nginx 是自称为高性能的 Web 服务器,能够处理大量并发连接。在高并发的情况下,Nginx 比 Apache 更加稳定和高效。
-
更少的资源占用: Nginx 的内存占用更少,可以在低内存的环境下运行,而 Apache 则需要更多的内存资源。
-
更强大的反向代理和负载均衡功能: Nginx 作为反向代理和负载均衡服务器的功能更强大,特别是在高并发的情况下表现得更好。
-
配置简单、易上手: Nginx 的配置文件相对来说比较简单,易于维护和管理,而 Apache 的配置文件则相对来说比较复杂。
1.3 Nginx关键特性
-
支持高并发:单机Nginx可支持十万级的并发连接,经过优化后可最高支持百万级并发连接。
-
内存资源消耗低:在同级web服务器中,Nginx占用的内存最少,一万非活跃的httpkeep-alive连接仅消耗2.5M内存。
-
高扩展性:和Apache一样,Nginx采用模块化设计,并支持非常丰富的第三方模块。
-
高可靠性:Nginx采用master-worker模式,如果worker出现故障,master可以快速开启一个新的worker来提供服务。
1.4 Nginx的模块与工作原理
-
Nginx的模块可以分为核心模块、基础模块和第三方模块。核心模块包括HTTP模块、EVENT模块和MAIL模块,它们负责构建Nginx的基础服务和管理其他模块。基础模块如HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块和HTTP Rewrite模块等,提供了处理HTTP请求的基本功能。第三方模块则是用户根据自己的需求开发的模块,例如HTTP Upstream Request Hash模块、Notice模块和HTTP Access Key模块等。
-
Ng