什么是Amazon EC2上的弹性IP?如果我不使用它可以吗?

时间:2014-03-03 10:53:56

标签: ruby-on-rails amazon-ec2 amazon-s3 dreamhost

我在Amazon EC2实例上托管了一个RoR应用程序。实例具有公共IP但未分配弹性IP。应用程序指向使用Dreamhost的域。

我们使用Amazon S3存储通过Web应用程序上传的音频文件,并将这些文件加载​​回网站并在播放器中播放。

这是我面临奇怪问题的地方,有时文件播放正常,但有时会出错

  

请求的资源上没有“Access-Control-Allow-Origin”标头。因此,不允许原始http://XX.XXX.XX.XXX访问。

但同时如果我在我的应用程序之外的浏览器中复制粘贴S3 url它会加载。

为什么错误提供IP地址而不是说mydoamin.com因此不允许访问?

我猜这个问题是因为某些域/ IP配置。

1 个答案:

答案 0 :(得分:2)

亚马逊上的弹性IP是保留给您的IP。没有它,每次停止和启动实例时,都会设置不同的IP。

您不必使用弹性IP,例如,您可以将域指向ELB(弹性负载均衡器)CNAME,它将在应用程序的一个或多个实例之间进行负载平衡时保持不变。

我不确定这与给出的错误有什么关系,详见answer

  

网站B使用Access-Control-Allow-Origin告诉浏览器   某些域可以访问此页面的内容。默认情况下,   任何其他域都无法访问网站B的页面;使用ACAO   标题为特定域的跨域访问打开了一扇门。

     

网站B应该使用

服务其网页
Access-Control-Allow-Origin: http://sitea.com

似乎有问题的链接是带有显式IP的绝对路径,我不知道为什么会发生这种情况,请查看链接失败的页面源,并尝试弄清楚。