使用路由53与EC2公共DNS和虚拟主机

我想我的EC2实例公共URL的子域指向我的机器上的不同文档树,所以foo.ec2-012-345-678-901.eu-west-1.compute.amazonaws.com有一个单独的DocumentRootbar.ec2-012-345-678-901.eu-west-1.compute.amazonaws.com

我的AWS EC2实例具有弹性IP和标准的Amazon Public URL:

http://ec2-012-345-678-901.eu-west-1.compute.amazonaws.com

我可以访问该URL,并看到我的Hello Worldtesting页面。

我build立了两个VirtualHosts。

 <VirtualHost *:80> DocumentRoot /var/www/foo/public ServerName foo.ec2-012-345-678-901.eu-west-1.compute.amazonaws.com ServerAlias ec2-012-345-678-901.eu-west-1.compute.amazonaws.com </VirtualHost> <VirtualHost *:80> DocumentRoot /var/www/bar/public ServerName bar.ec2-012-345-678-901.eu-west-1.compute.amazonaws.com </VirtualHost> 

在AWS Route 53中,我设置了一个托pipe区域,其域名为ec2-012-345-678-901.eu-west-1.compute.amazonaws.com

在logging集中,我添加了两条CNAMElogging:

1)

  • 名称:foo.ec2-012-345-678-901.eu-west-1.compute.amazonaws.com
  • TTL:60
  • 价值:ec2-012-345-678-901.eu-west-1.compute.amazonaws.com
  • 路由策略:简单
  • 别名:不

2)

  • 名称:bar.ec2-012-345-678-901.eu-west-1.compute.amazonaws.com
  • TTL:60
  • 价值:ec2-012-345-678-901.eu-west-1.compute.amazonaws.com
  • 路由策略:简单
  • 别名:不

我的浏览器找不到在虚拟主机中定义的任何一个URL。 我正在使用OpenDNS,但我可以SSH到其他几台机器,尝试curl和wget,总是收到错误“名称或服务未知”或“无法parsing主机”。

我今天一直在玩这些设置,但是我还记得,这正是我24小时前的设置。

我需要做些什么来让我的虚拟主机解决我所定义的目录?

注意:我在RHEL上启用了SELinux。 我不认为这是相关的,但这已经是一些问题的原因。

干杯,

您需要将虚拟主机的Apache ServerName设置为您想要提供的实际主机名,例如foo.example.com ,而不是EC2内部主机名(尽pipe如果您希望可以使用ServerAlias )。

不幸的是,您不能将您的EC2主机名用作Route 53中的域; 你必须使用你自己的域名。

我想我的EC2实例公共URL的子域指向我的机器上的不同文档树,所以foo.ec2-012-345-678-901.eu-west-1.compute.amazonaws.com有一个单独的DocumentRoot到栏.ec2-012-345-678-901.eu – 西1.compute.amazonaws.com

我刚刚检查了一些我的实例,而Amazon 没有通配实例的公用URL。

ec2-012-345-678-901.eu-west-1.compute.amazonaws.com将工作,但* .ec2-012-345-678-901.eu-west-1.compute.amazonaws.com将不会。

在AWS Route 53中,我设置了一个托pipe区域,其域名为ec2-012-345-678-901.eu-west-1.compute.amazonaws.com

这也不行。 您可以设置所有您喜欢的logging,但没有人会看到他们,因为亚马逊不会将子域名委托给您的Route53区域。