Django 部署的正确项目路径和目录权限?
Proper project path and directory permissions for Django deployment?
背景
我正在学习在 Ubuntu 之上使用 Nginx 部署 Django 应用程序。据我所知,/var/www/<project_root>
是放置 Django 项目的常见位置。
问题
我不确定 /var/www
是否被认为是该项目的良好和安全做法,或者是否有一些其他选项被认为更合适。此外,我不完全确定谁应该是项目目录的所有者以及它应该拥有哪些权限。
问题
- 我应该将 Django 项目放在 Ubuntu 文件系统中的什么位置?
- 哪个用户应该拥有项目目录?
- 项目目录和文件应该有什么权限
我知道这些问题没有明确的答案,但我很确定有一些被广泛认为是安全的常见良好做法。
实际上,/var/www
对您的 Django 代码来说是一个糟糕的地方。它是 Apache 的默认 DocumentRoot,也是它向用户提供文件的地方;但是 Django 代码不是应该提供的文件,而是应该 运行 的代码。将代码放在那里可能会导致错误配置允许您的代码直接提供给用户,这是一个很大的安全风险。
除此之外,代码放在哪里并不重要。我个人喜欢 /srv
.
背景
我正在学习在 Ubuntu 之上使用 Nginx 部署 Django 应用程序。据我所知,/var/www/<project_root>
是放置 Django 项目的常见位置。
问题
我不确定 /var/www
是否被认为是该项目的良好和安全做法,或者是否有一些其他选项被认为更合适。此外,我不完全确定谁应该是项目目录的所有者以及它应该拥有哪些权限。
问题
- 我应该将 Django 项目放在 Ubuntu 文件系统中的什么位置?
- 哪个用户应该拥有项目目录?
- 项目目录和文件应该有什么权限
我知道这些问题没有明确的答案,但我很确定有一些被广泛认为是安全的常见良好做法。
实际上,/var/www
对您的 Django 代码来说是一个糟糕的地方。它是 Apache 的默认 DocumentRoot,也是它向用户提供文件的地方;但是 Django 代码不是应该提供的文件,而是应该 运行 的代码。将代码放在那里可能会导致错误配置允许您的代码直接提供给用户,这是一个很大的安全风险。
除此之外,代码放在哪里并不重要。我个人喜欢 /srv
.