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

Apache在同一ip上有多个虚拟主机(不同的url),apache,virtualhost,bugzilla,review-board,Apache,Virtualhost,Bugzilla,Review Board,我有两个虚拟主机(bugzilla和board review)在一台位于ubuntu机器内的apache服务器上 我有一个可以使用的外部ip地址(启用了一个端口),因此无法为虚拟主机分配不同的主机名或不同的端口。(如果我错了,请更正我) 我希望用户能够编写以下内容: 还有去bugzilla的请求 以及向审查委员会提出的请求 我尝试从第一个虚拟主机反向代理到第二个虚拟主机,但没有成功 bugzilla conf文件使用cgi,审查委员会使用wsgi 有没有一种简单的方法来实现上述目标 提前感谢。您

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

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

我希望用户能够编写以下内容: 还有去bugzilla的请求 以及向审查委员会提出的请求

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

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

有没有一种简单的方法来实现上述目标


提前感谢。

您可以更改您的地址,以使它们保持一致,然后使用ServerName指令使用正确的VirtualHost


您可以使用指令来实现这一点

Alias指令允许将文档存储在本地文件系统中,而不是DocumentRoot下。带有(%-解码)的URL 以URL路径开头的路径将映射到以URL路径开头的本地文件 具有目录路径。URL路径区分大小写,即使在 不区分大小写的文件系统

别名“/image”“/ftp/pub/image”请求 将导致服务器返回 文件/ftp/pub/image/foo.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>

服务器管理员webmaster@localhost
ServerName ip地址:端口/bugzilla
别名“/bugz”var/www/html/bugz
别名“/wow”var/www/html/wow
DocumentRoot/path/to/yourwebsite
实现在同一IP上拥有多个虚拟主机的目标

GIF它的工作原理

注意

  • 这适用于Apache2.4.18
  • GIF显示具有两个不同虚拟主机条目的
    VirtualHost
    配置。对此答案的一条评论说,不同的虚拟主机不起作用。但只要服务器名称不同,它们就可以

谢谢你的回复,我这边似乎有点问题。。。外部ip通过另一台服务器,不幸的是,只有以开头的url被传递到apache服务器。这根本不起作用。只有第一个条目有效。第二个条目给出“未找到”错误。请注意,如果您在httpd.conf文件中切换声明顺序,那么现在出现的条目首先开始工作,而另一个停止工作。我坚信它从未工作过。它不适用于12年前发布的Apache2.2。你有没有测试过自己,或者只是写下来相信它有效?没有,你可以保留它。只需添加一条注释,说明它不起作用,即使使用了12年的Apache版本也不起作用。很明显,您的问题对两个虚拟主机都使用了相同的端口80,但它从未工作过。你真的担心我的否决票吗?如果这伤害了你的感情,我可以再次投票。@Alexandre看看我的答案,它是有效的!!!!!!顺便说一句,我不得不下载ubuntu,再次配置apache,等等,等等,只是为了你的升级投票:D为你做了一点gif(任何东西;)