通过IP地址查看Web服务器的默认网站

我有一个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的解决方法。