Python的HTTP可供多请求

问题描述:

服务器我一直在做的BaseHTTPServer的学习了很多,发现其并不好多个请求。我通过这篇文章 http://metachris.org/2011/01/scaling-python-servers-with-worker-processes-and-socket-duplication/#pythonPython的HTTP可供多请求

去了,我想知道什么是构建HTTP服务器的多个请求 的最佳方式 - >

我对HTTP服务器的要求很简单 - - 支持多个请求(其中每个请求可以运行一个LONG Python脚本)

到目前为止我有以下选项 - > - BaseHTTPServer(螺纹不好) - mod_python的(Apache的一体化) - CherryPy的? - 其他?

实际上,设置有标准Python库中的HTTP服务器是指只用于轻载使用;对于适度的缩放(100个并发连接),在apache中mod_wsgi是个不错的选择。

如果你的需求是大于(10,000的并发连接),你会想看看在一个异步的框架,比如扭曲或龙卷风。异步应用程序的一般结构是完全不同的,所以,如果你认为你可能需要走这条路线,你一定要在这些框架的一个从一开始就启动项目

我有过很好的CherryPy网络服务器是最古老,最坚实的纯Python网络服务器之一。只需将您的应用程序编写为可调用的WSGI,并且在CherryPy的多线程服务器上运行应该很容易。

http://www.cherrypy.org/

Tornado是一个非常好,易于使用的FriendFeed的/ Facebook的开发异步事件循环/网络服务器。我个人对它有很好的体验。您可以使用如下例所示的HTTP类,或者仅使用io循环来复用纯TCP连接。

import tornado.ioloop 
import tornado.web 

class MainHandler(tornado.web.RequestHandler): 
    def get(self): 
     self.write("Hello, world") 

application = tornado.web.Application([ 
    (r"/", MainHandler), 
]) 

if __name__ == "__main__": 
    application.listen(8888) 
    tornado.ioloop.IOLoop.current().start()