同一个ip上的Apache多个虚拟主机(不同的URL)

时间:2011-10-05 10:43:59

标签: apache virtualhost bugzilla review-board

我在位于ubuntu机器内的apache服务器上有2个虚拟主机(bugzilla和电路板审查)。

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

我希望用户能够编写以下内容: http://ip-address:port/bugzilla以及前往bugzilla的请求 以及http://ip-address:port/review要求进入审核委员会的请求。

我尝试从第一个vhost反向代理到第二个但是没有用。

bugzilla conf文件使用cgi,审查委员会使用wsgi。

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

提前致谢。

2 个答案:

答案 0 :(得分:3)

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

  
    

Alias指令允许将文档存储在除DocumentRoot之外的本地文件系统中。带(% - 解码)的网址     以URL路径开头的路径将从头开始映射到本地文件     与目录路径。 URL路径区分大小写,即使在     不区分大小写的文件系统。

  
     

Alias“/ 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

enter image description here

注意

  • 这适用于Apache 2.4.18
  • GIF显示VirtualHost配置,其中包含两个不同的虚拟主机条目。对此答案的评论之一说不同的虚拟主机不起作用。但只要服务器名称不同,他们就会这样做。

答案 1 :(得分:0)

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

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