ERR_EMPTY_RESPONSE 闪亮的服务器

Posted

技术标签:

【中文标题】ERR_EMPTY_RESPONSE 闪亮的服务器【英文标题】:ERR_EMPTY_RESPONSE shiny server 【发布时间】:2021-11-07 05:55:31 【问题描述】:

我目前在 centos7 发行版的闪亮服务器开源上托管了许多闪亮的应用程序。所有应用程序都运行良好,但对于其中一个应用程序,当我尝试访问该 url 时,我收到以下消息:

此页面无法正常工作 没有收到任何数据。 ERR_EMPTY_RESPONSE。

托管在同一台闪亮服务器上的所有其他闪亮应用都运行良好。我检查了/var/log/shiny-server 并且没有此应用程序的日志文件。由于其他应用程序运行良好,我认为这不是端口问题。

其他应用程序与此应用程序的唯一区别是用户使用最多。运行时闪亮服务器是否有一些限制/限制?我无法弄清楚问题是什么。该应用程序在 RStudio Server 上运行良好,如果我将其复制到 /srv/shiny-server/ 的新目录中并使用不同的名称,它也可以正常运行。

【问题讨论】:

【参考方案1】:

一些想法:

如果进程成功关闭,则 Shiny 会删除日志文件。因此,您可能会丢失一些日志文件。您可以使用preserve_logs 覆盖它,请参阅here。您的用户可能在与应用的交互过程中触发了一些错误,但其他会话是成功的,因此闪亮会删除日志文件。 Shiny 默认为每个应用创建一个进程,但会话数量不受限制(请参阅here)。这意味着,如果您的应用程序是用户使用最多的应用程序,那么每个用户都会生成一个新会话。如果应用程序是计算密集型的,那么一些用户会话可能会积压,这可能会触发 ERR_EMPTY_RESPONSE。您可以通过使用 Docker 为每个用户启动一个进程来解决此问题。 Here 是一些选项,我发现 shinyproxy 是最直观的。

【讨论】:

您好,感谢您的信息。我将整理日志文件。我知道该应用程序是单线程的,但它的计算成本并不高,所以我怀疑积压是一个问题。它也不会通过 Promise 从异步中受益。不幸的是,由于公司政策,我不能碰码头。首先,这将是我的首选。但是我确实想知道用户是否以某种方式使该工具崩溃并断开连接,这会导致积压吗?我不这么认为,但我猜。 即使它不是计算密集型的,太多的用户也可能会压倒你的盒子(正如你所怀疑的那样)。如果错误消息与许多用户相关,那么您就有了答案,您可以寻找解决方案(Docker、RStudio Connect 是另一个更大的盒子,多线程)。如果你真的需要确认,你可以查看你盒子上的统计数据,看看当用户开始看到 ERR_EMPTY_RESPONSE 消息时 CPU 或其他东西是否出现峰值。如果是这种情况,R 代码将无法解决您的问题。 您好,再次感谢。 preserve_logs 确实有帮助!非常愚蠢和尴尬,我在代码中留下了一个无限循环! 不需要自嘲!类似的事情会发生,这就是为什么有日志和调试工具的原因。我猜那是编码。如果对您有用,请接受答案。

以上是关于ERR_EMPTY_RESPONSE 闪亮的服务器的主要内容,如果未能解决你的问题,请参考以下文章

下载生成的 zip 时出现 ERR_EMPTY_RESPONSE

POST 到 Node.js 服务器导致长时间负载,导致 ERR_EMPTY_RESPONSE

“本地主机没有发送数据。ERR_EMPTY_RESPONSE”和“curl:(52)来自服务器的空回复”

在$ .POST上获取ERR_EMPTY_RESPONSE

Node.js 应用程序提供 ERR_EMPTY_RESPONSE

Node.js 应用程序提供 ERR_EMPTY_RESPONSE