nginx之历史回溯

前言

nginx是一个web应用及反向代理工具,由一名俄罗斯程序员(Igor)发明的;NGINX是一个免费的,开源的高性能HTTP服务器和反向代理,以及IMAP / POP3代理服务器。 NGINX以其高性能,稳定性,丰富的功能集,简单的配置和低资源消耗而闻名。php

 

nginx的起源

  2002年,一个叫Igor Sysoev的俄罗斯哥们儿(貌似俄罗斯叫Igor的人挺多的) 写出了一个叫Nginx(和Engine X谐音,取引擎之义)。 那时候有一个时代背景,当时C10K(Concurrency 10K,1万并发)问题仍是困扰绝大多数 web服务器的一个难题。Nginx利用异步事件驱动的架构写成,是C10K问题的一个很好的答卷。 Nginx的第一个公开发行版是在2004年发布的,以前都是做为俄罗斯访问量第二的网站Rambler 的内部使用。Nginx的主要优点在于“轻、快、活”:nginx

  • 轻:很低的资源占用,甚至能在不少嵌入式设备上运行。
  • 快:响应速度超快,几乎不会因为高并发影响响应速度。
  • 活:配置灵活,普遍的模块支持。

 

C10K

单台服务器要同时支持并发 10K 量级的链接,这些链接多是保持存活状态的。程序员

 

apache的介绍

  为何要介绍apache呢,是由于apache也是著名的web应用之一,而且在以前的岁月中,几乎是碾压web全场,虽然nginx后来者居上,可是仍是要了解一下。web

  Apache HTTP服务器是 Robert McCool 在1995年写成,并在1999年开始在Apache软件基金会的 框架下进行开发。因为Apache HTTP服务器是基金会最开始的一个项目也是最为有名的一个项目, 因此一般你们提到Apache这个词都是说的Apache HTTP Server。数据库

  Apache web服务器从1996年开始就是互联网上最为流行的HTTP服务器。Apache之因此这么流行 很大程度上是因为相比其余的软件项目,在Apache基金会的精心维护下他的文档十分的详尽还有 集成的支持服务。apache

  Apache因为其可变性、高性能和普遍的支持,常常是系统管理员的首选。他能够经过一系列 的语言相关的扩展模块支持不少解释型语言的后端,而不须要链接一个独立的后端程序。后端

  Apache软件基金会也是利用开源软件盈利的一个范本。时至今日,Apache软件基金会 已经枝繁叶茂,在基金会名下的开源项目咱们耳熟能详的有:服务器

  • Apache HTTP Server
  • Ant(Java的编译工具)
  • ActiveMQ(MQ集群)
  • Cassandra(强一致的分布式KV数据库)
  • CloudStack(OpenStack的劲敌)
  • CouchDB(KV数据库)
  • Flume(日志收集工具)
  • Hadoop、Hbase、Hive
  • Kafka(流式计算)
  • Lucene(开源搜索引擎)
  • Maven(Java编译&依赖管理工具)
  • Mesos(分布式协调)
  • OpenNLP(开源天然语言处理库)
  • OpenOffice(开源的类Office工具)
  • Perl(Perl语言)
  • Spark(分布式计算集群)
  • Storm(流式计算)
  • Struts(Java SSH框架的第二个S)
  • Subversion(SVN,你懂的)
  • Tcl(Tcl语言)
  • Thrift(Java网络框架)
  • Tomcat(大名鼎鼎的Java容器)
  • ZooKeeper(分布式协调集群)

 

apache与nginx比较

网上关于Apache和Nginx性能比较的文章很是多,基本上有以下的定论:网络

  1. Nginx在并发性能上比Apache强不少,若是是纯静态资源(图片、JS、CSS)那么Nginx是不二之选。
  2. Apache有mod_php、在PHP类的应用场景下比Nginx部署起来简单不少。一些老的PHP项目用Apache 来配置运行很是的简单,例如Wordpress。
  3. 对于初学者来讲Apache配置起来很是复杂冗长的类XML语法,甚至支持在子目录放置.htaccess 文件来配置子目录的属性。Nginx的配置文件相对简单一点。
  4. Nginx的模块比较容易写,能够经过写C的mod实现接口性质的服务,而且拥有惊人的性能。 分支OpenResty,能够配合lua来实现不少自定义功能,兼顾扩展性和性能。

 

参考文档架构

https://zhuanlan.zhihu.com/p/20204159

 

https://www.infoq.cn/article/2016/11/Nginx-when-replace-Apache

https://www.csdn.net/article/2013-09-09/2816874-this-russian-software-is-taking-over-the-internet

https://blog.csdn.net/yeasy/article/details/43152115

https://nginx.org/