如何防止我的Shiny App在开源的Shiny Server中断开连接?

时间:2019-01-29 08:53:27

标签: r nginx shiny shiny-server

我正在使用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配置文件以使其工作吗?但是我知道只能在专业版中延长超时时间,但是我猜必须有一些解决方法。

1 个答案:

答案 0 :(得分:1)

通过在Shiny Server配置文件中将app_idle_timeout设置为0,可以在Shiny Server(开源或Pro)中禁用应用程序空闲超时。

例如,

location / {
    app_idle_timeout 0;
}

https://docs.rstudio.com/shiny-server/#application-timeouts

  

app_idle_timeout -定义没有活动连接的R进程应保持打开状态的时间(以秒为单位)。在最后一个连接与R进程断开连接后,此计时器将启动,并且在指定的秒数后,如果未创建新连接,则R进程将被终止。 app_idle_timeout的默认值为5秒。