2014-12-09 39 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/