最小,独立,可分发的跨平台Web服务器
程序员文章站
2023-11-19 16:29:46
最近,我一直在编写大量较小的wsgi应用程序,并希望找到一个可以分布式,预先配置为运行特定应用程序的Web服务器。我知道有些东西可以用于wsgi应用程序,例如twisted和cherrypy,但它们似乎缺少我的一项关键功能,即使用http range标头“伪流”大文件的功能。是否有根据BSD或类似许 ......
最近,我一直在编写大量较小的wsgi应用程序,并希望找到一个可以分布式,预先配置为运行特定应用程序的web服务器。我知道有些东西可以用于wsgi应用程序,例如twisted和cherrypy,但它们似乎缺少我的一项关键功能,即使用http range标头“伪流”大文件的功能。是否有根据bsd或类似许可证提供的web服务器,可以作为独立可执行文件分发到任何主要平台上,该平台既可以代理as wsgi服务器(如cherrypy等),又可以使用http服务大型文件范围标头?
解决方案
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
本文首发于,博客园同步更新