【问题标题】:Shiny Server periodic ERR_CONTENT_LENGTH_MISMATCH behind firewall防火墙后的闪亮服务器定期 ERR_CONTENT_LENGTH_MISMATCH
【发布时间】:2017-05-07 04:48:03
【问题描述】:

我这几天一直在努力解决这个问题,我真的希望有一些方向可以帮助解决。由于我不知道问题出在哪里,因此很难知道寻求帮助的最佳论坛。我还与我的 IT 部门并行工作以获得帮助。

我在 Microsoft Azure 订阅中的 Ubuntu 16.04 LTS VM 上托管 Shiny 服务器。根据 rstudio 站点上的说明,我已将 Apache 设置为通过端口 80 托管 rstudio 服务器和闪亮服务器的反向代理。 (我的公司防火墙阻止了端口 80 之外的流量)Rstudio 服务器工作正常。

问题:当运行允许用户上传文件的应用程序时,应用程序会频繁但无法预料地崩溃。批量上传多个文件时比较常见,但上传单个小文件(~20kb)时也会发生这种情况。我一次上传了多达 90 个类似大小的文件,有时会成功。很高兴跟进对配置设置的任何特定请求。我希望以下线索会突然出现在某人身上,为我指明正确的方向。谢谢。

追踪错误来源的线索:

  1. 我只看到公司防火墙背后的问题。我可以在家里的电脑上毫无问题地使用该应用。
  2. 我在 shinyapps.io 托管了该应用程序,即使在防火墙后面也能正常工作。 (所以我将其解释为我应该能够以某种方式进行配置)
  3. 包含的示例应用程序以及任何不需要上传文件的应用程序都可以正常工作。
  4. 当我启动一个新 VM 时,安装 R,然后 Shiny,将主机端口更改为 80,但其他所有内容保持默认...我仍然遇到问题。
  5. 我使用的是最新版本的 Chrome,当我加载应用程序时,我总是收到以下消息,即使应用程序正常运行也是如此。 (我用'url'替换了我的域名)

    WebSocket connection to 'ws://url/Shiny/uploadtest/__sockjs__/n=CSo4tDHrGWR4JWQEg4/200/dcuryf1t/websocket' failed: A server must not mask any frames that it sends to the client.
    
    y.websocket                 @ sockjs-0.3.4.min.js:27
    
    y._try_next_protocol        @ sockjs-0.3.4.min.js:27
    
    y._didClose                     @ sockjs-0.3.4.min.js:27
    
    f._ir.onfinish                  @ sockjs-0.3.4.min.js:27
    
    f.emit                          @ sockjs-0.3.4.min.js:27
    
    f.onfinish                      @ sockjs-0.3.4.min.js:27
    
    f.emit                          @ sockjs-0.3.4.min.js:27
    
    g.xhr.onreadystatechange    @ sockjs-0.3.4.min.js:27
    
  6. 只有当应用程序崩溃时,我才会收到以下错误:

    POST http://url/Shiny/uploadtest/session/3bcb8bbc2126672cbc1901c18cfe9d15/upload/36076c87d14189a785e7ceb5?w= net::ERR_CONTENT_LENGTH_MISMATCH
    
    send                                               @    jquery.min.js:4
    
    ajax                                               @    jquery.min.js:4
    
    onFile                                  @input_binding_fileinput.js:92
    
    $run                                            @   file_processor.js:80
    
    (anonymous)                             @   file_processor.js:50
    
    (anonymous)                             @input_binding_fileinput.js:82
    
    (anonymous)                             @   shinyapp.js:610
    
    _sendMessagesToHandlers             @   shinyapp.js:521
    
    dispatchMessage                         @   shinyapp.js:507
    
    c.onmessage                             @   shinyapp.js:114
    
    _conn.onmessage                         @   shiny-server-client.min.js:1
    
    MultiplexClient._conn.onmessage         @   shiny-server-client.min.js:1
    
    BufferedResendConnection._handleMessage     @   shiny-server-client.min.js:1
    
    RobustConnection._handleMessage         @   shiny-server-client.min.js:1
    
    conn.(anonymous function)               @   shiny-server-client.min.js:2
    
    d.dispatchEvent                             @   sockjs-0.3.4.min.js:27
    
    y._dispatchMessage                      @   sockjs-0.3.4.min.js:27
    
    y._didMessage                               @   sockjs-0.3.4.min.js:27
    
    b.onmessage                             @   sockjs-0.3.4.min.js:27
    
    d.dispatchEvent                             @   sockjs-0.3.4.min.js:27
    
    c.xo.onchunk                                @   sockjs-0.3.4.min.js:27
    
    f.emit                                      @   sockjs-0.3.4.min.js:27
    
    g.xhr.onreadystatechange                @   sockjs-0.3.4.min.js:27
    

【问题讨论】:

    标签: shiny-server


    【解决方案1】:

    成功了,我想在我的案例中为任何偶然发现此问题的人发布答案。事实证明,我们公司的防火墙在 HTTP 连接上与 Shiny 的配合并不好。我们设置 apache 以通过 TLS 提供安全连接,现在一切正常。

    【讨论】:

      猜你喜欢
      • 2012-02-06
      • 1970-01-01
      • 2011-11-19
      • 2013-07-05
      • 2019-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多