mod_python在性能上要優(yōu)于傳統(tǒng)CGI的緣由
mod_python在實(shí)際相關(guān)應(yīng)用操作過(guò)程中的具體操作我個(gè)人對(duì)其一直存在不解之處,說(shuō)以今天我們就提供以下的文章對(duì)在mod_python的實(shí)際運(yùn)行中存在困難的問(wèn)題,做一相關(guān)解答,希望你會(huì)有所收獲。
性能
mod_python的一個(gè)最主要優(yōu)點(diǎn)就是在性能上超越傳統(tǒng)CGI。下面是一個(gè)非常粗略的測(cè)試。該測(cè)試是在一臺(tái)運(yùn)行Red Hat Linux 7.3的奔騰1.2G的機(jī)器上完成的。Ab 用來(lái)對(duì)4種腳本進(jìn)行測(cè)試,所有的都是從標(biāo)準(zhǔn)cgi模塊輸入(因?yàn)檫@是一個(gè)典型Python cgi腳本開(kāi)始的方式), 然后輸出一個(gè)簡(jiǎn)單的單詞"Hello!"。這個(gè)結(jié)果是基于10000次并發(fā)為1的請(qǐng)求。
- Standard CGI: 23 requests/s
- Mod_python cgihandler: 385 requests/s
- Mod_python publisher: 476 requests/s
- Mod_python handler: 1203 requests/s
適應(yīng)性
Apache分階段的處理請(qǐng)求(比方說(shuō):讀取請(qǐng)求,解析header, 檢查存取路徑,等等)。這些階段能被稱為"處理器"(handler)的函數(shù)實(shí)現(xiàn)。傳統(tǒng)上, "處理器"是由C語(yǔ)言編寫(xiě),并編譯成Apache的模塊。mod_python提供了一個(gè)通過(guò)Python寫(xiě)的Apache處理器的來(lái)擴(kuò)展Apache功能的方法。
關(guān)于Apache請(qǐng)求處理過(guò)程的詳盡描述,請(qǐng)參閱 Apache API Notes, 也可以參閱
- Mod_python - Integrating Python with Apache
為了輕松地從CGI移植,一個(gè)標(biāo)準(zhǔn)的mod_python處理器提供了模擬的CGI環(huán)境,允許用戶在不對(duì)代碼做任何修改的情況下,使遺留的腳本運(yùn)行在mod_python下(大多數(shù)情況)。
See Also:
- Apache Developer Resources
- Mod_Python - Integrating Python
with Apache, presented at Python 10
Mod_python起源于一個(gè)被稱為Httpdapy(1997)的項(xiàng)目。很長(zhǎng)時(shí)間以來(lái), Httpdapy并沒(méi)有被稱作mod_python,因?yàn)镠ttpdapy不是專門(mén)用于Apache的。 Httpdapy被設(shè)計(jì)成跨平臺(tái)的,實(shí)際上最初是為Netscape server寫(xiě)的(那個(gè)時(shí)候被稱為Nsapy)(1997)
這個(gè)Httpdapy的README文件的摘要,很好的闡述了在HTTP server中嵌入Python所帶來(lái)的挑戰(zhàn)和解決方案。以上的文章就是對(duì)mod_python的相關(guān)實(shí)際應(yīng)用的介紹。
【編輯推薦】