デプロイに関する考慮事項
運用環境で実行されているアプリケーションには、開発環境で実行されているものとは異なる一連のニーズと要件があります。 特に、開発時には、セキュリティとパフォーマンスの問題は運用環境ほど重要ではありません。 そのため、デプロイする前に Web サイトが適切に構成されていることを確認する必要があります。
Django では、デプロイ前の構成の更新の完全なチェックリストが提供されます。 次のセクションでは、アプリを運用環境にデプロイする前に行う必要があるいくつかの一般的な変更について説明します。
デバッグ モード
開発者は、アプリケーションによって生成される可能性のあるエラー メッセージを確認する必要があります。 ただし、この情報によって、攻撃者にアプリケーションの実行方法に関する分析情報が提供され、不正アクセスが行われる可能性があります。 そのため、 settings.py では、 アプリケーションを運用環境にデプロイする前に DEBUG
オプションを False
に設定します。
秘密鍵
機密情報を保護するために、Django では秘密鍵を使用して、改ざんされてはならないすべての値に署名します。 開発中、秘密鍵は settings.py にクリア テキストで格納されます。 運用環境にデプロイする場合、秘密鍵は、Azure アプリの設定や Azure Key Vault などのより安全な場所から読み取る必要があります。
許可されるホスト
settings.py ファイルには、ALLOWED_HOSTS
という名前のサーバー名のリストが含まれています。 このリストによって、アプリケーションの実行元が決まります。 既定では、空のリストを使用すると、アプリケーションを localhost から実行できます。 運用ホストに配置する前に、この設定を更新してください。
静的ファイル
静的ファイルは、Django テンプレート システムの一部ではないすべてのファイルです。 これらのファイルには、通常、JavaScript または CSS ファイルが含まれます。 ただし、静的な HTML ファイルが含まれている場合もあります。 特に、管理サイトでは、スタイルや書式設定に静的ファイルを使用します。
アプリの開発中は、Django によって自動的にすべての静的ファイルが提供されます。 運用環境では、すべての静的ファイルにサービスを提供するようにサービスを構成する必要があります。 一般的な解決策の 1 つは、WhiteNoise ライブラリです。
デプロイ プロセス中、すべての静的ファイルは settings.py の STATIC_ROOT
で示される場所に収集されます。 これらは、python manage.py collectstatic
を実行することで収集されます。 このコマンドは Azure によって自動的に実行されるため、デプロイの前にローカルで実行する必要はありません。