Apache的多个虚拟主机在相同的IP(不同的url)

我在一台Ubuntu机器上的apache服务器上有2个虚拟主机(bugzilla和board review)。

我有一个可以使用的外部IP地址(启用一个端口),所以我不能为虚拟主机分配不同的主机名或不同的端口(如果我错了,请纠正我)

我希望用户能够写入以下内容: http:// ip-address:port / bugzilla,并请求转至bugzilla,并请求来自http:// ip-address:port / review的请求转至审查委员会。

我尝试从第一个虚拟主机反向代理到第二个,但没有奏效。

bugzilla conf文件使用cgi,评论板使用wsgi。

有没有一个简单的方法来完成上述?

提前致谢。

您可以使用Alias指令来实现此目的。

Alias指令允许将文档存储在除DocumentRoot之外的本地文件系统中。 具有以URL-path开头的(%解码)路径的URL将被映射到以directory-path开头的本地文件。 即使在不区分大小写的文件系统上,URL路径也区分大小写。

别名“/ image”“/ ftp / pub / image” http://example.com/image/foo.gif的请求会导致服务器返回文件/ftp/pub/image/foo.gif。 只有完整的路径段被匹配,所以上面的别名不会匹配http://example.com/imagefoo.gif的请求。 要使用正则表达式进行更复杂的匹配,请参阅AliasMatch指令。

您的虚拟主机文件将如下所示

<VirtualHost *:80> serverAdmin webmaster@localhost serverName ip-address:port/bugzilla Alias "/bugz" "var/www/html/bugz" Alias "/wow" "var/www/html/wow" DocumentRoot /path/to/yourwebsite </VirtualHost> 

实现在同一IP上拥有多个虚拟主机的目标。

它的GIF工作

在这里输入图像说明

注意

  • 这适用于Apache 2.4.18
  • GIF显示具有两个不同虚拟主机条目的VirtualHost配置。 对这个答案的评论之一,说不同的虚拟主机不工作。 但是他们这样做,只要服务器名称不同。

您可以更改您的地址,使其成为http://bugzilla.ip-address:port /和http://review.ip-address :port / ,然后使用serverName指令使用正确的VirtualHost。

http://httpd.apache.org/docs/2.0/vhosts/examples.html