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

标签 django ubuntu nginx web-deployment

背景

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

问题

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

嘉宾

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

  • 我知道这些猜测没有明确的答案,但我很确定有一些普遍认为是安全的常见良好做法。

    最佳答案

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

    除此之外,代码的去向并不重要。我个人喜欢/srv .

    关于django - Django部署的正确项目路径和目录权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37602013/

    相关文章:

    django - Nginx密码认证不断提示输入密码

    python - 在不破坏导入的情况下将独立的 django 脚本放在哪里?

    python - 从字段内获取 Django 字段值

    python - Celery/Redis 同一任务并行执行多次

    ruby-on-rails - rvm --default 不设置 1.9.2 ubuntu 11.10 + 无法安装 rails

    nginx - Docker镜像NGINX不公开: site cannot be reached

    Nginx密码保护root,子目录单独密码

    python - 如何在 Django 中获取查询集的所有子项?

    python - 使用 gdb 7 对调试 Python 程序的支持需要什么?

    linux - Mysql无法通过socket连接到本地服务器