Flask-deployment
フラスコ–展開
外部から見えるサーバー
開発サーバー上の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