【问题标题】:Nginx Reverse Proxy very slow on image uploadNginx 反向代理在图像上传时非常慢
【发布时间】:2022-01-11 02:28:35
【问题描述】:

我使用 Nginx 作为 Gunicorn 的 Django 项目的反向代理。 它用于https。网站上的所有内容都加载得很快,除非我发送一个包含多部分表单数据的 POST 请求。

那么 2 兆字节的图像处理请求需要 26 秒。对于 60 KB 的图像,它需要几秒钟,但仍然太长了。

我用 python 时间模块测量了 Django 视图的处理时间,得到了大约 80 毫秒。

在本地开发服务器上进行测试期间,处理请求大约需要一秒钟。在部署服务器上,所有媒体文件都可以快速提供。所以我猜原因是 Nginx 的多部分表单请求配置不合适。

我的 conf 文件大部分都没有动过。我尝试了所有修改缓存设置的 StackOverflow 解决方案,并尝试了一次启用缓存但没有成功。是否有我遗漏的信息和配置?

我的表单标题:

<form id="configsForm" method="POST" action="" enctype="multipart/form-data">
{% csrf_token %}

执行后进入Gunicorn journalctl:

- "POST /settings/profileconfigs/ HTTP/1.0" 200

【问题讨论】:

  • Nginx 对我来说工作得很快。可以分享一下post请求的方法来检查吗?
  • 很高兴听到这个消息!我不太确定您所说的“发布请求的方法”是什么意思。所以我在问题执行后添加了表单标题和gunicorn的日志条目。我希望那是你所需要的。如果不告诉我。
  • 我指的是可能驻留在您的views.py 中的代码。也许问题不是上传,而是另一个可能的功能或方法导致了延迟。
  • 啊,谢谢。视野相当长。我再次检查,从函数开始到返回之前所需的时间是 75 毫秒。所以我怀疑是nginx造成了时间消耗。但是,如果您真的需要该功能,我会将其添加到问题中。您是否必须进行任何设置以使 nginx 可以正常处理多部分请求,还是直接工作?我可以问一下 nginx 对哪些文件类型可以快速运行?
  • 我在 nginx 上有这个配置:pastebin.com/TyfsmQja。它可以很好地上传到媒体文件夹,当我迁移到 minio 时也很好

标签: django nginx


【解决方案1】:

在 nginx 层面还是没找到解决办法。

但我知道大约 100 kB 的图像加载速度非常快。因此,我在将文件输入中的图像发送到服务器之前,使用 JavaScript 对其进行了压缩。这适用于 .jpeg 图像。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-30
    • 1970-01-01
    相关资源
    最近更新 更多