Apache 2.2 无法设置 VirtualHost

Apache 2.2 无法设置 VirtualHost

我正在尝试设置一个新的虚拟主机newsletter.mydomain.com

我还使用mod_proxy将所有 HTTP 流量路由到我的应用程序服务器(IP 为 1.1.1.1)。

mod_proxy效果很好,但我在设置虚拟主机时遇到了真正的困难:

当我尝试浏览我的 VHOST 时,我得到的只是我的主要网站(例如,我已将 DocumentRoot 设置为它,或者在另一次尝试中 - 应该路由流量的 ProxyPass 声明)

这是我的 httpd.conf 文件的简短片段

ServerRoot "C:/xampp/apache"
Listen 80

NameVirtualHost _default_:80

ServerAdmin postmaster@localhost

ServerName www.mydomain.com:80

DocumentRoot "C:/xampp/htdocs"

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>


<VirtualHost _default_:80>
    ServerName newsletter.mydomain.com
    ProxyPreserveHost On
    ProxyPass / http://1.1.1.1:8080/Newsletter/
    ProxyPassReverse / http://1.1.1.1:8080/Newsletter/
</VirtualHost> 

ProxyPass / http://1.1.1.1/
ProxyPassReverse / http://1.1.1.1/

主网站运行良好 - 虚拟主机 - 什么也没有!对这个问题有什么想法吗?(使用 Windows 2008 Server R2)

答案1

_default_:80*:80两处都改为。该_default_条款具体如下:不是用于NameVirtualHost路由 VHost。

但是,这仍然不会像您预期的那样工作。一旦您声明了*:80NameVirtualHost您的“默认”网站将永远不会显示。(根据:http://httpd.apache.org/docs/2.2/mod/core.html#virtualhost

你想要的更像这样:

ServerRoot "C:/xampp/apache"
Listen 80

# Route all traffic based on Host: header
NameVirtualHost *:80

ServerAdmin postmaster@localhost

ServerName www.mydomain.com:80

# This will never be used:
DocumentRoot "C:/xampp/htdocs"

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

# All non-matching Host: headers use the first VirtualHost:
<VirtualHost *:80>
    ServerName mydomain.com
    ServerAlias www.mydomain.com

    DocumentRoot "C:/xampp/htdocs"
    ProxyPass / http://1.1.1.1/
    ProxyPassReverse / http://1.1.1.1/
</VirtualHost>

# Specific VirtualHost for "newsletter.mydomain.com":
<VirtualHost *:80>
    ServerName newsletter.mydomain.com

    ProxyPreserveHost On
    ProxyPass / http://1.1.1.1:8080/Newsletter/
    ProxyPassReverse / http://1.1.1.1:8080/Newsletter/
</VirtualHost> 

相关内容