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 将其服务器化,我将不胜感激。非常感谢!
为了结束这个,这是一个分为两部分的过程:
- 我不得不禁用 SELinux,因为它会造成干扰。
- 我按照上面的说明创建了一个 VirtualHost 条目(基本上是一个端口重定向)
- 由于我们使用主 DNS,我不得不让我的网络人员在 InfoBlox 中为该域添加一个条目。
在那之后,一切都按预期进行。 :)
我在网上找到了很多关于此的建议,但没有一个与我的确切问题相符。我有一个网络服务器设置,我已经让我们的网络人员给我一个 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 将其服务器化,我将不胜感激。非常感谢!
为了结束这个,这是一个分为两部分的过程:
- 我不得不禁用 SELinux,因为它会造成干扰。
- 我按照上面的说明创建了一个 VirtualHost 条目(基本上是一个端口重定向)
- 由于我们使用主 DNS,我不得不让我的网络人员在 InfoBlox 中为该域添加一个条目。
在那之后,一切都按预期进行。 :)