web服務(wù)器之nginx和apache的區(qū)別
① apache屬于重量級的服務(wù)器,nginx屬于輕量級的服務(wù)器;
區(qū)別在于對一些功能的支持,比如:? pathinfo,php模塊方面
② nginx抗高并發(fā)能力強.
由于nginx采用的是異步非阻塞模式,而apache是阻塞模式;
③ nginx采用的是異步固定進程,而apache是同步多進程,一個連接對應(yīng)一個進程;
④ nginx適合處理靜態(tài)資源和反向代理,apache適合處理動態(tài)資源;
⑤ apache的重寫模塊比nginx要強大;
⑥ nginx支持平滑操作,在線升級;
擴展:常見的web服務(wù)器
IIS(微軟開發(fā)的基于線程的web服務(wù))Tomcat(java的容器)Tengine(阿里巴巴在nginx上的二次開發(fā));
故:常用nginx來做反向代理,實現(xiàn)負(fù)載均衡;
apache用來做正常的web服務(wù)器較多.
一、分析兩大服務(wù)器:
1栏饮、Apache
Apache 是世界排名第一的 web服務(wù)器,根據(jù) netcraft 所作的調(diào)查,世界上百分之五十以上的 web 服務(wù)器在使用 Apache嗤疯。
1995 年 4 月植兰,最早的 Apache(0.6.2 版 ) 由 Apache group 公布發(fā)行训貌。Apache group 是一個完全通過 internet 進行運作的非盈利機構(gòu),由它來決定 Apache web 服務(wù)器的標(biāo)準(zhǔn)發(fā)行版中應(yīng)該包含哪些內(nèi)容讽挟。 準(zhǔn)許任何人修改隱錯,提供新的特征和將它移植到新的平臺上丸冕,以及其它的工作耽梅。當(dāng)新的代碼被提交給 Apache group 時,該團體審核它的具體內(nèi)容胖烛,進行測試眼姐,如果認(rèn)為滿意诅迷,該代碼就會被集成到 Apache 的主要發(fā)行版中。
Apache 的特性 :
幾乎可以運行在所有的計算機平臺上
支持最新的 http/1.1 協(xié)議
簡單而且強有力的基于文件的配置 (httpd.conf)
支持通用網(wǎng)關(guān)接口 (cgi)
支持虛擬主機
支持 http 認(rèn)證
集成 perl
集成的代理服務(wù)器
可以通過 web 瀏覽器監(jiān)視服務(wù)器的狀態(tài)众旗,可以自定義日志
支持服務(wù)器端包含命令 (ssi)
支持安全 socket 層 (ssl)
具有用戶會話過程的跟蹤能力
支持 fastcgi
支持 java servlets
2竟贯、Nginx
Nginx 是俄羅斯人編寫的十分輕量級的 http服務(wù)器,Nginx的發(fā)音為 “engine X”逝钥,是一個高性能的 http 和反向代理服務(wù)器屑那,同時也是一個 IMAP/POP3/SMTP 代理服務(wù)器。?Nginx?是由俄羅斯人 Igor Sysoev 為俄羅斯訪問量第二的 Rambler.ru 站點開發(fā)艘款。
Nginx是以事件驅(qū)動的方式編寫持际,所以有非常好的,性能哗咆,同時也是一個非常高效的反向代理蜘欲、負(fù)載平衡。其擁有匹配 lighttpd 的性能晌柬。
?Nginx 做為 http 服務(wù)器姥份,有以下幾項基本特性:
處理靜態(tài)文件,索引文件以及自動索引年碘;打開文件描述符緩沖澈歉,無緩存的反向代理加速,簡單的負(fù)載均衡和容錯屿衅。fastcgi埃难,簡單的負(fù)載均衡和容錯。模塊化的結(jié)構(gòu)包括:gzipping, byte ranges, chunked responses, 以及 SSI-filter 等 filter涤久。如果由 fastcgi 或其它代理服務(wù)器處理單頁中存在的多個 SSI 涡尘,則這項處理可以并行運行,而不需要相互等待响迂。
Nginx 專為性能優(yōu)化而開發(fā)考抄,性能是其最重要的考量,實現(xiàn)上非常注重效率蔗彤。它支持內(nèi)核 Poll 模型川梅,能經(jīng)受高負(fù)載的考驗,有報告表明能支持高達 50,000 個并發(fā)連接數(shù)幕与。
Nginx 具有很高的穩(wěn)定性挑势。其它 http 服務(wù)器,當(dāng)遇到訪問的峰值啦鸣,或者有人惡意發(fā)起慢速連接時潮饱,也很可能會導(dǎo)致服務(wù)器物理內(nèi)存耗盡頻繁交換,失去響應(yīng)诫给,只能重啟服務(wù)器香拉。例如當(dāng)前 Apache 一旦上到 200 個以上進程啦扬, web 響應(yīng)速度就明顯非常緩慢了。而 Nginx 采取了分階段資源分配技術(shù)凫碌,使得它的 CPU 與內(nèi)存占用率非常低扑毡。 Nginx 官方表示保持 10,000 個沒有活動的連接,它只占 2.5M 內(nèi)存盛险,所以類似 DDOS 這樣的攻擊對 Nginx 來說基本上是毫無用處的瞄摊。就穩(wěn)定性而言。
Nginx 支持熱部署苦掘。它的啟動特別容易换帜,并且?guī)缀蹩梢宰龅?7 * 24 不間斷運行,即使運行數(shù)個月也不需要重新啟動鹤啡。你還能夠在不間斷服務(wù)的情況下惯驼,對軟件版本進行進行升級。
二递瑰、兩種 web 服務(wù)器的比較:
注:在相對比較大的網(wǎng)站祟牲,節(jié)約下來的服務(wù)器成本無疑是客觀的。而有些小型網(wǎng)站往往服務(wù)器不多抖部,如果采用Apache這類傳統(tǒng)Web服務(wù)器说贝,似乎也還能撐過去。但有其很明顯的弊端:Apache在處理流量爆發(fā)的時候(比如爬蟲或者是Digg效應(yīng))很容易過載您朽,這樣的情況下采用Nginx最為合適狂丝。
建議方案:
Apache后臺服務(wù)器(主要處理php及一些功能請求如:中文url)Nginx前端服務(wù)器(利用它占用系統(tǒng)資源少得優(yōu)勢來處理靜態(tài)頁面大量請求)Lighttpd圖片服務(wù)器
總體來說换淆,隨著Nginx功能得完善將使他成為今后web server得主流哗总。
三 、性能測試 :
將分別測試 2種軟件在對動態(tài)頁面和靜態(tài)頁面請求及并發(fā)時的響應(yīng)時間
l靜態(tài)頁面 搜狐首頁
Nginx
Apache
l動態(tài)頁面內(nèi)部社區(qū)首頁
Nginx
Apache
lPHPINFO 函數(shù)頁
Nginx
Apache 出現(xiàn)丟包