3

我在位于 ubuntu 机器内的 apache 服务器上有 2 个虚拟主机(bugzilla 和 board review)。

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

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

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

bugzilla conf 文件使用 cgi,review board 使用 wsgi。

有没有一种简单的方法来完成上述工作?

提前致谢。

4

2 回答 2

5

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

Alias 指令允许将文档存储在本地文件系统中,而不是在 DocumentRoot 下。以 URL-path 开头的 (%-decoded) 路径的 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具有两个不同虚拟主机条目的配置。对此答案的评论之一说不同的虚拟主机不起作用。但只要服务器名称不同,它们就会这样做。
于 2014-09-26T01:26:59.223 回答
0

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

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

于 2011-10-05T10:47:39.123 回答