<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Tin's Blog

    You are coming a long way, baby~Thinking, feeling, memory...

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      128 隨筆 :: 0 文章 :: 221 評論 :: 0 Trackbacks
    本文已經(jīng)發(fā)表于InfoQ中文站點(http://www.infoq.com/cn/news/2007/07/light-web-servers)

    IBM developerWorks網(wǎng)站上最近發(fā)布了一則Cameron Laird的關于輕量級Web服務器的文章, 里面列舉了很多的輕型的Web服務器實現(xiàn)和它們的特點,Cameron還從自己的經(jīng)驗出發(fā)總結了評價Web服務器的一些指標。這篇文章目的在于擴展我們在 Web應用部署時的思路,讓我們重新思考Web應用的架構和部署方案。眾多的輕量級Web服務器其實見證了動態(tài)腳本語言實現(xiàn)Web應用的火爆,給實現(xiàn) Web應用提供了更多解決方案。

    輕量Web服務器這個概念關注“輕巧性”,這意味著簡單、易于安裝、流線化、要求低和健壯。這種“輕巧”主要是相對于目前市場占有率占優(yōu)的 Apache和IIS而言的,輕量Web服務器應該更小更簡單,并且它們至少要有一些性能/特性超過這兩個產(chǎn)品(這樣它們才可能分得市場份額)。 Cameron這樣對比了“輕量”相比“重量”的一些優(yōu)勢

    輕量級Web服務器可以適用于市場領頭產(chǎn)品和其他“重量級”服務器無法勝任的情況。例如,整個服務器可以打包在一個文件中。這意 味著開發(fā)人員可以方便地攜帶生產(chǎn)環(huán)境所需的所有工具。即使在生產(chǎn)服務器上運行的是 Apache,也仍然可以在賓館的房間里,借助只需數(shù)秒鐘就可以安裝完畢的輕量級Web服務器以嘗試新想法。而且,由于輕量級Web服務器要求很低,因此 可以在那些無法負擔IIS的主機上順暢地運行。

    我們關注一下目前的Web服務器占有率情況,Netcraft在它2007年7月的Web服務器調(diào)查中的服務器占有率數(shù)據(jù)如下:

    開發(fā)者 2007年6月 百分比 2007年7月 百分比 變更率
    Apache 65588298 53.76 66144734 52.65 -1.11
    Microsoft 38836030 31.83 41257913 32.84 1.01
    Google 4872765 3.99 5465538 4.35 0.36
    Sun 2273173 1.86 2245493 1.79 -0.07
    lighttpd 1470930 1.21 1471779 1.17 -0.04
    Zeus 480698 0.39 463449 0.37 -0.02

    其中Apache占有率最高,它是公認的穩(wěn)定、性能優(yōu)良、開發(fā)者活躍的開源軟件產(chǎn)品。而Microsoft則受益于Windows平臺內(nèi)置的PWS 和IIS的優(yōu)勢及.NET平臺的市場占優(yōu)率,占有第二的位置。Sun則是由于歷史問題,它的iPlanet、SunONE和一并計算的Netscape- Communications產(chǎn)品還能躋身前4。后面的lighttpd則是輕量型Web容器的代表,已經(jīng)超過了老牌的商業(yè)Web服務器Zeus (ServerWatch給出了一個lighttpd市場占有率上升的分析),主要因為一些AJAX項目和Ruby on Rails(以下簡稱RoR)的流行對它的廣泛部署起了推波助瀾的作用。

    輕量Web服務器除了lighttpd還有mongrel也經(jīng)常被提及,主要因為它們是RoR項目的兩種主要部署方案。JavaEye的創(chuàng)始人Robbin Fan曾經(jīng)在它的blog中對比過RoR的這兩種部署方案

    (RoR項目)用fcgi方式還是http方式,我個人覺得區(qū)別不大,關鍵還是看應用的場合,一般而言,推薦的搭配是lighttpd+fcgi 或者nginx+mongrel,而Apache因為性能差距,而不被推薦。

    lighttpd+fcgi是大量使用腳本語言編寫的網(wǎng)站的首選部署方案,Robbin Fan在同一篇文章中闡述了他選擇lighttp部署JavaEye的理由:

    JavaEye為什么用lighttpd+fcgi呢?原因如下:

    1) lighttpd發(fā)展了好幾年了,市場占有率也相當高,是一個經(jīng)過實踐檢驗的server,它的文檔也很全;

    2) JavaEye的Ruby進程和Web Server在一臺機器上面跑,通過unix socket使用fcgi協(xié)議通訊可以避免tcp的網(wǎng)絡開銷,其通訊速度比使用tcp socket使用http協(xié)議通訊要快一些。

    Robbin選擇lighttpd的主要原因是性能好于Apache。并且Apache目前的fastcgi模塊有些bug,而對于像RoR這樣的項目fastcgi是一種很好的部署方式,所以Apache就因此失去了這塊份額。最近InfoQ報道過的RubyWorks提 供的RoR工作棧中選擇了Haproxy+mongrel的方式,這也是前面引用的Robbin所說的另外一種部署方案。mongrel本身可以跑 Ruby進程,同時也是一個http服務器,它可以兼顧動態(tài)和靜態(tài)Web服務,配合Haproxy做負載均衡就可以支持大并發(fā)量的Web應用,所以它越來 越流行了。

    可見輕量級Web服務器由于性能/特性上的一些優(yōu)勢,開始逐漸瓜分Apache、IIS所沒有照顧到的一些新興的市場分額。那么如何去評價一個Web服務器呢?Cameron給出了如下的一些重要指標
  • 性能:對請求作出響應的速度有多快?
  • 可伸縮性:當很多用戶同時訪問它時,服務器還能繼續(xù)可靠地運行嗎?
  • 安全性:服務器是否只執(zhí)行它應該執(zhí)行的操作。它在認證用戶和加密傳輸方面提供了怎樣的支持?它的使用是否使附近的應用程序或主機變得更易受攻擊?
  • 可靠性:服務器的失效模式和故障發(fā)生率如何?
  • 標準遵從性:服務器遵從相關的 RFC 嗎?
  • 靈活性:是否可以對服務器進行調(diào)優(yōu),以支持較重的請求負載、需要計算的動態(tài)頁面或者代價不菲的認證等等?
  • 平臺需求:該服務器可用于哪些平臺?它是否有特定的硬件需求?
  • 易管理性:服務器是否易于設置和維護?它是否與日志記錄、審計、成本計算等組織標準兼容?
  • 目前越來越多的輕型Web服務器開始在上面的一個或著多個方面向Apache和IIS提出了挑戰(zhàn),因為很難有一個Web服務器可以做到面面俱到。我們可以從Cameron提供的一份列表里面看到一些選用輕量級Web服務器的成功案例
  • YouTube依靠lighttpd快速交付歸檔的內(nèi)容,例如視頻;
  • cdServe運行 “German Woodworking Machinery and Tools” CD;
  • LiteSpeed宣揚它在 twitter、www.funnyoride.com、www.airliners.com、WordPress.com、 fanfiction.com、SlashGear、www.forumactif.com 和其他著名Web 站點上擔任的角色;
  • OpenSUSE、RubyOnRails、MarkaBoo和其他一些著名站點依賴于Mongrel;
  • demon.net、bluelight.com、mtv.com、The Drudge Report、garfield.com等站點則使用thttpd;
  • 上面的例子中有一些使用RoR的網(wǎng)站的例子,Cameron指出不僅是網(wǎng)站可以使用常規(guī)以外的其他編程語言。“不常見”語言還可以被用來實現(xiàn)輕量 Web服務器,例如Erlang、Java、Lisp、Lua、Perl、Python和Tcl。用這些語言實現(xiàn)的輕量級Web服務器不一定只是在性能/ 特性上超過Apache和IIS,它們可以提供例如容易嵌入、體積輕小這樣的特性來吸引開發(fā)者的使用。Cameron給出了使用“不常見”語言編寫輕量級 Web服務器的原因:

  • 教學:使用輕量級Web服務器來制定一個重要、但是并不太大的目標。這是獲得使用某種語言的經(jīng)驗的好方法。
  • 雖然用C編寫的輕量級Web服務器大小為10-50KB,更高級的語言有100KB到數(shù)MB的運行時,但整個 Web 服務器的源文件可能只占幾千個字節(jié)。這種Web服務器占用的空間很小,因此比Apache更易于與技術伙伴共享。
  • 更高級的語言可以使實驗更吸引人 —— 例如,添加一個新的HTTP/1.1特性可能只需幾行源代碼。這些輕量級服務器是非常方便的實驗材料。
  • 將HTTP服務器添加到已有的、用高級語言編寫的應用程序中只需增加幾行源代碼。
  • 如前所述,不同的輕量級Web服務器有著不同的優(yōu)點,它們或多或少獨立于編程語言。所有輕量級Web服務器都比Apache更小、更易于配置。與 Apache相比,有些輕量級 Web 服務器更快,有些則快得多。有些則強調(diào)安全性、重負載下的從容性、可擴展性或者內(nèi)存占有量。在任何情況下,都可以以一種不適用于 Apache 的方式徹底地理解這些服務器。

    這些理由從另外一個方面說明了輕量級Web服務器的優(yōu)勢,Cameron還提供了一長串的輕量級Web服務器的列表和簡介,感興趣的讀者可以認真閱讀,從中尋找到您感興趣的實現(xiàn)。輕量級Web服務器不只是Apache、IIS的競爭者,也是很好的合作者(例如我們經(jīng)??梢砸姷疥P于mongrel與Apache配合使用的文章),現(xiàn)在我們還可以看到很多服務器協(xié)作部署的例子,各取所長應該是最佳的選擇,所以我們更應該從現(xiàn)在就開始拓寬眼界,尋找我們所需要的。

    最后,推薦對Web服務器感興趣的讀者可以使用Netcraft提供的Webserver Search的服務器查詢功能來探索你感興趣的網(wǎng)站的服務器,Webserver Search可以報告搜索的url對應的服務器的操作系統(tǒng)和Web服務器類型,是設計部署方案的一個很好參考。



    posted on 2007-08-02 10:10 Tin 閱讀(2109) 評論(0)  編輯  收藏 所屬分類: 開源
    主站蜘蛛池模板: 妞干网在线免费观看| 免费国产黄网站在线观看视频| 亚洲&#228;v永久无码精品天堂久久| 亚洲av午夜国产精品无码中文字| 无码不卡亚洲成?人片| 国产精品色拉拉免费看| 最近的2019免费中文字幕| 一级女性全黄久久生活片免费| 亚洲AV无码精品国产成人| 亚洲欧美日韩综合久久久久 | 国产精品免费久久| 免费一级做a爰片久久毛片潮| 亚洲大尺度无码无码专线一区| 亚洲精品一二三区| 国产偷国产偷亚洲高清人| 污视频网站在线免费看| 中文字幕免费人成乱码中国| 日韩精品无码一区二区三区免费| 在线精品一卡乱码免费| 午夜宅男在线永久免费观看网| 成人网站免费观看| 亚洲国产精品成人一区| 日韩亚洲人成在线综合日本| 久久精品7亚洲午夜a| 亚洲精品福利你懂| yellow视频免费在线观看| 久久久久国色av免费看| 97无码免费人妻超级碰碰碰碰 | 国产三级在线免费观看| 中文字幕亚洲免费无线观看日本| 热re99久久6国产精品免费| 夫妻免费无码V看片| 日木av无码专区亚洲av毛片| 亚洲日本成本人观看| 特级毛片爽www免费版| 国产成人精品免费视频大| 国产精品亚洲综合专区片高清久久久| 久久久久亚洲AV无码专区首JN | 手机在线看永久av片免费| 亚洲AV无码精品色午夜果冻不卡| 91丁香亚洲综合社区|