1

私はBaseHTTPServerについて多くの調査を行ってきましたが、複数のリクエストにはそれほど適していないことがわかりました。この記事を読みました http://metachris.org/2011/01/scaling-python-servers-with-worker-processes-and-socket-duplication/#python

そして、複数のリクエストに対応するHTTPサーバーを構築するための最良の方法を知りたいと思いました->

HTTPサーバーの私の要件は単純です---複数のリクエストをサポートします(各リクエストはLONG​​ Pythonスクリプトを実行する可能性があります)

今まで私は次のオプションを持っています->-BaseHTTPServer(スレッドは良くありません)-Mod_Python(Apache統合)-CherryPy?- 他の?

4

3 に答える 3

2

私は、純粋な Python Web サーバーの中で最も古く、最も信頼できるものの 1 つである CherryPy Web サーバーで非常に幸運に恵まれました。アプリケーションを WSGI callable として記述するだけで、CherryPy のマルチスレッド サーバーで簡単に実行できるはずです。

http://www.cherrypy.org/

于 2011-10-02T23:55:02.447 に答える
1

Tornadoは、FriendFeed/Facebook によって開発された、非常に優れた使いやすい非同期イベントループ / Web サーバーです。私は個人的にそれで非常に良い経験をしました。以下の例のように 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()
于 2015-10-16T14:28:14.763 に答える
1

実際、標準の python ライブラリで提供される HTTP サーバーは、軽度の使用のみを目的としています。中程度のスケーリング (数百の同時接続) の場合mod_wsgi、Apache は優れた選択肢です。

それ以上のニーズ (10,000 の同時接続) が必要な場合は、Twisted や Tornado などの非同期フレームワークを検討することをお勧めします。非同期アプリケーションの一般的な構造はかなり異なるため、そのルートをたどる必要があると思われる場合は、最初からこれらのフレームワークのいずれかでプロジェクトを開始する必要があります。

于 2011-10-02T23:39:14.650 に答える