前言

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

nginx的起源

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

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

C10K

单台服务器要同时支持并发 10K 量级的连接,这些连接可能是保持存活状态的。

apache的介绍

  为什么要介绍apache呢,是因为apache也是著名的web应用之一,并且在之前的岁月中,几乎是碾压web全场,虽然nginx后来者居上,但是还是要了解一下。

  Apache HTTP服务器是 Robert McCool 在1995年写成,并在1999年开始在Apache软件基金会的 框架下进行开发。由于Apache HTTP服务器是基金会最开始的一个项目也是最为有名的一个项目, 所以通常大家提到Apache这个词都是说的Apache HTTP Server。

  Apache web服务器从1996年开始就是互联网上最为流行的HTTP服务器。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/

最新文章

  1. Linux 常识
  2. yii笔一----基础,安装,结构,增删改查基本操作
  3. The file “base.app” couldn’t be opened because you don’t have permission to view it.
  4. PPP协议
  5. 跨域请求ajax jsonp的使用解惑
  6. LaTeX_fleqn参数时,多行公式对齐居中的同时选择性的加编号
  7. Node.js GET/POST请求
  8. CSS实例
  9. 【Effective Java】1、静态工厂的方式代替构造函数
  10. ROS
  11. ACE_linux:任务 & 命令(Task and Command)
  12. Merkaartor,Marble,QGIS等等
  13. Java多线程编程核心技术(二)对象及变量的并发访问
  14. ES06--elasticsearch
  15. bzoj2763: [JLOI2011]飞行路线 最短路
  16. DB2锁机制
  17. linux 中 ll 命令显示 的大小 是什么单位的啊?
  18. JVM原理及内存结构
  19. C# 为什么用接口实例化一个实现该接口的类?
  20. 基础10 多进程、协程(multiprocessing、greenlet、gevent、gevent.monkey、select、selector)

热门文章

  1. 谷歌浏览器不能播放audio 报错Uncaught (in promise) DOMException
  2. 对QT中QBitArray类进行简单剖析
  3. 洛谷p1119--灾难后重建(Floyd不仅仅是板子)
  4. linux solr7.2+tomcat8 详细部署整合
  5. 「CH2601」 电路维修 解题报告
  6. 钱包开发经验分享:ETH篇
  7. 小小知识点(二十六)关于5G发展的28个核心问题,来自华为内部的深度解读
  8. Theia APIs——命令和快捷键
  9. Flutter 不能热加载,热重载按钮灰色,无法点击,flutter doctor 显示NO_PROXY is not set
  10. C#调用Matlab生成的Dll