【问题标题】:Shiny server disconnecting app after adding SSL and apache?添加 SSL 和 apache 后,闪亮的服务器断开应用程序?
【发布时间】:2021-12-17 20:30:40
【问题描述】:

我在虚拟机上部署了一个闪亮的应用程序,并带有免费版本的闪亮服务器。 它在本地运行没有任何问题,当通过 localhost(相同的 Intranet)访问时。

但是,在添加 Apache 和 SSL 证书以便能够从任何地方访问应用程序之后,就会出现一些断开连接的问题。

应用程序在需要进行更长时间的计算(约 1 分钟)时断开连接。但是,在断开连接之前,它会显示该计算的结果(在本例中是带有 plotly 的绘图)。

我收到以下错误:

Firefox can’t establish a connection to the server at https://*****/websocket

Connection closed. Info: {"type":"close","code":4704,
"reason":"Protocol error handling message: Error: Discard position id too big","wasClean":true}

/var/log/shiny-service/.log 上的日志文件没有显示任何错误: 这是最后一行:Please specify in ggplotly() or plot_ly()。不会导致任何错误的消息。

我已经尝试了所有我能找到的方法:

Apache 配置:

  1. keepAlive On
  2. MaxKeepAliveRequests 0

闪亮的服务器配置:

  1. app_init_timeout 300;
  2. app_idle_timeout 300;

我不知道还有什么办法可以解决这个问题,我们将不胜感激。

编辑

这是应用程序在断开连接后的样子,情节已生成,一分钟后,但它仍会自动断开连接。

【问题讨论】:

  • 您介意分享日志文件的最后 20 行吗?

标签: r apache ssl shiny shiny-server


【解决方案1】:

我相信您可以通过增加app_init_timeoutapp_idle_timeout 的值来解决问题。请参阅this SO threadthese 相关文档。另请参阅 this(关于 Apache MaxKeepAliveRequests 选项)。

我会通过反复试验找到最佳值,但根据其他用户 cmet,它可能需要高达 1800。我想它在您的 LAN 上工作的原因是这种方式的延迟会低得多。

话虽如此,如果花费的时间如此之长,那么应用程序中可能存在需要以某种方式重新编码的内容,或者依赖于某些太大的数据集。您可能可以通过减少发送到 plot.ly 的数据大小或正在计算的计算范围来测试这一点,然后查看问题是否消失。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-23
    • 2023-01-13
    • 2021-01-13
    • 2018-12-02
    • 1970-01-01
    • 2016-08-01
    • 2014-08-09
    • 2020-09-12
    相关资源
    最近更新 更多