r闪亮的本地生活在不同的路径/域

时间:2014-12-09 11:23:09

标签: r shiny rstudio shiny-server

可以通过命令行在R中运行闪亮的服务器。

> R -e "shiny::runApp('~/Development/shiny_folder') 

这使得闪亮的应用程序在http://127.0.0.1:3192上生效。我可以通过将它带到另一个端口来自定义这一点;

> R -e "shiny::runApp('~/Development/shiny_folder', port=9999)"

到目前为止一切顺利。但是也可以指定路径吗?以下代码不起作用。

> R -e "shiny::runApp('~/Development/shiny_folder', port=9999, host = getOption('shiny.host','127.0.0.1/foobar/'))"

它出现以下错误:

Loading required package: shiny

Listening on http://127.0.0.1/foobar/:9999
Error in startServer(host, port, handlerManager$createHttpuvApp()) :
  Failed to create server
Calls: <Anonymous> -> startApp -> startServer
Execution halted

1 个答案:

答案 0 :(得分:4)

我认为您希望您的Shiny应用程序显示在http://127.0.0.1/foobar

Shiny软件包本身没有这个功能,但有很多方法可以实现这一点。

最简单的方法是使用nginx作为反向代理 - 在端口9999上启动Shiny,并在nginx.conf中使用类似的内容:

server {
    listen 80;
    server_name localhost;
    location /foobar/ {
      rewrite ^/foobar/(.*)$ /$1 break;
      proxy_pass http://localhost:9999;
      proxy_redirect http://localhost:9999/ $scheme://$host/foobar/;
    }
}

如果您有多个应用和/或计划公开您的应用,例如一个内部网(或互联网),你可能想要Shiny Server,这正是你在这里所做的(路由URL到Shiny应用程序)以及更多。有开源和商业版本:

http://www.rstudio.com/products/shiny/shiny-server/