2013-09-30 27 views
5

我在本地網絡上安裝了一個帶有Apache2的Ubuntu服務器。Apache虛擬主機:不同的路徑爲同一IP上的不同應用程序提供服務

我想在同一個服務器上管理不同的應用程序,當你請求一個url時,一個專門的應用程序被提供。

E.g.

http://192.168.0.25/my_app_1 -> responds with app1 (for example a Ruby on Rails app) 
http://192.168.0.25/my_app_2 -> responds with app2 (for example a php website) 
[...] 
# where 192.168.0.25 is the IP of the server 

我認爲這是通過正確配置Apache2中的虛擬主機來完成的。

此時,APP1的示例配置(即Ruby on Rails的)是像如下:

<VirtualHost 192.168.0.25:80> 
DocumentRoot path_to_my_public_app1_folder 
<Directory path_to_my_public_app1_folder> 
    Options -MultiViews 
    AllowOverride All 
</Directory> 
RailsEnv production 
</VirtualHost> 

如何定義的子路徑?也許這樣?

<VirtualHost 192.168.0.25/my_app1:80> 

我在做對吧? 因爲在這一刻我收到一個404(甚至沒有自定義阿帕奇頁「它的工作!」)

回答

8

VirtualHost意味着不同的東西。它允許您(簡而言之)承載響應不同名稱的網站,例如:

http://mydomain.com 
http://anotherdomain.com 

位於同一臺服務器上。所以把它想象成虛擬appaches,都在同一臺機器上,但是用不同的名字來標識。

你的用例是不同的。您想要配置實例192.168.0.25以及它如何處理不同的請求。因此,在URL中的主機之後的部分:http://HOST/PATH_TO_APP

爲實例迴應192.168.0.25你應該修改默認的配置在

/etc/apache2/sites-available/default 

您可以添加以下內容:

Alias /my_app_1 path_to_my_public_app1_folder 
Alias /my_app_2 path_to_my_public_app2_folder 
+0

+1謝謝你爲完整的答案,現在它的作品! :) – damoiser

相關問題