2014-12-09 62 views
2

可以通过命令行在R中运行一个闪亮的服务器。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 

回答

4

我相信你想你的闪亮应用在http://127.0.0.1/foobar要显示?

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

最简单的方法是使用nginx作为反向代理 - 开始闪亮端口9999,并使用这样的事情在你的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服务器,它完全做你在这里做的事情(路由URL到Shiny应用)以及更多。有开源和商业版本:

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