我正在尝试建立一个新的虚拟主机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/主要网站工作gr8 -虚拟主机-德纳达!对这个问题有什么想法吗?(使用Windows2008Server R2)
发布于 2012-03-19 10:55:11
在两处将_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> https://serverfault.com/questions/371070
复制相似问题