我正在尝试让我的服务器响应 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 会从上到下评估配置节点,第一个匹配的节点获胜。