Apache 和 Rstudio 闪亮应用 Redirect/Proxy

Apache & Rstudio Shiny App Redirect/Proxy

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

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

现在,我想 apache/virtualhost/rewriterules/proxy 我可以告诉 apache 处理它从 dashboard.mycompany.com 收到的任何东西,只显示 http://analytics.mycompany.com:3838/dashboard/ 的仪表板。玩这个之后,我可以得到一个 URL 像 http://analytics.mycompany.com/dashboard/ 转发到正确的 :3838 端口和 URL,但我真正想要的是有人能够只输入 http://dashboard.mycompany.com 并且只显示闪亮的仪表板。我知道在 DNS 中你不能为端口创建别名,所以那是不可能的。我希望 apache 能以某种方式处理这个问题,比如 "ok, I have this URL on port 80 and I'm going to just display the content of this other site at port 3838."

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

<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. 我不得不禁用 SELinux,因为它会造成干扰。
  2. 我按照上面的说明创建了一个 VirtualHost 条目(基本上是一个端口重定向)
  3. 由于我们使用主 DNS,我不得不让我的网络人员在 InfoBlox 中为该域添加一个条目。

在那之后,一切都按预期进行。 :)