日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

FreeBSD下Apache2.0運行模型分析及性能調(diào)整

作者說明:
本文內(nèi)容基本來自Apache2.0官方文檔,并結(jié)合了作者的日常工作經(jīng)驗 。事實上對于任何一項開源技術(shù)來說,官方文檔都是最好的技術(shù)資料,個人覺得網(wǎng)上90%的技術(shù)文檔都可以在官方的技術(shù)文檔中找到 。不過很多人都沒有意識到這一點,我想這和其中的大多數(shù)都沒有中文版本有關(guān) 。如果你在學(xué)習(xí)某項技術(shù)時遇到了問題,不妨先去其主站看看最新的官方文檔 。讓我們一起為開源努力吧 。
【FreeBSD下Apache2.0運行模型分析及性能調(diào)整】一談到Apache,相信大多數(shù)系統(tǒng)管理員使用的還是其穩(wěn)定版1.3——雖然2.0系列的開發(fā)版早已由Alpha,Beta發(fā)展到了現(xiàn)在的GA(General Availability )版,不過大家潛意識里還是認為開發(fā)中的版本并不是可用于生產(chǎn)環(huán)境的穩(wěn)定版本,尤其是1.3的API與2.0的不兼容而使得大量的模塊必須要重寫才能在2.0上用 。坦白地說,這種擔(dān)心并不是多余的,Apache1.3和2.0之間的內(nèi)部變化實在是太大了(這一開發(fā)已經(jīng)歷了5年) 。用Apache創(chuàng)始人Brian Behlendorf自己的話來說:“這個版本包括了數(shù)百個新的特性,所以這個產(chǎn)品可能應(yīng)該具有3.1或者8i這樣的產(chǎn)品編號,而不是2.0!” 。
在Apache2.0中加入了很多的核心改進和新功能,如Unix線程、多協(xié)議支持、新的構(gòu)建系統(tǒng)、更好的支持非Unix平臺、IPv6支持、新的Apache API、過濾器、多語言錯誤響應(yīng)、原生的Windows NT Unicode支持、更簡單化的配置、以及升級了的正則表達式庫等,當然還包括對許多模塊的重要改進,同時也加入了一些新的模塊 。如此多的變化,會使得大多數(shù)Apache管理員在剛接觸2.0時會不知所措,筆者也不例外 。
不過現(xiàn)在的情況有了很大變化,Apache開發(fā)團隊做了很多工作使得從1.3升級到2.0更加平滑,同時很多重要的模塊也已經(jīng)很好地支持2.0了,如PHP、FastCGI、Mod_perl、Mod_python等 。在httpd.conf的指令配置語法上,目前的2.0版本(筆者寫作時是2.0.46)和1.3版本的兼容性已做得相當好了(比如早期的2.0版本如果要使用PHP的話,一般是用過濾器,不過現(xiàn)在的PHP官方文檔中已經(jīng)使用1.3中的LoadModule語句做為加載PHP的推薦方式) 。只要略微了解一下2.0的新特性,從1.3升級到2.0就是一件非常容易的事情了 。畢竟使用Apache2.0是大勢所趨,而且筆者個人感覺,Apache的開發(fā)團隊已經(jīng)把開發(fā)重心轉(zhuǎn)移到2.0上(1.3自2002年10月發(fā)布了1.3.27后,至今沒有新版本推出,而2.0卻在與1.3.27同時發(fā)布2.0.43后在2003年1月發(fā)布了2.0.44,3月末發(fā)布了2.0.45,5月末發(fā)布了2.0.46,并包含了很多改進和修正) 。
盡管Apache2.0在許多方面有了不小的進步,但相信最吸引系統(tǒng)管理員的還是性能上的改善 。毫不夸張地說,MPM(Multi-Processing Modules,多道處理模塊)的引入是Apache2.0最重要的變化 。大家知道,Apache是基于模塊化的設(shè)計,而Apache 2.0更擴展了模塊化設(shè)計到web服務(wù)器的最基本功能 。服務(wù)器裝載了一種多道處理模塊,它負責(zé)綁定本機網(wǎng)絡(luò)端口,接受請求并調(diào)度子進程來處理請求 。擴展模塊化設(shè)計到這個層次有兩個重要好處:
1. Apache可以更簡潔有效地支持多種操作系統(tǒng);
2. 服務(wù)器可以按站點的特殊需要進行自定制 。
在用戶級, MPM看起來和其他Apache模塊非常類似 。主要區(qū)別是在任一時刻只能有一種MPM被裝載到服務(wù)器中 。
在支持POSIX線程的Unix系統(tǒng)上, Apache現(xiàn)在可以通過不同的MPM運行在一種多進程與多線程相混合的模式下,這就增強了許多(但不是所有)配置的可擴充性能 。相比于Apache 1.3, 2.0版本作了大量的優(yōu)化來提升處理能力和可伸縮性,并且大多數(shù)改進在默認狀態(tài)下就可以生效 。但是我不得不很遺憾的說在FreeBSD上基于線程的產(chǎn)品級MPM worker--還存在著很大的問題 。這主要是因為FreeBSD自身的線程庫還遠遠比不上Linux和Solaris成熟 。

推薦閱讀