【问题标题】:Apache multiple virtual hosts on the same same ip(diffrent url's)Apache 在同一个 ip 上的多个虚拟主机(不同的 url)
【发布时间】:2011-12-01 09:12:45
【问题描述】:

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

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

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

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

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

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

提前致谢。

【问题讨论】:

    标签: apache virtualhost bugzilla review-board


    【解决方案1】:

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

    Alias 指令允许将文档存储在本地文件系统中,而不是在 DocumentRoot 下。带有 (%-decoded) 的 URL 以 URL-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 配置,其中包含两个不同的虚拟主机条目。该答案的一位 cmets 说不同的虚拟主机不起作用。但只要服务器名称不同,它们就会这样做。

    【讨论】:

    • 这根本不起作用。只有第一个条目有效。第二个条目给出“未找到”错误。请注意,如果您在 httpd.conf 文件中切换声明顺序,那么现在首先出现的条目开始工作,而另一个则停止工作。
    • 我坚信它从未奏效。它不适用于 12 年前发布的 Apache 2.2。
    • 你有没有测试过自己,或者你只是写下来相信它有效?
    • 不,你可以保留它。只需添加一条说明它不起作用的注释,即使使用 12 年的 Apache 版本也不起作用。您的问题显然为两个虚拟主机使用了相同的端口 80,但它从未奏效。你真的担心我的反对票吗?如果这伤害了你的感情,我可以再次投票。
    • @Alexandre 看看我的回答它的工作原理!!!!!!顺便说一句,我不得不下载 ubuntu,再次配置 apache 等等,只是为了你的支持:D 让你的任何东西都变成了一个小 gif ;)
    【解决方案2】:

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

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

    【讨论】:

    • 感谢您的回复,这对我来说似乎有点问题......外部ip通过另一台服务器,不幸的是只有一个以ip-address::port/url-suffix开头的url被传递给apache服务器。
    猜你喜欢
    • 2016-05-02
    • 2012-06-16
    • 2012-04-14
    • 2020-01-07
    • 2013-09-28
    • 2017-10-02
    • 2017-01-02
    • 2013-10-06
    • 2015-06-05
    相关资源
    最近更新 更多