最小,独立,可分发,跨平台的Web服务器

时间:2009-01-31 16:15:33

标签: python http wsgi

我最近一直在编写相当数量的小wsgi应用程序,我希望找到一个可以分发的Web服务器,预先配置为运行特定的应用程序。我知道有些东西像twisted和cherrypy可以提供wsgi应用程序,但它们似乎缺少一个关键的功能,我可以使用http范围标题“伪流”大文件。是否有可在BSD或类似许可下使用的Web服务器,可以在任何主要平台上作为独立可执行文件分发,它们既可以代理到wsgi服务器(如cherrypy等),也可以使用http服务大文件范围标题?

2 个答案:

答案 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-lighttpdhttp://redmine.lighttpd.net/issues/show/1523