Nginx是什么

  Nginx和Apache、Lighttpd、Tomcat、Jetty、IIS一样,它们都是Web服务器,或者叫做WWW(World Wide Web)服务器,相应地也都具备Web服务器的基本功能:基于REST架构风格,以统一资源描述符(UniformResource Identifier,URI)或者统一资源定位符(Uniform Resource Locator,URL)作为沟通依据,通过HTTP为浏览器等客户端程序提供各种网络服务。然而,由于这些服务器在设计阶段就收到许多局限,例如当时的互联网用户规模、网络带宽、产品特点等局限,并且各自的定位发展方向都尽不相同,使得每一款Web服务器的特点与应用场合都很鲜明。

  Tomcat和Jetty面向Java语言,先天就是重量级的Web服务器,它的性能跟Nginx没有可比性。

  IIS只能在Windows服务器上运行。Windows作为服务器在稳定性与其他一些性能上都不如类UNIX的操作系统,因此,在需要高性能的Web服务器的场合下,一般不会选择IIS。

  Apache的发展时期很长,而且是目前毫无争议的世界第一大Web服务器。Apache有很多优点,如稳定、开源、跨平台等,但它出现的时间太长了,在它兴起的年代,互联网的产业规模远远比不上今天,所以它被设计成了一个重量级的、不支持高并发的Web服务器。在Apache服务器上,如果有数以万计的并发HTTP请求同时访问,就会导致服务器上消耗大量内存,操作系统内核对成百上千的Apache进程做进程间切换也会消耗大量的CPU资源,并导致HTTP请求的平均响应速度降低,这些都决定了Apache不可能成为高性能的Web服务器,这也促使了Lighttpd和Nginx的出现。

  Lighttpd和Nginx一样,都是轻量级、高性能的Web服务器,欧美的业界开发者比较钟爱Lighttpd,而国内的公司更青睐Nginx,Lighttpd使用的较少。

  Nginx是俄罗斯的Igor Sysoev在为Rambler Media工作期间,使用C语言开发的。Nginx作为Web服务器,一直为俄罗斯著名的网站Rambler Media提供着出色、稳定的服务。

  Igor Sysoev将Nginx的代码开源,并赋予其最自由的2-clause BSD-like license许可证。由于Nginx使用基于事件驱动的架构能够并发处理百万级别的TCP连接,高度模块化的设计和自由的许可证使得扩展Nginx的第三方模块层出不穷,而且优秀的设计带来了极佳的稳定性,因此作为Web服务器被广泛应用到大流量的网站上,包括腾讯、新浪、网易、淘宝等访问量巨大的网站。

  Nginx是一个跨平台的Web服务器,可以运行在Linux、FreeBSD、Solaris、AIX、Mac OS、Windows等操作系统上,并且还可以使用当前操作系统特有的一些高效API来提高自己的性能。例如,对于高效处理大规模并发连接,它支持Linux上的epoll(epoll是Linux上处理大并发网络连接的利器)、Solaris上的event ports和FreeBSD上的kqueue等。又如,对于Linux,Nginx支持其独有的sendfile系统调用,这个系统调用可以高效地把硬件中的数据发送到网络上(不需要先把硬盘数据复制到用户态内存上在发送),这极大减少了内核态与用户态之间的数据复制动作。

  种种迹象表明,Nginx以性能为王。

  2011年7月,Nginx正式成立公司,由Igor Sysoev担任CTO,立足于提供商业及的Web服务器。

 

posted @ 2017-12-19 11:27  StaryJie  阅读(99)  评论(0)    收藏  举报