我有一个centos + webmin + virtualmin安装。 networking服务器托pipe多个网站。
例如:domainA.myftp.org
domainB.myftp.org
domainC.myftp.org
所有域共享相同的IP地址
但是当我直接键入公共IP地址123.123.123.123,浏览器将显示domainA.myftp.org
我在哪里可以设置一个IP地址的网站目录? 这是一个DNS或Apache虚拟主机或其他问题? 有谁知道?
正如BillThor所说,如果没有任何匹配,第一个主机将是默认的。 要覆盖它并使用除第一个以外的主机,可以在apache ServerAlias行上inputip地址,如下所示:
# Use name-based virtual hosting. # NameVirtualHost * <VirtualHost *> DocumentRoot /var/www/ ServerName myhost.com ServerAlias 10.20.30.40 ErrorLog logs/my-error_log CustomLog logs/my-access_log common <Directory /var/www/> AllowOverride All Order allow,deny Options -Indexes FollowSymLinks ExecCGI Allow from all </Directory> </VirtualHost>
在没有明确的基于IP的虚拟主机…
<VirtualHost ipaddress:80> DocumentRoot /srv/www/bare-ip/ </VirtualHost>
它将select与IP地址通配符匹配的第一个虚拟主机:
<VirtualHost *:80> ServerName domainA.myftp.org stuff </VirtualHost>
这给你你的答案,你需要一个基于IP的虚拟主机声明 ,为一个裸IP请求提供一个明确的web目录。
这是标准的行为。 如果没有站点匹配,Apache匹配第一个(默认)站点。 我设置了一个默认域来处理像这样的情况以及无效的(未configuration的)域。
要通过IP地址支持多个域,您将需要多个IP地址。 如果要通过SSL支持多个域,通常情况下也是如此。 有一些SSL的解决方法。