Apache上具有2个IP地址的基于名称的虚拟主机

Apache上具有2个IP地址的基于名称的虚拟主机,apache,dns,httpd.conf,vhosts,virtual-hosts,Apache,Dns,Httpd.conf,Vhosts,Virtual Hosts,我有两个IP地址。它基本上是用于SSL的,但假设我希望example1.com和example3.com在IP 1.1.1.1上工作,example2.com在IP 2.2.2上工作 我应该错过了什么,在什么地方。我在配置文件中基本上有以下与此相关的设置——我确实在Apache文档以及许多其他来源中阅读并应用了相同的内容 Listen 80 <VirtualHost *:80> ServerName example1.com # ... </V

我有两个IP地址。它基本上是用于SSL的,但假设我希望example1.com和example3.com在IP 1.1.1.1上工作,example2.com在IP 2.2.2上工作

我应该错过了什么,在什么地方。我在配置文件中基本上有以下与此相关的设置——我确实在Apache文档以及许多其他来源中阅读并应用了相同的内容

Listen 80

<VirtualHost *:80>
        ServerName example1.com
        # ...
</VirtualHost>

<VirtualHost *:80>
        ServerName example3.com
        # ...
</VirtualHost>

<VirtualHost 2.2.2.2:80>
        ServerName example2.com
        # ...
</VirtualHost>
听80
ServerName example1.com
# ...
ServerName example3.com
# ...
ServerName example2.com
# ...
我让example2.com指向DNS记录中的2.2.2.2,其他指向1.1.1.1

我可以成功转到example1.com和example3.com,但example2.com转到默认服务器,该服务器对于本示例是example1.com,因为它是在配置中首先输入的

另一个奇怪之处是:对example2.com保持DNS不变,但将vhost配置更改为*:80,它会打开网站,服务器ip报告为1.1.1.1,我可以从web脚本中看到这是怎么回事

还有一个:即使我在配置中只保留example2.com域并删除其他域,它仍然不能与IP一起工作。正如我试图提到的,如果我输入2.2.2.2,它将通过此IP成功访问服务器

有人能帮我解决这个问题吗?很明显,这个问题是由我做错了或遗漏了什么引起的


谢谢。

我在服务器中启用了DHCP。我把它改成了静态网络,一切正常

我根据需要编辑了/etc/sysconfig/network scripts/ifcfg-eth0以添加静态IP并禁用了服务器的自动配置网络选项。这是一个Linode服务器,此处解释了所需的设置-以防其他人需要: