【问题标题】:How to host Shiny apps on windows server?如何在 Windows 服务器上托管 Shiny 应用程序?
【发布时间】:2018-04-01 14:51:22
【问题描述】:

我已经开发了一些闪亮的应用程序,我想将它们提供给一些选定的内部用户用于测试和继续开发。

在云端或 shinyapps.io 上部署应用程序不是一种选择,因为这些应用程序正在处理敏感的内部数据。

不幸的是,使用 ShinyServer 也不是一个选项,因为我们有严格的 Microsoft 唯一 IT 架构,因此我只有 一台装有 Windows Server 2012 R2 的虚拟机。

我一直在进行一些网络搜索,并发现了以下内容:

i.) 我可以在 Windows 机器上托管我的应用程序,如下所述:https://stackoverflow.com/a/44584982/7306540。这似乎相当骇人听闻 一点都不优雅。它一次只允许托管一个应用程序,我不确定它是否允许多个并发用户。

ii.) 我可以使用 shinyproxy.io,它可能在 Windows 机器上工作,但涉及相当多的复杂安装 和我不是特别热衷于做的配置工作。

iii.) SQLServer 2016 似乎具有某种 R 集成。我们目前使用的是 SQLServer2014,有可能升级到 2016 原则上。但是,我不知道 SQLServer2016 的“R 功能”是否允许托管 Shiny Apps。我找到了这篇博文,https://social.technet.microsoft.com/Forums/windowsserver/en-US/1cf94cbb-c45d-4f8d-8b5e-9d208bfe369a/microsoft-r-server-can-i-host-shiny-apps-yet?forum=MicrosoftR,但没有答案:

Q:有没有人更了解SQLServer2016在这方面的能力? 其他选择呢?有没有其他方法可以在 Windows Server 上托管我的应用程序? RStudio 的制造商是否计划添加 Windows 版本的 ShinyServer?还有其他人在做这个吗? 我将不胜感激对此主题的任何见解!

编辑:

其他托管选项:

iv.) 我们可以在 Windows Server 上安装 VM,例如Virtual Box 或 VM Player,安装 Linux 和 Shiny Server 并从那里托管。如果 Shiny Apps 需要访问 Windows 机器上的 SQL Server DB,我们可能会在此变体中遇到问题。

i.) 这个变体可以通过使用(引用@gregL)来改进:“pm2.keymetrics.io,一个流程管理器,通常用于生产中的 Node.js。管道工文档描述了如何将 pm2 与 R 一起使用: rplumber.io/docs/hosting.html#pm2"

【问题讨论】:

  • 虚拟机怎么样,比如Virtual Box?
  • 选项 1 实际上听起来很适合内部使用。如果你想加强它,你可以查看pm2.keymetrics.io 之类的东西,这是一个通常用于生产中的 Node.js 的流程管理器。管道工文档描述了如何将 pm2 与 R 一起使用:rplumber.io/docs/hosting.html#pm2
  • @PorkChop:是的,这确实是一个选择。还没想过。非常感谢!
  • @gregL:非常感谢您的意见。我还不熟悉您提到的工具,但它们听起来确实很有趣。我会调查一下!我想我也应该用你的输入编辑我上面的帖子..
  • @zaini 看看这里chrisbeeley.net/?p=624

标签: sql-server shiny rstudio shiny-server shinyproxy


【解决方案1】:

可以在 Windows 上托管 Shiny Apps!

在工作中,我们托管了几个闪亮的生产仪表板,所以这绝对是可能的。您可以通过扩展您提到的 i.) 解决方案并为应用程序使用不同的端口来托管更多闪亮的应用程序。此处列出了您需要采取的步骤:

  • 确保端口在本地(evtl。也是远程)防火墙中为 TCP/IP 连接打开
  • 在启动本地 R 会话的本地计算机上运行“计划任务”,如 i.) 所述,确保任务超时并在需要时重新启动

一旦这些设置到位,您就可以先在本地测试 Shiny 应用程序,也可以从远程站点测试。编辑闪亮的应用程序也可以实时完成,在 GUI 方面,但如果你想刷新数据,你将不得不重新启动 R 命令进程。 提示:您还应该有一个索引网页,其中列出了所有正在运行的应用程序及其端口

【讨论】:

  • 确实有效!多个并发用户也是可能的。但是一个用户必须等到应用程序完成其他用户的请求。因此,如果您想同时为许多用户提供(长期运行的)闪亮应用,那不是一个好的选择。
猜你喜欢
  • 2020-09-26
  • 1970-01-01
  • 2021-06-26
  • 2023-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多