我最近一直在编写相当数量的小wsgi应用程序,我希望找到一个可以分发的Web服务器,预先配置为运行特定的应用程序。我知道有些东西像twisted和cherrypy可以提供wsgi应用程序,但它们似乎缺少一个关键的功能,我可以使用http范围标题“伪流”大文件。是否有可在BSD或类似许可下使用的Web服务器,可以在任何主要平台上作为独立可执行文件分发,它们既可以代理到wsgi服务器(如cherrypy等),也可以使用http服务大文件范围标题?
答案 0 :(得分:5)
Lighttpd拥有BSD许可证,因此您可以根据需要捆绑它。
你说它适用于小型应用程序,所以我猜这意味着小型本地单用户Web界面由小型http服务器提供服务?如果是这种情况,那么任何python实现都应该有效。只需使用像py2exe这样的东西打包它(事实上,不久前有一个关于在这里打包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
答案 1 :(得分:3)
Apache + mod_wsgi有什么问题? Apache已经是多平台的;它通常已经安装(Windows除外)。
您可能还想查看lighttpd,有一些关于配置它以使用WSGI的博客。请参阅http://cleverdevil.org/computing/24/python-fastcgi-wsgi-and-lighttpd和http://redmine.lighttpd.net/issues/show/1523