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(不完善)
更多內容請訪問個人博客:程序員鼓勵師