【问题标题】:Do I have to isolate my wsgi.py from my django project folder?我是否必须将我的 wsgi.py 与我的 django 项目文件夹隔离开来?
【发布时间】:2017-07-26 16:53:04
【问题描述】:

我应该把 wsgi.py 放在哪里?
我必须将它与我的 django 项目文件夹隔离吗?
我应该将我的 django 项目文件夹移到我的主目录之外吗?

目前我将我的 django 项目文件夹复制到 /home/username/djangosites/project/
我的 wsgi.py 位于文件夹 /home/username/djangosites/project/project/
在同一文件夹中有 settings.py urls.py ...

之类的文件

来自 modwsgi 文档:

"请注意,强烈建议使用 WSGI 应用程序脚本 在这种情况下,文件不要放在现有的 DocumentRoot 中 您的主要 Apache 安装,或您正在设置的特定站点 它为。这是因为如果该目录正在被使用 作为静态文件的来源,您的应用程序的源代码 或许可以下载。

您也不应该使用用户帐户的主目录,因为这样做 这意味着允许 Apache 提供该帐户中的任何文件。 在这种情况下,任何 Apache 的错误配置都可能最终暴露您的 整个帐户供下载。

因此建议设置一个特殊的目录,以区别于 其他目录,并且该目录中唯一的东西是 WSGI 应用程序脚本文件,如果有必要,任何支持文件 需要。”

【问题讨论】:

    标签: python django apache mod-wsgi


    【解决方案1】:

    让 wsgi.py 但不要让 DocumentRoot 像 /home/username/djangosites/project/ 这样会暴露你的 Python 脚本源代码,这对恶意用户肯定很有帮助。

    您只需要公开 STATIC_ROOT(在 STATIC_URL 上)和 MEDIA_ROOT(在 MEDIA_URL 上),您可以为此使用 Alias 指令。另一种解决方案是使用 dj-static。

    【讨论】:

    • 别名 /static /home/username/djangosites/project/project/static/ 静态文件夹可以是 home 的子文件夹吗?禁用 DocumentRoot 是否可能/有用?或者我为什么需要它?
    • 您不需要 DocumentRoot。您只需要 STATIC_URL 上的别名到 STATIC_ROOT。确保你没有任何不必要的东西。
    猜你喜欢
    • 1970-01-01
    • 2010-11-29
    • 2020-10-27
    • 1970-01-01
    • 2014-05-04
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    • 2022-11-21
    相关资源
    最近更新 更多