部署考量
在生產環境中執行的應用程式,與在開發環境中有不同的需要和需求。 尤其是安全性和效能考量,在開發中的重要性與生產中不同。 因此,您必須確保網站在部署前已正確設定。
Django 提供完整的前置部署設定更新的檢查清單。 下列各節說明部署應用程式至生產前,建議您進行的一些常見變更。
偵錯模式
若您是開發人員,您會想查看應用程式可能產生的任何錯誤訊息。 但是這種資訊可能讓攻擊者深入解析應用程式執行方式,可能導致未經授權的存取。 因此在部署應用程式至生產前,請在 settings.py 中將 DEBUG
選項設為 False
。
祕密金鑰
為保護敏感資訊,Django 會使用秘密金鑰來標示任何不得遭竄改的值。 在開發期間,秘密金鑰會以純文字形式儲存於 settings.py 中。 當您部署至生產時,應從更安全的位置讀取秘密金鑰,如 Azure 應用程式設定或 Azure Key Vault。
允許的主機
Settings.py 檔案包含名為 ALLOWED_HOSTS
的伺服器名稱清單。 這份清單會決定您的應用程式可從何處執行。 空白清單預設為允許從 localhost 執行應用程式。 在您部署至實際執行主機前,請更新此設定。
靜態檔案
靜態檔案是任何不屬於 Django 範本化系統的檔案。 這些檔案通常包括 JavaScript 或 CSS 檔案。 但這些檔案也可能包含靜態 HTML 檔案。 尤其,管理員網站會使用靜態檔案進行樣式和格式設定。
開發應用程式時,Django 會自動提供任何靜態檔案。 在生產中,您需設定服務以提供任何靜態檔案。 其中一個常見的解決方案是 WhiteNoise 程式庫。
在部署流程中,所有靜態檔案會收集至 settings.py 中 STATIC_ROOT
所指示的位置。 靜態檔案是透過執行 python manage.py collectstatic
來收集。 Azure 會自動執行此命令,因此您不需在部署前在本機執行。