我最近一直在编写大量较小的 wsgi 应用程序,并且正在寻找可以分发的网络服务器,预配置为运行特定的应用程序。我知道 twisted 和 cherrypy 之类的东西可以提供 wsgi 应用程序,但它们似乎缺少对我来说的一个关键功能,即使用 http 范围 header “伪流”大文件的能力。是否有在 BSD 或类似许可下可用的 Web 服务器,它可以作为独立的可执行文件在任何主要平台上分发,该平台能够代理到 wsgi 服务器(如 cherrypy 等)并使用 http 提供大文件范围标题?
最佳答案
Lighttpd 有 BSD 许可证,因此如果您愿意,您应该可以将其捆绑。
您说它适用于小型应用程序,所以我猜这意味着小型、本地、单用户 Web 界面由小型 http 服务器提供服务?如果是这样,那么任何 python 实现都应该可以工作。用py2exe之类的东西打包就可以了(事实上,不久前SO上有一个关于打包python程序的问题)。
更新,回复:范围 header : 默认的 python http 服务器可能不支持您想要的范围 header ,但是编写您自己的处理程序或小型 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
关于python - 最小的、独立的、可分发的、跨平台的网络服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/499084/