天天看點

mod_wsgi介紹中文翻譯

本文轉載自:奮鬥足迹  作者:崔玉松 原文位址:http://fendou.org/2009/03/27/mod_scgi_description/

什麼是mod_wsgi ?

mod_wsgi的目标是實作一個簡單的Apache子產品,支援任何Python WSGI的接口的Python應用程式的托管。該子產品适用于高性能生産的WEB站點,同時也适用于自己維護站點的WEB 服務托管(虛拟主機環境–譯者注)。

運作模式

用mod_wsgi來托管應用,有兩個主要的模式可以使用,一種是“嵌入式”模式,Mod_wsgi與Mod_python運作方式相同,所有的 python代碼都将在apache 子程序中執行。是以當WSGI應用在此模式下運作可以與其他的Apache托管的子產品PHP和Perl共享形同程序。

另一個在UNIX Apache 2.*環境下可選替代的daemon模式,這種模式運作的方式在類似的FastCGI / SCGI解決方案,即在不同的程序運作WSGI應用。與FastCGI / SCGI解決方案不同的是,當執行WSGI程式時不需要單獨的基礎結構(infrastructure),一切都是自動處理的mod_wsgi。

一切都是自動處理的mod_wsgi,影響正常使用的Apache子產品的PHP , Perl或其他語言的Apache子程序服務的靜态檔案和主機應用程式使用大大減少。守護(daemon)程序可能需要時也可以作為一個獨特的使用者運作以確定WSGI應用程式之間不能互相幹擾或擷取資訊。

服務性能

該mod_wsgi子產品是用C代碼直接對内部的Apache和Python應用程式接口程式設計。是以,服務WSGI應用與Apache它具有較低的記憶體開銷和性能優于現有的WSGI擴充卡mod_python或替代的FastCGI / SCGI / CGI或代理的解決方案。

雖然嵌入式技術模式能夠表現得更好, daemon模式通常是最安全的選擇使用。這是因為要嵌入模式高性能需要調整apache MPM設定,預設設定偏向于服務靜态媒體和PHP應用。如果Apache 的MPM設定未與服務的應用相對應,将會表現出糟糕的性能而不是更好的性能。

是以,除非你非常熟悉Aapache的配置,否則推薦使用daemon模式,總體而言,大型Python Web程式,通常你不能看出嵌入式(embedded mode)和守護模式(daemon mode)明顯的差異,因為瓶頸在Python Web和資料庫通路上。

支援的應用

mod_wsgi遵循WSGI接口規範,任何符合WSGI接口規範的Python Web架構或者應用都可以被支援。

我們所熟悉的主要的Python web架構或工具,包括CherryPy, Django, Karrigell, Pylons, TurboGears, web.py, Werkzeug 和Zope 運作良好,我們所熟知的主要的Python web應用包括MoinMoin, PyBlosxom 和 Trac 能夠很好的運作。

系統要求

mod_wsgi軟體包可以編譯和使用任何的Apache 1.3 , 2.0或2.2 UNIX系統(包括Linux ),以及Windows作業系統。無論是Apache MPM的單線程“prefork” 或者多線程的“worker”隻能在unix/linux系統中使用。daemon模式的mod_wsgi僅限于運作于UNIX/LINUX環境的 Apache 2.0或2.2上,而且要求Apache的基本運作環境庫已經編譯并支援多線程。

需要Python 2.3以上版本并且已經編譯支援多線程,如果你想嘗試Python 3.0,需要從Subversion倉庫中下載下傳源代碼編譯 mod_wsgi。

使用入門

最新的版本,并建議mod_wsgi是2.3

確定您首先閱讀“安裝與配置”,指南為開發者提供了獲得Mod_wsgi 最大産出指導,也可以提供問題調試的協助或者提出問題。

如果你不明白你的應用出了什麼問題或者你覺得你發現了Mod_wsgi的問題,你可以在mod_wsgi群組論壇中提出問題

資助

開發開源軟體往往被認為吃力不讨好的事情,如果您想展示你對實際上一直在幫助你的軟體的贊賞,作為一種回報,你可以将你成功或失敗等要說明的任何問題張貼到使用者組中,通過你的回報,人們才可以知道軟體是否正确的工作着,軟體或者文檔如何改進,以更好的滿足你的需要,如果這些聽起來非常辛苦,至少在考慮幫助我們提升聲望排名。

還請注意,與一些論壇上的傳聞相反,這個項目與Google沒有任何關系,也沒有接受Google(或其他公司)任何形式的資助,唯一與 Google有關系的是,該項目托管在代碼自由和公開的Google代碼托管服務商。這個項目的所有開發花費的都是我個人時間,如果你發現他對你有益,并且希望以更具體的方式捐助,請為我的Amazon上的願望清單買單或者通過PayPal捐助,如果是作為公司的一筆小的捐款,可以提供報表或者發票用于會計。

祝用得愉快

Graham Dumpleton