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

Jon*_*han 3 apache bugzilla virtualhost review-board

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

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

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

我尝试从第一个虚拟主机到第二个虚拟主机进行反向代理,但这没有用。

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

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

提前致谢。

Edu*_*nis 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>
Run Code Online (Sandbox Code Playgroud)

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

它工作的GIF

在此处输入图片说明

笔记

  • 这适用于 Apache 2.4.18
  • GIF 显示了VirtualHost具有两个不同虚拟主机条目的配置。对此答案的评论之一说不同的虚拟主机不起作用。但它们确实如此,只要服务器名称不同。