可以通过命令行在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
答案 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应用程序)以及更多。有开源和商业版本: