在默认主机为http://JonathansCorner.com,我正在尝试设置 VirtualHosthttp://media.pragmatometer.com。但是,Apache2 的 sites-enabled 目录中的两个注册域均未从目标服务器拉取数据。
VirtualHost 定义如下:
<VirtualHost *:80>
ServerName media.pragmatometer.com
ServerAlias media.ccachicago.pragmatometer.com
DocumentRoot /home/jonathan/ccachicago/media
<Directory "/home/jonathan/ccachicago/media/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
#Order deny,allow
#Deny from all
#Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
ServerAdmin [email protected]
</VirtualHost>
我还应该添加其他内容吗?我检查了一下,其他 VirtualHosts 都没有回答http://media.pragmatometer.com或者http://media.ccachicago.pragmatometer.com。
我可以添加什么以便前面提到的 URL 可以从上面的 DocumentRoot 中提取?
- 编辑 -
默认VirtualHost的配置如下:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /home/jonathan/mirror
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/jonathan/>
Options ExecCGI Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
DirectoryIndex index.cgi index.html
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorDocument 404 /missing.html
ErrorDocument 500 /servererror.html
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
答案1
请尝试以下基于 IP 的虚拟主机配置
NameVirtualHost IP-ADDR:80
<VirtualHost IP-ADDR:80>
ServerName first.domain.com
...
...
</VirtualHost>
<VirtualHost IP-ADDR:80>
ServerName second.domain.com
...
...
</VirtualHost>
答案2
最佳匹配虚拟主机集的基于名称的虚拟主机将按照它们在配置中出现的顺序进行处理。将使用第一个匹配的 ServerName 或 ServerAlias,通配符的优先级没有差异(ServerName 与 ServerAlias 的优先级也没有差异)。
如果 VirtualHost 未指定 ServerName,则服务器名称将从基本服务器配置中继承。如果未全局指定服务器名称,则在启动时通过第一个侦听地址的反向 DNS 解析检测服务器名称。无论哪种情况,此继承的服务器名称都会影响基于名称的虚拟主机解析,因此最好始终在每个基于名称的虚拟主机中明确列出 ServerName。