部署注意事项
在生产环境中运行的应用程序具有一系列不同于开发环境中的需要和要求。 具体而言,安全和性能问题在开发过程中并不像在生产过程中那么重要。 因此,你需要确保你的网站在部署之前进行了正确的配置。
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 会自动运行此命令,因此在部署之前,不需要在本地运行它。