-2

今は我慢してください。最初から説明しますが、非常に簡単です。8 か月前、フレームワークを使用しない (ゼロから) Python を使用した Web プロジェクトで作業しました。ビューとテンプレートの実装に限定していましたが、数か月が経つにつれて興味が湧いたので、調査を行いました。

現在、WSGI と「自分でできる」フレームワークの作成方法について調べています。しかし、私はいくつかのことに少し興味があります。私が 8 か月前にそのプロジェクトにいたとき、私たちは Web サーバーを使用していましたが、Web には「Web サーバー」コンポーネントもあったことを覚えています。

コンポーネントは Tornado Web Server で、この別のサーバーは nginx でした。さて、一方のサーバーと他方のサーバーの違いは何ですか?

コンポーネント (Tornado または別のコンポーネント) が展開に必要な唯一のものではない場合、他に何が必要ですか?

4

3 に答える 3

2

明確にするために:

Tornado は、Python Web フレームワークおよび非同期ネットワーク ライブラリです。

それは私の定義ではなく、彼ら自身の定義です。( https://pypi.python.org/pypi/tornado )

Tornado は Web サーバーとしても機能します。一部の Python Web 開発フレームワークは、実際には Web サーバーとして機能しません。開発作業のために別のライブラリにブートストラップする必要があります。他のサーバーは Web サーバーとして機能しますが、お勧めしません。コードを作成するためのものであり、ビルドするためのものではありません。

そうしたい場合は、Tornado からすべてを直接提供できます。Tornado 開発チームを含むほとんどの人は、Tornado を nginx の背後に配置し、nginx を使用して負荷分散と静的コンテンツの提供を行うことで、はるかに優れたパフォーマンスを実現しています。 http://www.tornadoweb.org/en/stable/overview.html?highlight=nginx

WSGI アプリケーションをインターネットにデプロイするには、さまざまな方法があります。それらのいくつかは次のとおりです。

  • アプリをポート 80 に直接デプロイする
  • パブリック ロード バランサーとして nginx/apache を使用します。
    • ローカル ポートで実行されているアプリへのプロキシ接続
    • uwsgi でアプリを実行し、リクエストを uwsgi にプロキシするようにパブリック ロード バランサーを構成します。

gunicorn、eventlet、twisted、およびその他の無数のネットワークまたは Web サービス ライブラリを使用して WSGI アプリをデプロイする方法は他にもあります。

あなたの質問に答えるには:

あなたが取り組んだプロジェクトでは、nginx は公開 Web サーバーとして機能していました。Tornado (おそらく) は、Web フレームワークとプライベート Web サーバーの両方として機能しました。

于 2013-05-08T19:04:34.087 に答える
1

Xanathos、あなたが言及したコンポーネントであるTornadoは、非常に大量の同時接続を処理するためのWebサーバーです。これは Twisted Python で構築されているため、初心者には使用をお勧めしません。Python Werkzeugを調べることをお勧めします。これは、WSGI の優れた入門書となるからです。

編集:非常に軽いフレームワークが必要な場合は、Flaskにも興味があるかもしれません

于 2013-05-08T18:39:51.927 に答える
1

Tornado は、Python Web アプリケーションで使用するための Web サーバーです。

nginx は、仮想ホスティングやその他のプロキシを行うために、通常、他の Web サーバーの前面として使用する、より一般的な Web サーバーです。主に Apache と競合します。

したがって、どちらも Web サーバーですが、まったく異なることを行います。

于 2013-05-08T18:47:02.143 に答える