nginx之历史回溯
前言
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性能比较的文章非常多,基本上有如下的定论:
- Nginx在并发性能上比Apache强很多,如果是纯静态资源(图片、JS、CSS)那么Nginx是不二之选。
- Apache有mod_php、在PHP类的应用场景下比Nginx部署起来简单很多。一些老的PHP项目用Apache 来配置运行非常的简单,例如Wordpress。
- 对于初学者来说Apache配置起来非常复杂冗长的类XML语法,甚至支持在子目录放置.htaccess 文件来配置子目录的属性。Nginx的配置文件相对简单一点。
- 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/
最新文章
- Linux 常识
- yii笔一----基础,安装,结构,增删改查基本操作
- The file “base.app” couldn’t be opened because you don’t have permission to view it.
- PPP协议
- 跨域请求ajax jsonp的使用解惑
- LaTeX_fleqn参数时,多行公式对齐居中的同时选择性的加编号
- Node.js GET/POST请求
- CSS实例
- 【Effective Java】1、静态工厂的方式代替构造函数
- ROS
- ACE_linux:任务 &; 命令(Task and Command)
- Merkaartor,Marble,QGIS等等
- Java多线程编程核心技术(二)对象及变量的并发访问
- ES06--elasticsearch
- bzoj2763: [JLOI2011]飞行路线 最短路
- DB2锁机制
- linux 中 ll 命令显示 的大小 是什么单位的啊?
- JVM原理及内存结构
- C# 为什么用接口实例化一个实现该接口的类?
- 基础10 多进程、协程(multiprocessing、greenlet、gevent、gevent.monkey、select、selector)
热门文章
- 谷歌浏览器不能播放audio 报错Uncaught (in promise) DOMException
- 对QT中QBitArray类进行简单剖析
- 洛谷p1119--灾难后重建(Floyd不仅仅是板子)
- linux solr7.2+tomcat8 详细部署整合
- 「CH2601」 电路维修 解题报告
- 钱包开发经验分享:ETH篇
- 小小知识点(二十六)关于5G发展的28个核心问题,来自华为内部的深度解读
- Theia APIs——命令和快捷键
- Flutter 不能热加载,热重载按钮灰色,无法点击,flutter doctor 显示NO_PROXY is not set
- C#调用Matlab生成的Dll