Apache 2.2不能设置VirtualHost

我试图build立一个新的虚拟主机newsletter.mydomain.com

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

mod_proxy工作的很好,但是我在设置虚拟主机时遇到了一个很麻烦的问题:

当我尝试浏览我的VHOST时,我所得到的只是我的主要网站 (例如,我已经设置了DocumentRoot或另一个尝试 – 应该路由stream量的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/ 

主网站工程gr8 – 虚拟主机 – 德纳达! 关于这个问题的任何想法? (使用Windows 2008服务器R2)

在两个地方将_default_:80更改为*:80_default_子句特别用于NameVirtualHost路由的VHosts。

但是,这仍然不会如你所期望的那样工作。 一旦你声明*:80一个NameVirtualHost ,你的“默认”网站将永远不会显示。 (per: 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>