Apache 的多个 IP 地址和虚拟主机

Apache 的多个 IP 地址和虚拟主机

我正在尝试让我的服务器响应 2 个域,每个虚拟主机有 2 个不同的 IP。这是我第一次做这样的事情,你们能帮我吗?

我的 domain1.org 成功路由到 IP 地址 1.1.1.1,但我的 domain2.org 也成功路由到 IP 地址 2.2.2.2

我的 ports.conf 看起来像这样:

Listen 80
Listen 443
NameVirtualHost *:80
NameVirtualHost *:443
NameVirtualHost 2.2.2.2:80
NameVirtualHost 2.2.2.2:443

我的 domain1.org 虚拟主机:

 <IfModule mod_ssl.c>
      <VirtualHost *:443>
           ServerName domain1.org
           # more configs...
      </VirtualHost>
 </IfModule>

 <VirtualHost *:80>
      ServerName domain1.org
 </VirtualHost>

我的 domain2.org 虚拟主机:

 <IfModule mod_ssl.c>
      <VirtualHost 2.2.2.2:443>
           ServerName domain2.org
           # more configs...
      </VirtualHost>
 </IfModule>

 <VirtualHost 2.2.2.2:80>
      ServerName domain2.org
 </VirtualHost>

Apache 没有显示任何警告或错误,可能出了什么问题?提前致谢

答案1

Ports.conf 应如下所示:

Listen 80
Listen 443
NameVirtualHost 1.1.1.1:80
NameVirtualHost 1.1.1.1:443
NameVirtualHost 2.2.2.2:80
NameVirtualHost 2.2.2.2:443
NameVirtualHost domain1.org:80
NameVirtualHost domain1.org:443
NameVirtualHost domain2.org:80
NameVirtualHost domain2.org:443

您的 vHosts 配置如下:

<IfModule mod_ssl.c>
  <VirtualHost 1.1.1.1:443>
       ServerName domain1.org
       # more configs...
  </VirtualHost>
</IfModule>

<VirtualHost 1.1.1.1:80>
  ServerName domain1.org
</VirtualHost>

<IfModule mod_ssl.c>
  <VirtualHost 2.2.2.2:443>
       ServerName domain2.org
       # more configs...
  </VirtualHost>
</IfModule>

<VirtualHost 2.2.2.2:80>
  ServerName domain2.org
</VirtualHost>

<IfModule mod_ssl.c>
  <VirtualHost domain1.org:443>
       ServerName domain1.org
       # more configs...
  </VirtualHost>
</IfModule>

<VirtualHost domain1.org:80>
  ServerName domain1.org
</VirtualHost>

<IfModule mod_ssl.c>
  <VirtualHost domain2.org:443>
       ServerName domain2.org
       # more configs...
  </VirtualHost>
</IfModule>

<VirtualHost domain2.org:80>
  ServerName domain2.org
</VirtualHost>

实际上,将配置移到文件底部就足够了<VirtualHost *>。我相信 apache 会从上到下评估配置节点,第一个匹配的节点获胜。

相关内容