我在网上找到了很多关于此的建议,但没有任何与我的确切问题相符的建议。我有一个网络服务器设置,我让我们的网络人员给我一个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提供服务,我将非常感激。非常感谢你!
答案 0 :(得分:0)
为了结束这个过程,这是一个两部分的过程:
之后,一切都按预期工作。 :)