web網站服務器(Nginx)

概述今天主要對比下這幾個主流的WEB服務器:lighttpd、apache、nginx1、LIGHTTPD1.1簡述​ Lighttpd 是一個德國人領導的開源WEB服務器軟件,具有非常低的內存開銷,cpu占用率低,效能好,以及豐富的模塊等特點。支持FastCGI, CGI, Auth,輸出壓縮(output compress), URL重寫, Alias等重要功能。它使用FastCGI方式運行PHP時,將使用很少的PHP進程響應很大的並發量。1.2 優點1)從穩定性上看,FastCGI是以獨立的進程池運行來CGI,單獨一個進程死掉,系統可以很輕易的丟棄,然後重新分配新的進程來運行邏輯;2)從安全性上看, FastCGI和宿主的server完全獨立, fastcgi怎麼down也不會把server搞垮;3)從性能上看, FastCGI把動態邏輯的處理從server中分離出來,大負荷的IO處理還是留給宿主server,這樣宿主server可以一心一意作IO,對於一個普通的動態網頁來說,邏輯處理可能隻有一小部分, 大量的圖片等靜態IO處理完全不需要邏輯程序的參與(註1)4)從擴展性上講,FastCGI是一個中立的技術標準,完全可以支持任何語言寫的處理程序(php,java,python…)1.3 支持操作系統Linux(binary packages for FC3,SuSE,Debian,Gentoo,PLD-Linux,OpenWRT)BSD(FreeBSD,NetBSD,OpenBSD,MacOSX)SGIIRIXWindows(Cygwin)While it is known to compile cleanly onSolarisAIX2、APACHE2.1 簡述​ Apache是世界排名第一的web服務器,根據所作的調查,世界上百分之五十以上的web服務器在使用apache。​ Apache是以進程為基礎的結構,進程要比線程消耗更多的系統開支,不太適合於多處理器環境,因此,在一個Apache Web站點擴容時,通常是增加服務器或擴充群集節點而不是增加處理器。世界上很多著名的網站如Amazon、Yahoo!、W3 Consortium、Financial Times等都是Apache的產物。2.2 優點幾乎可以運行在所有的計算機平臺上.支持最新的http/1.1協議簡單而且強有力的基於文件的配置(httpd.conf).支持通用網關接口(cgi)支持虛擬主機.支持http認證.集成perl.集成的代理服務器可以通過web瀏覽器監視服務器的狀態,可以自定義日志.支持服務器端包含命令(ssi).支持安全socket層(ssl).具有用戶會話過程的跟蹤能力.支持fastcgi支持java servlets2.3 支持操作系統LinuxWindows其他3、NGINX3.1簡述​ Nginx是俄羅斯人編寫的十分輕量級的HTTP服務器,Nginx,它的發音為“engine X”, 是一個高性能的HTTP和反向代理服務器,同時也是一個IMAP/POP3/SMTP代理服務器。Nginx是由俄羅斯人 Igor Sysoev為俄羅斯訪問量第二的 Rambler.ru站點開發。Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,並在一個BSD-like 協議下發行。其特點是占有內存少,並發能力強,事實上nginx的並發能力確實在同類型的網頁服務器中表現較好,中國大陸使用nginx網站用戶有:百度、京東、新浪、網易、騰訊、淘寶等。Nginx以事件驅動(epoll)的方式編寫,所以有非常好的性能,同時也是一個非常高效的反向代理、負載平衡,有研究表明能支持高達 50,000個並發連接數。。其擁有匹配 Lighttpd的性能,同時還沒有Lighttpd的內存泄漏問題,而且Lighttpd的mod_proxy也有一些問題並且很久沒有更新。但是Nginx並不支持cgi方式運行,原因是可以減少因此帶來的一些程序上的漏洞。所以必須使用FastCGI方式來執行PHP程序。3.2優點處理靜態文件,索引文件以及自動索引;打開文件描述符緩沖;無緩存的反向代理加速,簡單的負載均衡和容錯;FastCGI,簡單的負載均衡和容錯;模塊化的結構。包括gzipping, byte ranges, chunked responses,以及 SSI-filter等filter。如果由FastCGI或其它代理服務器處理單頁中存在的多個SSI,則這項處理可以並行運行,而不需要相互等待。Nginx專為性能優化而開發,性能是其最重要的考量,實現上非常註重效率Nginx具有很高的穩定性。其它HTTP服務器,當遇到訪問的峰值,或者有人惡意發起慢速連接時,也很可能會導致服務器物理內存耗盡頻繁交換,失去響應,隻能重啟服務器。例如當前apache一旦上到200個以上進程,web響應速度就明顯非常緩慢瞭。而Nginx采取瞭分階段資源分配技術,使得它的CPU與內存占用率非常低。nginx官方表示保持10,000個沒有活動的連接,它隻占2.5M內存,所以類似DOS這樣的攻擊對nginx來說基本上是毫無用處的。就穩定性而言,nginx比lighthttpd更勝一籌。Nginx支持熱部署。它的啟動特別容易,並且幾乎可以做到7*24不間斷運行,即使運行數個月也不需要重新啟動。你還能夠在不間斷服務的情況下,對軟件版本進行進行升級。3.3操作系統LinuxWindows(移植版本)其他3.4 推薦架構nginx作為最前端的web cache系統,通常的架構如下這個結構的優點:可以使用nginx前端進行諸多復雜的配置,這些配置從前在squid是沒法做或者做起來比較麻煩的,比如針對目錄的防盜鏈。nginx前端可以直接轉發部分不需要緩存的請求。因為nginx效率高於squid,所以某些情況下可以利用nginx的緩存來減輕squid壓力。可以實現url hash等分配策略可以在最前端開啟gzip壓縮,這樣後面的squid緩存的純粹是無壓縮文檔,可以避免很多無謂的穿透。因為nginx穩定性比較高,所以lvs不需要經常調整,通過nginx調整就可以。squid的文件打開數按默認的1024就綽綽有餘,不過處理的請求可一個都不會少。可以啟用nginx的日志功能取代squid,這樣做實時點擊量統計時可以精確定位到url,不必要再用低效率的grep來過濾。因為nginx的負載能力高於squid,所以在用lvs分流時可以不必分得特別均衡,出現單點故障的幾率比較低。nginx和squid配合搭建的web服務器前端系統架構:前端的lvs和squid,按照安裝方法,把epoll打開,配置文件照搬,基本上問題不多。這個架構和app_squid架構的區別,也是關鍵點就是:加入瞭一級中層代理,中層代理的好處實在太多瞭:gzip壓縮:壓縮可以通過nginx做,這樣,後臺應用服務器不管是apache、resin、lighttpd甚至iis或其他古怪服務器,都不用考慮壓縮的功能問題。負載均衡和故障屏蔽:nginx可以作為負載均衡代理使用,並有故障屏蔽功能,這樣,根據目錄甚至一個正則表達式來制定負載均衡策略變成瞭小case。方便的運維管理,在各種情況下可以靈活制訂方案。權限清晰:這臺機器就是不寫程序的維護人員負責,程序員一般不需要管理這臺機器,這樣假如出現故障,很容易能找到正確的人。對於應用服務器和數據庫服務器,最好是從維護人員的視線中消失,我的目標是,這些服務隻要能跑得起來就可以瞭,其它的事情全部可以在外部處理掉。3種WEB服務器的比較以下是針對這三個web服務器的一些比較:從上面的分析比較建議的一種方案是:Apache後臺服務器(主要處理php及一些功能請求 如:中文url)Nginx 前端服務器(利用它占用系統資源少得優勢來處理靜態頁面大量請求)Lighttpd圖片服務器後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關註下~

本文出自快速备案,转载时请注明出处及相应链接。

本文永久链接: https://kuaisubeian.cc/48628.html

kuaisubeian