我在網上發現了很多關於這方面的建議,但沒有什麼符合我的確切問題。我有一個網絡服務器設置,我有我們的網絡人給我一個DNS名稱。我們稱之爲analytics.mycompany.com
。這在端口80上運行,我沒有問題。Apache&Rstudio Shiny應用重定向/代理
幾個月前,我創建了一個RStudio Shiny應用程序,默認情況下,該應用程序在端口3838上運行。因此,我通過http://analytics.mycompany.com:3838/dashboard/
得到此信息。這一切都很好,但領導層要求更簡單的URL。我有我的DNS傢伙給我一個analytics.mycompany.com
的別名爲dashboard.mycompany.com
。其中,默認情況下只指向相同的端口80網站。
現在,我帶着一個小小的apache /虛擬主機/ rewriterules /代理我可以告訴apache處理從dashboard.mycompany.com
收到的任何內容,只顯示儀表板http://analytics.mycompany.com:3838/dashboard/
。玩這個之後,我可以得到一個像http://analytics.mycompany.com/dashboard/
這樣的URL來轉發到正確的:3838端口和URL,但是我真正想要的只是讓某人能夠輸入http://dashboard.mycompany.com
並且只顯示閃亮的儀表板。我知道在DNS中你不能向端口發送別名,所以這是不可能的。我希望Apache能夠以某種方式處理這個問題,他說:「好的,我在80端口上有這個URL,我只是在3838端口顯示這個其他站點的內容。」
我不確定這是否可能,但它是我想要的。現在,在80端口的虛擬主機我的httpd.conf文件是這樣的:
<VirtualHost *:80>
ServerAdmin [email protected]
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>
然而,所有的例子,我覺得虛擬主機的是*:80個或某些IP ADDRES像192.168.0.1: 80等。如果任何人有一個建議或一種方式,我可以在一個簡單的網址服務器,我將不勝感激。非常感謝!
我找到了我的答案的一部分。根據另一篇文章,我不得不在RHEL上修改SELinux:/ usr/sbin/setsebool -P httpd_can_network_connect 1完成後,我現在可以輸入http://analytics.mycompany.com/dashboard並顯示沒有:3838。現在我只需要以「http://analytics.mycompany.com/dashboard」的形式顯示「dashboard.mycompany.com」的內容。任何進一步的幫助將是非常好的。謝謝! – azdatasci