密钥用于对会话cookie进行签名。如果必须重新启动应用程序并重新生成密钥,则所有现有会话都将失效。那可能不是您想要的(或者至少不是使会话无效的正确方法)。对于依赖于秘密密钥的其他任何事物,例如由其危险生成的令牌(例如提供重置密码URL),都可能发生类似的情况。
由于崩溃,服务器重新启动,推送错误修复或新功能,所使用的服务器产生新进程等,可能需要重新启动应用程序。因此,您不能依赖在服务器上一直处于运行状态。
标准做法是将一些一次性密钥提交给存储库(以便在开发机器上有 东西 ),然后在部署时在本地配置中设置密钥。这样,密钥就不会泄漏,也不需要重新生成。
还存在运行依赖于应用程序上下文的辅助系统的情况,例如运行后台任务的Celery或应用程序的多个负载平衡实例。如果应用程序的每个正在运行的实例均具有不同的设置,则在某些情况下它们可能无法正常工作。