部署考量

已完成

在生產環境中執行的應用程式,與在開發環境中有不同的需要和需求。 尤其是安全性和效能考量,在開發中的重要性與生產中不同。 因此,您必須確保網站在部署前已正確設定。

Django 提供完整的前置部署設定更新的檢查清單。 下列各節說明部署應用程式至生產前,建議您進行的一些常見變更。

偵錯模式

若您是開發人員,您會想查看應用程式可能產生的任何錯誤訊息。 但是這種資訊可能讓攻擊者深入解析應用程式執行方式,可能導致未經授權的存取。 因此在部署應用程式至生產前,請在 settings.py 中將 DEBUG 選項設為 False

祕密金鑰

為保護敏感資訊,Django 會使用秘密金鑰來標示任何不得遭竄改的值。 在開發期間,秘密金鑰會以純文字形式儲存於 settings.py 中。 當您部署至生產時,應從更安全的位置讀取秘密金鑰,如 Azure 應用程式設定或 Azure Key Vault。

允許的主機

Settings.py 檔案包含名為 ALLOWED_HOSTS 的伺服器名稱清單。 這份清單會決定您的應用程式可從何處執行。 空白清單預設為允許從 localhost 執行應用程式。 在您部署至實際執行主機前,請更新此設定。

靜態檔案

靜態檔案是任何不屬於 Django 範本化系統的檔案。 這些檔案通常包括 JavaScript 或 CSS 檔案。 但這些檔案也可能包含靜態 HTML 檔案。 尤其,管理員網站會使用靜態檔案進行樣式和格式設定。

開發應用程式時,Django 會自動提供任何靜態檔案。 在生產中,您需設定服務以提供任何靜態檔案。 其中一個常見的解決方案是 WhiteNoise 程式庫。

在部署流程中,所有靜態檔案會收集至 settings.pySTATIC_ROOT 所指示的位置。 靜態檔案是透過執行 python manage.py collectstatic 來收集。 Azure 會自動執行此命令,因此您不需在部署前在本機執行。