apache:php
歷史:前端
APACHE:於1994年發佈,是apache軟件基金會的一個開放源碼的網頁服務器,能夠在多平臺下運行,因爲其多平臺和安全性被普遍使用,是最流行的web服務器端軟件之一;特色是簡單、速度快、性能穩定,而且可做爲代理服務器來使用。java
特色:python
apache:apache是一個被一致認同的標準客戶端/服務器通訊的應用層協議。以進程爲基礎的結構,進程要比線程小號更多的系統開支,不太適用於多處理器環境,所以在一個apache站點擴容時,一般是增長服務器或擴充羣集節點而不是增長處理器。nginx
Apache web服務器軟件擁有如下特性:
支持最新的 HTTP/1.1通訊協議
擁有簡單而強有力的基於文件的配置過程
支持通用網關接口
支持基於IP和基於域名的虛擬主機
支持多種方式的 HTTP認證
集成 Perl處理模塊
集成 代理服務器模塊
支持實時監視服務器狀態和定製服務器日誌
支持服務器端包含指令(SSI)
支持安全 Socket層(SSL)
提供用戶會話過程的跟蹤
支持FastCGI
nginxweb
Nginx是俄羅斯人編寫的十分輕量級的HTTP服務器,Nginx,它的發音爲「engine X」, 是一個高性能的HTTP和反向代理服務器,同時也是一個IMAP/POP3/SMTP
代理服務器.Nginx是由俄羅斯人 Igor Sysoev爲俄羅斯訪問量第二的 Rambler.ru站點開發.apache
Nginx以事件驅動的方式編寫,因此有很是好的性能,同時也是一個很是高效的反向代理、負載平衡。其擁有匹配
Lighttpd的性能,同時尚未Lighttpd的內存泄漏問題,並且Lighttpd的mod_proxy也有一些問題而且好久沒有更新。可是Nginx並不支持cgi方式運行,緣由是能夠減小所以帶來的一些程序上的漏洞。因此必須使用FastCGI方式來執行PHP程序。緩存
nginx作爲HTTP服務器,有如下幾項基本特性:安全
處理靜態文件,索引文件以及自動索引;打開文件描述符緩衝.性能優化
無緩存的反向代理加速,簡單的負載均衡和容錯.
FastCGI,簡單的負載均衡和容錯.
模塊化的結構。包括gzipping, byte ranges, chunked responses,以及
SSI-filter等filter。若是由FastCGI或其它代理服務器處理單頁中存在的多個SSI,則這項處理能夠並行運行,而不須要相互等待。 Nginx專爲性能優化而開發,性能是其最重要的考量,實現上很是注重效率。它支持內核Poll模型,能經受高負載的考驗,有報告代表能支持高達
50,000個併發鏈接數。 Nginx具備很高的穩定性。其它HTTP服務器,當遇到訪問的峯值,或者有人惡意發起慢速鏈接時,也極可能會致使服務器物理內存耗盡頻繁交換,失去響應,只能重啓服務器。例如當前apache一旦上到200個以上進程,web響應速度就明顯很是緩慢了。而Nginx採起了分階段資源分配技術,使得它的CPU與內存佔用率很是低。nginx官方表示保持10,000個沒有活動的鏈接,它只佔2.5M內存,因此相似DOS這樣的攻擊對nginx來講基本上是毫無用處的。就穩定性而言,nginx比lighthttpd更勝一籌。
Nginx支持熱部署。它的啓動特別容易,
而且幾乎能夠作到7*24不間斷運行,即便運行數個月也不須要從新啓動。你還可以在不間斷服務的狀況下,對軟件版本進行進行升級
lighttpd
Lighttpd是一個具備很是低的內存開銷,cpu佔用率低,效能好,以及豐富的模塊等特色。lighttpd是衆多OpenSource輕量級的web server中較爲優秀的一個。支持FastCGI, CGI, Auth,
輸出壓縮(output compress), URL重寫, Alias等重要功能。 Lighttpd使用fastcgi方式運行php,它會使用不多的PHP進程響應很大的併發量。
Fastcgi的優勢在於:
·
從穩定性上看, fastcgi是以獨立的進程池運行來cgi,單獨一個進程死掉,系統能夠很輕易的丟棄,而後從新分配新的進程來運行邏輯. ·
從安全性上看, fastcgi和宿主的server徹底獨立, fastcgi怎麼down也不會把server搞垮, ·
從性能上看, fastcgi把動態邏輯的處理從server中分離出來, 大負荷的IO處理仍是留給宿主server, 這樣宿主server能夠一心一意做IO,對於一個普通的動態網頁來講, 邏輯處理可能只有一小部分, 大量的圖片等靜態IO處理徹底不須要邏輯程序的參與(注1) ·
從擴展性上講, fastcgi是一箇中立的技術標準, 徹底能夠支持任何語言寫的處理程序(php,java,python...)
三種web服務器的比較
注:在相對比較大的網站,節約下來的服務器成本無疑是客觀的。而有些小型網站每每服務器很少,若是採用 Apache 這類傳統 Web 服務器,彷佛也還能撐過去。但有其很明顯的弊端: Apache 在處理流量爆發的時候(好比爬蟲或者是 Digg 效應) 很容易過載,這樣的狀況下采用 Nginx 最爲合適
建議方案:
Apache 後臺服務器(主要處理php及一些功能請求 如:中文url)
Nginx 前端服務器(利用它佔用系統資源少得優點來處理靜態頁面大量請求)
Lighttpd 圖片服務器
整體來講,隨着nginx功能得完善將使他成爲從此web server得主流。