2017-03-01 88 views
0

我在網上發現了很多關於這方面的建議,但沒有什麼符合我的確切問題。我有一個網絡服務器設置,我有我們的網絡人給我一個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等。如果任何人有一個建議或一種方式,我可以在一個簡單的網址服務器,我將不勝感激。非常感謝!

+0

我找到了我的答案的一部分。根據另一篇文章,我不得不在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

回答

0

爲了讓這件事結束了,這是一個兩部分的過程:

  1. 我不得不禁用SELinux因爲它干擾。
  2. 我創建了上面指定的VirtualHost條目(基本上是一個端口重定向)
  3. 由於我們使用的是主DNS,所以我必須讓我的網絡人員爲該域添加InfoBlox條目。

之後,一切都按預期工作。 :)