Apache& Rstudio Shiny App Redirect / Proxy

时间:2017-03-01 19:02:42

标签: apache shiny shiny-server

我在网上找到了很多关于此的建议,但没有任何与我的确切问题相符的建议。我有一个网络服务器设置,我让我们的网络人员给我一个DNS名称。我们称之为analytics.mycompany.com。这在端口80上运行,我没有问题。

几个月前,我创建了一个RStudio Shiny应用程序,默认情况下,它运行在端口3838上。因此,我通过http://analytics.mycompany.com:3838/dashboard/进行了此操作。这一切都很好,但领导层要求提供更简单的网址。我让我的DNS人员给我analytics.mycompany.com的别名dashboard.mycompany.com。其中,默认只指向同一个端口80网站。

现在,我想通过一个小的apache / virtualhost / rewriterules / proxy我可以告诉apache处理从dashboard.mycompany.com收到的任何内容,只显示http://analytics.mycompany.com:3838/dashboard/处的仪表板。玩完这个后,我可以获得一个像http://analytics.mycompany.com/dashboard/这样的网址转发到正确的:3838端口和网址,但我真正想要的是让某人能够输入http://dashboard.mycompany.com并且只需要闪亮的仪表板出现。我知道在DNS中你不能为端口创建别名,所以这就是out。我希望apache可以通过某种方式处理这个问题,说:“好吧,我在端口80上有这个URL,而我只是在3838端口显示这个其他站点的内容。”

我不确定这是否可行,但这是我想要的。现在我在端口80的虚拟主机的httpd.conf文件是这样的:

<VirtualHost *:80>
   ServerAdmin admin@mycompany.com
   DocumentRoot /var/www/html
   RewriteEngine on
   RewriteCond %{REQUEST_METHOD} ^HEAD
   RewriteRule ^/dashboard(.*) /foo/index.html
   Redirect /dashboard http://analytics.mycompany.com:3838/dashboard
   ProxyPass /dashboard/ http://analytics.mycompany.com:3838/dashboard
   ProxyPassReverse /dashboard http://analytics.mycompany.com:3838/dashboard
</VirtualHost>

这是基于我发现的一个例子,并且尽可能接近我。我在想我需要某种虚拟主机来代表新的别名:

<VirtualHost dashboard.mycompany.com:80>
   .....
</VirtualHost>

但是,我发现VirtualHost的所有示例都是*:80或某些IP地址,如192.168.0.1:80等。如果有人有建议或方法我可以通过简单的URL提供服务,我将非常感激。非常感谢你!

1 个答案:

答案 0 :(得分:0)

为了结束这个过程,这是一个两部分的过程:

  1. 我不得不禁用SELinux,因为它正在干扰。
  2. 我创建了一个如上所述的VirtualHost条目(基本上是端口重定向)
  3. 由于我们使用主DNS,因此我必须让我的网络人员为域名添加InfoBlox条目。
  4. 之后,一切都按预期工作。 :)