FastCGI —Werkzeugのドキュメント
FastCGI
lighttpd や nginx などのサーバーで非常に人気のある展開セットアップはFastCGIです。 WSGIアプリケーションをそれらのいずれかで使用するには、最初にFastCGIサーバーが必要になります。
最も人気のあるものは、このガイドで使用する flup です。 必ずインストールしてください。
.fcgi ファイルの作成
まず、FastCGIサーバーファイルを作成する必要があります。 それを yourapplication.fcgi と呼びましょう:
Apacheが機能するにはこれで十分ですが、ngingxおよび古いバージョンのlighttpdでは、FastCGIサーバーと通信するためにソケットを明示的に渡す必要があります。 これを機能させるには、ソケットへのパスをWSGIServer
に渡す必要があります。
パスは、サーバー構成で定義したものとまったく同じパスである必要があります。
yourapplication.fcgi ファイルをもう一度見つけられる場所に保存します。 / var / www / yourapplication または同様のものにそれを置くことは理にかなっています。
サーバーが実行できるように、そのファイルに実行可能ビットを設定してください。
lighttpdの設定
lighttpdの基本的なFastCGI構成は次のようになります。
FastCGI、エイリアス、および書き換えモジュールを有効にすることを忘れないでください。 この構成は、アプリケーションを / yourapplication にバインドします。
FastCGIおよびPython の詳細については、Lightyのドキュメントを参照してください。
nginxの構成
デフォルトでは一部のFastCGIパラメータが適切に転送されないため、nginxにFastCGIアプリケーションをインストールするのは少し注意が必要です。
nginxの基本的なFastCGI構成は次のようになります。
この構成は、アプリケーションを / yourapplication にバインドします。 PATH_INFO と SCRIPT_NAME の計算方法を理解する必要がないため、URLルートに含める方が少し簡単です。
NginxはFastCGIアプリをロードしないため、自分でロードする必要があります。 そのための init.d スクリプトを作成するか、画面セッション内で実行することができます。
デバッグ
FastCGIデプロイメントは、ほとんどのWebサーバーでデバッグするのが難しい傾向があります。 多くの場合、サーバーログからわかるのは、「ヘッダーの終わりが早すぎる」という行に沿ったものだけです。 アプリケーションをデバッグするために、アプリケーションが壊れた理由を実際に理解できる唯一のことは、正しいユーザーに切り替えて、アプリケーションを手動で実行することです。
この例では、アプリケーションの名前が application.fcgi であり、Webサーバーユーザーが www-data であると想定しています。
この場合、エラーは「yourapplication」がPythonパス上にないことのようです。 一般的な問題は次のとおりです。
- 使用されている相対パス。 現在の作業ディレクトリに依存しないでください
- Webサーバーによって設定されていない環境変数に依存するコード。
- 使用されているさまざまなPythonインタープリター。