Flask-deployment

提供:Dev Guides
移動先:案内検索

フラスコ–展開

外部から見えるサーバー

開発サーバー上のFlaskアプリケーションは、開発環境がセットアップされているコンピューターでのみアクセスできます。 これはデフォルトの動作です。デバッグモードでは、ユーザーがコンピューター上で任意のコードを実行できるためです。

*debug* が無効になっている場合、ホスト名を *‘0.0.0.0’* に設定することにより、ローカルコンピューター上の開発サーバーをネットワーク上のユーザーが利用できるようにすることができます。
app.run(host = ’0.0.0.0’)

これにより、オペレーティングシステムはすべてのパブリックIPをリッスンします。

展開

開発環境から本格的な本番環境に切り替えるには、アプリケーションを実際のWebサーバーにデプロイする必要があります。 持っているものに応じて、Flask Webアプリケーションをデプロイするためのさまざまなオプションがあります。

小規模アプリケーションの場合、次のホストプラットフォームのいずれかに展開することを検討できます。これらはすべて、小規模アプリケーションの無料プランを提供します。

  • ヘロク
  • ドットクラウド
  • ウェブファクション

Flaskアプリケーションは、これらのクラウドプラットフォームにデプロイできます。 さらに、FlaskアプリをGoogleクラウドプラットフォームに展開することもできます。 Localtunnelサービスを使用すると、DNSおよびファイアウォールの設定を変更することなく、localhostでアプリケーションを共有できます。

上記の共有プラットフォームの代わりに専用のWebサーバーを使用する場合は、次のオプションがあります。

mod_wsgi

*mod_wsgi* は、ApacheサーバーでPythonベースのWebアプリケーションをホストするためのWSGI準拠のインターフェイスを提供するApacheモジュールです。

mod_wsgiのインストール

PyPiから直接公式リリースをインストールするには、次を実行できます-

pip install mod_wsgi

インストールが成功したことを確認するには、start-serverコマンドでmod_wsgi-expressスクリプトを実行します-

mod_wsgi-express start-server

これにより、ポート8000​​でApache/mod_wsgiが起動します。 次に、ブラウザで次を指定することにより、インストールが機能したことを確認できます-

http://localhost:8000/

.wsgiファイルの作成

*yourapplication.wsgi* ファイルが必要です。 このファイルには、起動時に実行されてアプリケーションオブジェクトを取得するコード *mod_wsgi* が含まれています。 ほとんどのアプリケーションでは、次のファイルで十分です-
from yourapplication import app as application
*yourapplication* および使用中のすべてのライブラリがpythonロードパス上にあることを確認してください。

Apacheの構成

アプリケーションの場所を mod_wsgi に伝える必要があります。

<VirtualHost *>
   ServerName example.com
   WSGIScriptAlias/C:\yourdir\yourapp.wsgi

   <Directory C:\yourdir>
      Order deny,allow
      Allow from all
   </Directory>

</VirtualHost>

スタンドアロンWSGIコンテナー

WSGIアプリケーションを含み、HTTPを提供するPythonで書かれた多くの一般的なサーバーがあります。

  • ユニコーン
  • 竜巻
  • ゲベント
  • ツイストWeb