如何防止我的 Shiny App 在开源闪亮服务器中断开连接?
Posted
技术标签:
【中文标题】如何防止我的 Shiny App 在开源闪亮服务器中断开连接?【英文标题】:How can I prevent my Shiny App from disconnecting in a open-source shiny-server? 【发布时间】:2019-06-22 08:20:23 【问题描述】:我正在使用 Ubuntu 和 nginx 在开源闪亮服务器上运行 R 闪亮应用程序。但是,由于某种原因,我的应用程序不断收到“与服务器断开连接”的消息,我似乎无法让它工作。闪亮的应用程序在我的本地运行得非常好。
我已经通过Shiny server session time out doesn't work 中的以下建议尝试了 javascript 解决方法,但它似乎仍然不起作用。
还尝试将 app_idle_timeout 和 app_init_timeout 设置为更长的持续时间,但无济于事。
这是我的 nginx 配置文件:
server
listen 80;
listen [::]:80;
listen 443 ssl;
server_name some_ip_address;
location /
proxy_pass http://localhost:3838/;
proxy_redirect http://localhost:3838/ $scheme://$host/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_read_timeout 20d;
想知道我是否编辑了闪亮的服务器或 nginx 配置文件来完成这项工作?但我知道只能在专业版中延长超时时间,但我猜肯定有一些解决方法。
【问题讨论】:
这个错误很可能是由于shinyapp内部的错误,检查闪亮的日志或进入你的服务器并使用runApp
看看你是否可以重现它
@PorkChop 感谢您的建议!我已经更改了闪亮的日志,并意识到我的代码中有一个小错误导致了这个问题。现在设法修复它
很高兴它成功了,我看到 shiny-server
一直断开连接确保并在适当的地方使用 try catch
和 req
这看起来像一个 nginx 配置。那真的是你的 Shiny Server 配置,还是一个名为 shiny-server.conf 的 nginx 配置文件?
@PorkChop 是的,与 shiny-server 断开连接很烦人,会听取您的建议并再次感谢您!
【参考方案1】:
您可以通过在 Shiny Server 配置文件中将 app_idle_timeout
设置为 0 来禁用 Shiny Server(开源或专业版)中的应用程序空闲超时。
例如,
location /
app_idle_timeout 0;
https://docs.rstudio.com/shiny-server/#application-timeouts
app_idle_timeout -- 定义没有活动连接的 R 进程应保持打开的时间量(以秒为单位)。在最后一个连接与 R 进程断开连接后,此计时器将启动,并且在指定的秒数后,如果没有创建新连接,则 R 进程将被终止。 app_idle_timeout 的默认值为 5 秒。
【讨论】:
以上是关于如何防止我的 Shiny App 在开源闪亮服务器中断开连接?的主要内容,如果未能解决你的问题,请参考以下文章