我已经搜索和重新配置了6天,并失去了几块头发。
问题:
我希望在我的ubuntu服务器(1个ip)上有2+虚拟主机,但是--只需要按字母顺序列出的第一个站点--支持的显示。000-违约
www.domain1.com
www.domain2.com
单独地,他们都工作(如果我a2dissite对每一个离开1)
配置:-Ubuntu10.10Server- EC2实例(不要为这个部分向我开枪-希望这不是问题!)-Apache2.2.16- DNS my.domain.com -对我的公共ec2 dns (这有效)
虚拟主机:# default
<VirtualHost *:80>
DocumentRoot "/home/www/"
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Satisfy all
</Directory>
<Directory /home/www>
Options Indexes Multiviews FollowSymLinks
AllowOverride all
Order allow,deny
Allow from all
</Directory>
LogLevel debug
ErrorLog /home/www/logs/error.log
CustomLog /home/www/logs/access.log "combined"
</VirtualHost>虚拟主机1- domain1
<VirtualHost *:80>
ServerAdmin webmaster@domain1.com
ServerName domain1.com
ServerAlias domain1.com www.domain1.com
# Indexes + Directory Root.
DirectoryIndex index.php
DocumentRoot "/home/www/www.domain1.com/"
# Directory directive
<Directory "/home/www/www.domain1.com">
Options Indexes Multiviews FollowSymLinks
AllowOverride none
Order allow,deny
Allow from all
</Directory>
# CGI Directory
ScriptAlias /cgi-bin/ /home/www/www.domain1.com/cgi-bin
<Location /cgi-bin>
Options +ExecCGI
</Location>
# Logfiles
LogLevel debug
ErrorLog "/home/www/www.domain1.com/logs/error.log"
CustomLog "/home/www/www.domain1.com/logs/access.log" combined
</VirtualHost>我在另一个具有不同域名的文档根目录中也有上面的domain2。
sym链接已经就位。apache2ctl -St显示了以下内容-
VirtualHost configuration:
*:80 is a NameVirtualHost
default server (/etc/apache2/sites-enabled/000-default:4)
port 80 namevhost (/etc/apache2/sites-enabled/000-default:4)
port 80 namevhost domain1.com (/etc/apache2/sites-enabled/www.domain1.com:4)
port 80 namevhost www.domain2.com (/etc/apache2/sites-enabled/www.domain2.com:4)
Syntax OK我的ports.conf:
NameVirtualHost *:80
Listen 80
<IfModule mod_ssl.c>
NameVirtualHost *.443
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>从默认到我的apache2.conf和httpd.conf的更改都是空的。
我尝试了以下几种方法(以及其他大约100种):
似乎我试过其他人都有问题的每件事,但似乎没有什么能解决我的问题。
可能性:
发布于 2013-12-14 07:39:01
说到虚拟主机,我们的一个项目也遇到了同样的问题。Apache的"ServerName“指令不是可选的,它是强制使用的。如果没有ServerName匹配,Apache就没有“默认”虚拟主机可加载的功能。如果虚拟主机服务器的名称重叠,那么这只会给你带来问题。最后,在这些情况下,Apache只是根据其配置文件加载顺序来决定该做什么。如果您试图通过一个未指定的地址(ip地址或未映射到虚拟主机上的内容)与服务器联系,它将加载他为该地址加载的第一个虚拟主机。正确的方法是让虚拟主机详细说明ServerName和ServerAlias指令中所有可能的服务器名。请参阅基于名称的apache虚拟主机,并仔细考虑有证据的注释“主主机消失”。
发布于 2011-05-20 09:30:48
您的ports.conf是否可能由于所使用的句点而不是冒号而失败?
<IfModule mod_ssl.c>
NameVirtualHost *.443
Listen 443
</IfModule>注:**.443*应为**:443*。
发布于 2011-05-20 12:10:26
只是猜测。从apache2ctl -St的结果来看,您的输出是不同的:
port 80 namevhost domain1.com
port 80 namevhost www.domain2.com也许您还应该将domain2.com设置为ServerName (没有"www“前缀)
https://serverfault.com/questions/271845
复制相似问题