2009-01-31 80 views
8

我最近一直在編寫一些相當小的wsgi應用程序,並且正在尋找可以分發,預配置爲運行特定應用程序的Web服務器。我知道有些東西像扭曲和cherrypy可以提供wsgi應用程序,但它們似乎缺少我的一項關鍵功能,即使用http範圍標題「僞靜態化」大文件的功能。是否有一個BSD服務器可用於BSD或類似的許可證,可以作爲獨立的可執行文件在任何主要平臺上分發,這些平臺既能夠代理服務器(如cherrypy等),也能夠使用http服務大型文件範圍標題?最小,獨立,可分發,跨平臺的Web服務器

回答

3

Apache + mod_wsgi有什麼問題? Apache已經是多平臺的;它通常已經安裝(Windows中除外)。

您可能還想看看lighttpd,有一些關於將其配置爲使用WSGI的博客。見http://cleverdevil.org/computing/24/python-fastcgi-wsgi-and-lighttpdhttp://redmine.lighttpd.net/issues/show/1523

+0

即使世界沒有什麼「錯誤」與Apache,它的一個偉大的服務器,但我正在尋找的東西,我可以用我的應用程序分發,在一個預先配置的狀態,這樣它可以在任何平臺上運行(我意識到這可能需要每個平臺都有一個單獨的「盒子」,但那很好)。 – user61000 2009-02-01 23:27:59

5

Lighttpd有一個BSD許可證,所以你應該能夠捆綁它,如果你想。

你說它的小應用程序,所以我想這意味着,一個小型的http服務器提供小型,本地,單用戶Web界面?如果是這種情況,那麼任何python實現應該工作。只需要使用類似py2exe的軟件包來進行打包(實際上,在不久之前,在SO上打包python程序時有一個問題)。

更新,回覆:範圍頭: 默認的Python HTTP服務器可能不支持您需要的範圍頭,但它很容易編寫自己的處理程序,或小WSGI應用程序做的邏輯,特別是如果你'正在做流媒體文件。這將不會有太多的臺詞:

def stream_file(environ, start_response): 
    fp = open(base_dir + environ["PATH_INFO"]) 
    fp.seek(environ["HTTP_CONTENT_RANGE"]) # just an example 
    start_response("200 OK", (('Content-Type', "file/type"))) 
    return fp