Django 部署的正确项目路径和目录权限?

Proper project path and directory permissions for Django deployment?

背景

我正在学习在 Ubuntu 之上使用 Nginx 部署 Django 应用程序。据我所知,/var/www/<project_root> 是放置 Django 项目的常见位置。

问题

我不确定 /var/www 是否被认为是该项目的良好和安全做法,或者是否有一些其他选项被认为更合适。此外,我不完全确定谁应该是项目目录的所有者以及它应该拥有哪些权限。

问题

  1. 我应该将 Django 项目放在 Ubuntu 文件系统中的什么位置?
  2. 哪个用户应该拥有项目目录?
  3. 项目目录和文件应该有什么权限

我知道这些问题没有明确的答案,但我很确定有一些被广泛认为是安全的常见良好做法。

实际上,/var/www 对您的 Django 代码来说是一个糟糕的地方。它是 Apache 的默认 DocumentRoot,也是它向用户提供文件的地方;但是 Django 代码不是应该提供的文件,而是应该 运行 的代码。将代码放在那里可能会导致错误配置允许您的代码直接提供给用户,这是一个很大的安全风险。

除此之外,代码放在哪里并不重要。我个人喜欢 /srv.