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

Apache虚拟主机:不同的路径在同一IP上为不同的应用程序提供服务,apache,apache2,virtualhost,Apache,Apache2,Virtualhost,我在我的本地网络上安装了一台带有Apache2的Ubuntu服务器 我想在同一台服务器上管理不同的应用程序,当您请求一个url时,会提供一个专用的应用程序 例如 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)

我在我的本地网络上安装了一台带有Apache2的Ubuntu服务器

我想在同一台服务器上管理不同的应用程序,当您请求一个url时,会提供一个专用的应用程序

例如

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的一个示例配置(即RubyonRails)如下所示:

<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>

DocumentRoot路径\u到\u我的\u公用\u app1\u文件夹
选项-多视图
允许超越所有
RailsEnv生产
如何定义子路径?也许是这样的

<VirtualHost 192.168.0.25/my_app1:80>

我做得对吗?
因为此时我收到了404(甚至不是定制的Apache页面“It's work!”)

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