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

7

我已经在本地网络上搭建了一个Ubuntu服务器,并安装了Apache2。

我想要在同一台服务器上管理不同的应用程序,当您请求一个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(即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页面“It's work!”)

1个回答

9

VirtualHost有不同的含义。它允许您(简单来说)托管响应不同名称的站点,例如:

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

在同一台服务器上。因此,请将其视为虚拟应用程序,全部位于同一台机器上,但由不同名称标识。
您的用例不同。您希望配置实例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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接