什麼是Nginx? 前端
Nginx (engine x) 是一個高性能的HTTP和反向代理web服務器,同時也提供了IMAP/POP3/SMTP服務。Nginx是由伊戈爾·賽索耶夫爲俄羅斯訪問量第二的Rambler.ru站點(俄文:Рамблер)開發的,第一個公開版本0.1.0發佈於2004年10月4日。其將源代碼以類BSD許可證的形式發佈,因它的穩定性、豐富的功能集、示例配置文件和低系統資源的消耗而聞名。2011年6月1日,nginx 1.0.4發佈。nginx
Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,在BSD-like 協議下發行。其特色是佔有內存少,併發能力強,事實上nginx的併發能力確實在同類型的網頁服務器中表現較好,中國大陸使用nginx網站用戶有:百度、京東、新浪、網易、騰訊、淘寶等。web
1、能夠高併發鏈接後端
官方測試Nginx可以支撐5萬併發鏈接,實際生產環境中能夠支撐2~4萬併發鏈接數。瀏覽器
緣由,主要是Nginx使用了最新的epoll(Linux2.6內核)和kqueue(freeBSD)網路I/O模型,而Apache使用的是傳統的Select模型,其比較穩定的Prefork模式爲多進程模式,須要常常派生子進程,因此消耗的CPU等服務器資源,要比Nginx高不少。緩存
2、內存消耗少服務器
Nginx+PHP(FastCGI)服務器,在3萬併發鏈接下,開啓10個Nginx進程消耗150MB內存,15MB*10=150MB,開啓的64個PHP-CGI進程消耗1280內存,20MB*64=1280MB,加上系統自身消耗的內存,總共消耗不到2GB的內存。網絡
若是服務器的內存比較小,徹底能夠只開啓25個PHP-CGI進程,這樣PHP-CGI消耗的總內存數才500MB。併發
3、成本低廉負載均衡
購買F5BIG-IP、NetScaler等硬件負載均衡交換機,須要十多萬到幾十萬人民幣,而Nginx爲開源軟件,採用的是2-clause BSD-like協議,能夠免費試用,而且可用於商業用途。
BSD開源協議是一個給使用者很大自由的協議,協議指出能夠自由使用、修改源代碼、也能夠將修改後的代碼做爲開源或專用軟件再發布。
4、配置文件很是簡單
網絡和程序同樣通俗易懂,即便,非專用系統管理員也能看懂。
5、支持Rewrite重寫
可以根據域名、URL的不一樣,將http請求分到不一樣的後端服務器羣組。
6、內置的健康檢查功能
若是NginxProxy後端的某臺Web服務器宕機了,不會影響前端的訪問。
7、節省帶寬
支持GZIP壓縮,能夠添加瀏覽器本地緩存的Header頭。
8、穩定性高
用於反向代理,宕機的機率微乎其微。
9、支持熱部署
Nginx支持熱部署,它的自動特別容易,而且,幾乎能夠7天*24小時不間斷的運行,即便,運行數個月也不須要從新啓動,還可以在不間斷服務的狀況下,對軟件版本進行升級。
Nginx、Apache、Lighttpd對比
能夠看出,Nginx在反向代理、Rewrite規則、穩定性、靜態文件處理,內存消耗等方面,有很強的優點,使用Nginx取代傳統的Apache服務器,會獲得多方面的性能提高。