Apache虚拟主机:不同的路径为同一IP上的不同应用程序提供服务

时间:2013-09-30 09:21:41

标签: apache apache2 virtualhost

我在本地网络上设置了一个带有Apache2的Ubuntu服务器。

我想在同一服务器上管理不同的应用程序,当您请求提供专用应用程序的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(甚至不是自定义Apache页面“它的工作!”)

1 个答案:

答案 0 :(得分: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