【问题标题】:Getting upload process via Nginx + Unicorn通过 Nginx + Unicorn 获取上传过程
【发布时间】:2011-09-14 04:08:41
【问题描述】:

我正在使用 Nginx 为我拥有的 Rails 应用程序反向代理我的 Unicorn 进程。我希望能够获得文件上传的进度状态(类似于apache-upload-progress-module)。我尝试使用 NginxHttpUploadProgressModule 但 /progress 仍然路由到 Rails 应用程序,所以这不起作用。我按照NginxHttpUploadProgressModule 中的步骤操作,所以我真的在这里停下来。

【问题讨论】:

    标签: ruby-on-rails upload nginx rack unicorn


    【解决方案1】:

    没有看到您实现的确切配置,也没有调试日志,很难理解可能出了什么问题。

    我建议你:

    1. 使用 --with-debug 选项编译 nginx 并使用 error_log 指令激活调试日志。
    2. 检查 /progress 请求的调试日志并查看测试位置的顺序。

    很可能您正在使用 try_files 并且您的 /progress 位置不会触发,因为它位于您的全部捕获位置之后。您可以尝试将 /progress 位置放在服务器 {} 指令的顶部

    【讨论】:

      【解决方案2】:

      我正在使用它,有一个

      location ^~ /progress {
        upload_progress_json_output;
        report_uploads proxied;
      }
      

      服务器块中的部分,它工作正常,Rails 永远不会看到/progress

      【讨论】:

      • nginx conf 文件中还有什么需要的吗?您是否还需要某个地方的“track_uploads”部分?如果是这样,它还有什么内容?
      【解决方案3】:

      好吧,我在你们(masterzen 和 j-l)的帮助下想通了。我没有

      location ^~ /progress {
        upload_progress_json_output;
        report_uploads proxied;
      }
      

      但是

      location ^~ /progress {
        report_uploads proxied;
      }
      

      masterzen 的评论对我也有帮助

      location / {
        # blah blah
      }
      

      在 /progress 之前。非常感谢你们!!

      【讨论】:

      • 您的 nginx 配置中是否需要“track_uploads”部分?如果是这样,它会去哪里,以及它在 location 块中还有什么?
      猜你喜欢
      • 2021-05-27
      • 2012-04-07
      • 1970-01-01
      • 2012-10-30
      • 2019-01-07
      • 2019-12-27
      • 2014-02-02
      • 1970-01-01
      • 2012-01-29
      相关资源
      最近更新 更多