我试图让我的服务器响应2个不同的IP每个虚拟主机的2个域。 这是我第一次做这样的事情,你们能帮我吗?
我的domain1.org成功路由到IP地址1.1.1.1,但我的domain2.org也做到了,当它应该路由到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不显示任何警告或错误,有什么可能是错的? 提前致谢
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
和你的主机configuration:
<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 *>configuration移动到文件底部。 我相信Apache会自上而下评估configuration节点,并且首先匹配胜利。