2016-12-14 45 views
0

我正在嘗試將Apache HTTPD 2.4配置爲託管在同一臺服務器上的兩個不同應用程序。在一個域下的主機2應用程序Apache HTTPD

應用1是在8080端口(Tomcat)的可達

mysingledomain.com:8080 

應用2在端口3030(紅寶石[短跑])可達

mysingledomain.com:3030 

我想要做的是分別達到了他們作爲mysingledomain.com/App1mysingledomain.com/App2

我的情況很像這個問題如何開始: Host 2 Sites in HTTPD

這些都是SPA應用程序,但當我沒有DocumentRoot來分離配置時,我對如何設置這個問題感到相當困惑。

我該如何設置HTTPD以這種方式將HTTP請求放在前面?

我能夠配置Ruby應用程序,堅持用以下配置的子路徑,而這會影響其他:

<VirtualHost *:80> 
    ProxyRequests On # <---- WARNING DO NOT DO THIS 
    ProxyVia On 
    ProxyPreserveHost On 
    RewriteEngine On 

    ProxyPass "/app2" "http://192.168.0.62:3030/" retry=0 
    ProxyPassReverse "/app2/" "http://192.168.0.62/" 

    RewriteRule "^/assets/(.*)" "/app2/assets/$1" [R] 
    RewriteRule "^/views/(.*)" "/app2/views/$1" [R] 
</VirtualHost> 
+0

* *請勿使用'ProxyRequests On'。這將使前向代理這不是你想要的。** –

+0

@ChristopherSchultz謝謝,你是對的我並不需要那 – SGM1

回答

1

它應該是如此簡單:

<VirtualHost *:80> 
    ServerName mysingledomain.com 
    ProxyPreserveHost On 

    ProxyPass /App1/ http://127.0.0.1:8080/ 
    ProxyPassReverse /App1/ http://127.0.0.1:8080/ 

    ProxyPass /App2/ http://127.0.0.1:3030/ 
    ProxyPassReverse /App2/ http://127.0.0.1:3030/ 
</VirtualHost> 
+0

但是我不能爲此設置'RewriteCond'。 'RewriteRule'只應該影響Ruby應用程序(App2)。 – SGM1

+0

在你的問題中沒有關於重寫的內容:)。你想要重寫什麼URL,以及什麼? –

+0

我想重寫'http://192.168.0.62:3030 /'返回的響應。在問題的重寫這樣做,但似乎問題是,響應頭說,引用是192.168.0.62,所以我不得不使用反向定義從問題 – SGM1

相關問題