2014-10-18 46 views
2

我有一个亚马逊EC2实例与两个网站site1.com和site2.com。 EC2支持ELB(弹性负载平衡器),site1和site2指向ELB。 现在在Apache重定向的用户正确的网站,我使用虚拟主机。 问题是,Apache使用ServerName来确定调用什么网站。 对于ELB,ServerName始终是相同的,因为site1和site2在到达apache之前都获得ELB地址,所以ip和端口也是相同的。 那么你们如何解决这个问题?一个负载平衡器 - 多个Apache VHosts

PS:我不想使用两个负载平衡器,因为我会添加更多的网站,并有许多负载平衡器成本太多。

编辑 我想保留只有端口80的原因解释+ kums回答下面评论。

+0

你为什么需要一个ELB? – Dinesh 2014-10-27 03:10:23

+0

发现'主机'标头没有被ELB转发?自你的问题后的任何更新? – mschonaker 2015-04-24 21:28:51

回答

-1

由于您希望为两个不同的站点使用相同的EC2实例,请使用基于Apache端口的虚拟主机,并配置ELB在同一EC2实例的不同端口中配置2个侦听器。这个想法类似于http网站和https网站在同一个实例上。

你可以在这里找到文档:http://docs.aws.amazon.com/gettingstarted/latest/computebasics-linux/getting-started-create-lb.html

+1

对不起,我以前没有提过它,但我不想听两个不同的端口。我想保持端口80,因为改变它会使我的生活更加艰难:使用端口80的apache模块将崩溃,Linux软件包,firwalls,iptables将崩溃,我提供的api和webservices也会崩溃,而且我可以使用太多的东西别想象... – john 2014-10-19 09:45:41