我們今天開始對Nginx的學習,本來是打算第一篇就是基礎知識介紹的,但是我感覺在學習一個新知識之前總應該知道,我們為什么要學習它,學習它的意義何在吧!所以我加了背景這一篇作為Nginx開始學習的標志。
1、Nginx的誕生
我們在了解Nginx之前,首先要了解一下當今最為主流的服務器Apache。距離Apache的誕生和發展許久,現在Apache是毫無爭議的世界第一大服務器,它有著:穩定、開源、跨平臺等等很多優點。它的設計理念是快速與可靠,是重量級的服務器。
但是它興起的年代,互聯網產業的發展遠遠比不上現在,這就使得它的問題逐漸開始顯現。它不支持高并發的服務器。在Apache上運行數以萬計的并發訪問,會導致服務器消耗大量內存。操作系統對其進行進程或線程間的切換也消耗了大量的CPU資源,導致HTTP請求的平均響應速度降低。這些就決定了Apache在某些情況下無法成為高性能WEB服務器,于是輕量級高并發服務器Nginx就應運而生了。
俄羅斯的工程師Igor Sysoev,他在為Rambler Media工作期間,使用C語言開發了Nginx。Nginx作為WEB服務器一直為Rambler Media提供出色而又穩定的服務。
然后呢,Igor Sysoev將Nginx代碼開源,并且賦予自由軟件許可證。
由于:
- Nginx使用基于事件驅動架構,使得其可以支持數以百萬級別的TCP連接
- 高度的模塊化和自由軟件許可證使得第三方模塊層出不窮(這是個開源的時代啊~)
- Nginx是一個跨平臺服務器,可以運行在Linux,Windows,FreeBSD,Solaris,AIX,Mac OS等操作系統上
- 這些優秀的設計帶來的是極大的穩定性
所以Nginx在Apache面前也有了搏一搏的手段!
PS:在我看來Nginx雖然有著我們需要的便捷與性能,但是并不說明在總體實力上可以和Apache旗鼓相當,還是會有些差距的!!畢竟APache才是現在的主流,是毫無爭議的世界第一大服務器。。