Nginx介紹及企業web服務軟件的選擇

LNMP(Linux Nginx MySQL PHP) 是近三年的web服務組合,國內網站使用Nginx更多一些。php

 

Nginx經常使用功能:css

a、www web服務html

b、負載均衡(反向代理)前端

c、web緩存java

 

Nginx的優勢:linux

0、配置簡單,更靈活。nginx

一、高併發同時處理的鏈接數多,靜態1-2w程序員

二、佔用資源少。2W併發,開10個線程服務,內存幾百兆的樣子web

三、功能種類比較多,(web,cache,proxy),功能多,可是每一個功能都不是特別強。數據庫

四、支持epoll模型。使得Nginx能夠支持高併發。

五、Nginx配合動態服務和apache有區別。

六、利用Nginx能夠對IP限速。能夠限制鏈接數。

 

LNMP的實現,架構

一、LAMP,php是模塊。

二、LNMP,php是服務。

 

企業工做中如何選擇:

Nginx的應用場合:

一、靜態服務器(圖片,視頻服務,html,css,js,flv等)。併發:1-3w

國內兩款靜態服務器Nginx,lightted

二、動態服務,nginx + fastcgi方式運行php,jsp。處理動態是後端服務器撐不住。

       競爭對手:apache+php,lightted + fcgi

三、反向代理,負載均衡。日PV2000W如下,均可以使用Nginx作代理。

       競爭對手:haproxy ,F5,a10

四、緩存服務。

       競爭對手:Squid,varnish。

 

經常使用web服務介紹

Apache

基於傳統的select模型

2.2版本很是穩定強大,據官方說,其2.4版本性能超強

Prefork模式取消了進程建立開銷,性能很高

處理動態業務時候,由於關聯到後端的引擎和數據庫,瓶頸不在Apache自己

高併發時候消耗系統性能會多一些。

擴展庫,DSO安裝方法,apxs

功能多,更穩定,更安全,插件也多。

 

Nginx

基於異步IO模型(epoll,kquene),性能強,可以支持上完併發

對小文件的支持很好,性能很高(限靜態小文件)

代碼優美,擴展庫必須編譯進主程序。

消耗系統資源比較低。

 

Lightted

基於異步IO模型,性能和Nginx相近

擴展庫是SO模式,比Nginx要靈活

全球使用率比較低,安全性沒有上面兩個好

經過插件(mod_secdownload),能夠實現文件URL地址加密。

 

性能對比:      

處理靜態小文件(小於1M),Nginx和lightted比apache更有優點。

處理純動態文件,apache效率更高。Nginx在處理大文件和動態文件的時候,沒有什麼優點。

 

爲何Nginx的整體性能比Apache要高?

Nginx使用最新的epoll(linux 2.6內核),網絡IO模型,而Apache則使用傳統的select模型。目前Linux下可以承受高併發的Squid、Memcached都是採用epoll網絡I/O模型。

 

選擇Web服務器:

靜態業務:高併發,採用nginx或lightted,根據本身的掌握程序或公司要求

動態業務:採用Nginx和Apache都可。

動態業務能夠前端haproxy,根據頁面元素的類型,向後轉發相應的服務器進行處理。

既有靜態,又有動態:Nginx或Apache,不要多選,要單選。

若是併發不是不少,對apache很熟悉,採用apache也是能夠的。

知足需求的前提,先用,而後逐步完善。

最終建議:

對外的業務Nginx,對內的業務Apache。

 

Nginx虛擬主機:

一、基於域名,==> 應用:外部網站

二、基於端口,==> 應用:公司內部網站,外部網站的後臺

三、基於IP(不完善)

 

更多內容請訪問個人博客:程序員鼓勵師

相關文章
相關標籤/搜索