gpt4 book ai didi

python - Django 可以单独运行在 Gunicorn 上吗(没有 Apache 或 nginx)?

转载 作者:太空狗 更新时间:2023-10-29 17:55:35 25 4
gpt4 key购买 nike

我几乎尝试了网络上的所有 django + nginx 教程,但我无法在屏幕上显示图像文件。这总是老生常谈 - 404 PAGE NOT FOUND。网页加载正常,但我的 /static/ 文件夹中的 django.png 没有。不确定这是 settings.py 中的问题还是 nginx 的问题。

我对此感到非常沮丧,以至于我拒绝看另一篇“如何获得 nginx/django 教程”。如果我在不久的将来部署一个网站,Gunicorn 是否足以在不使用 Apache 或 nginx 的情况下运行 Django 站点并同时提供静态文件?首先拥有反向代理有很大好处吗?

最佳答案

是的。 Gunicorn 也可以为您的静态服务。

如果一切都失败了,让 django 为你做(尽管,在挫折之前这样做是最后的手段。)为此,你只需要添加另一个 url 模式,如下所示:

urlpatterns = patterns('',
# ... the rest of your URLconf goes here ...
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

虽然提供静态服务的 django 比根本不提供静态服务要好,但值得将其委托(delegate)给像 nginx 这样针对相同内容进行优化的服务器。

我建议首先在不同的端口上运行 nginx,然后更改 django STATIC_URL 设置以包含该端口(在您确认该端口服务于静态后)。 - 这样做就像从 nginx 文件夹中对 MEDIA_ROOT 进行 simlink 一样简单。

而且,如果您无论如何都在使用 nginx,那么代理所有使用它的请求并且只将 django 请求传递给 gunicorn 也很好。所有这一切都需要添加一个 conf 文件来相应地告诉 nginx。

我可以看到对于那些开始并尝试一次完成所有操作(代理请求、静态服务、配置 nginx)的人来说,它是如何令人困惑的。一一尝试。从 gunicorn 获取媒体;然后从 nginx 提供它,然后最终也有 nginx 代理。但是,在您将应用程序投入生产之前,请执行所有这些操作。我已经看到这种方法增加了理解并减少了挫败感。

关于python - Django 可以单独运行在 Gunicorn 上吗(没有 Apache 或 nginx)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10862259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com