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

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

我安装了 centos + webmin + virtualmin。该 Web 服务器托管多个网站。

例如: domainA.myftp.org
domainB.myftp.org
domainC.myftp.org

所有域名共享同一个 IP 地址

但是当我直接输入公网 IP 地址 123.123.123.123 时,浏览器将显示 domainA.myftp.org

我可以在哪里设置 IP 地址的网站目录?这是 DNS 还是 Apache 虚拟主机或其他问题?有人知道吗?

答案1

正如 BillThor 提到的,如果没有匹配项,则第一个主机将成为默认主机。要覆盖该设置并使用第一个主机以外的主机,您可以在 apache ServerAlias 行中输入 ip 地址,如下所示:

# 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>

答案2

在没有明确基于 IP 的虚拟主机的情况下...

<VirtualHost ipaddress:80>
 DocumentRoot /srv/www/bare-ip/
</VirtualHost>

它将选择第一个与 IP 地址通配符匹配的虚拟主机:

<VirtualHost *:80>
  ServerName domainA.myftp.org
  stuff
</VirtualHost>

这给了你答案,你需要一个基于IP的虚拟主机声明为裸 IP 请求提供明确的网页目录。

答案3

这是标准行为。如果没有站点匹配,Apache 将匹配第一个(默认)站点。我设置了一个默认域来处理此类情况以及无效(未配置)域。

要通过 IP 地址支持多个域,您需要多个 IP 地址。如果您想通过 SSL 支持多个域,通常也是这种情况。有一些 SSL 解决方法。

相关内容