EC2,Ubuntu,RVM,Rails,乘客,阿帕奇 – 请求我的域只是超时

问题:我相信我已经完成了部署我的应用程序所需的一切,但是当我去到我的新URL时,浏览器出现“问题加载页面,服务器花了很长时间回应”错误。

统计:

  • 我正在首次通过EC2进行部署。
  • 我有一个与Ubuntu 12.04运行的实例,具有相关的弹性IP
  • RVM已安装; 我正在运行Ruby 1.9.3-p194和Rails 3.2.6
  • 我通过Passenger安装程序,按照指示安装了Apache包,并编辑了conf文件。
  • 我还从namecheap.com购买了一个域名,并列出了我的EC2弹性IP作为主机。
  • 我的应用程序位于/ var / www(例如,我的'app'文件夹位于/ var / www / app等等)
  • 不知道,如果这是相关的,但我用git拉我的应用程序到服务器上。

编辑:感谢评论者,我能够缩小这个问题:这是对我的EC2实例的安全性 – 请求永远不会到达Apache2。

我的安全组是我自己制作的(不是“默认”),并且有三条规则,都在TCP下:1)允许在端口22上访问SSH; 2)允许在端口80上进行HTTP访问; 3)允许端口443上的HTTPS访问。允许的IP为0.0.0.0/0。

我是否需要更多规则? SSH工作正常。

这是端口扫描的结果:

$ nmap -P0 -p80 ec2-xx-xx-x-xxx.compute-1.amazonaws.com Starting Nmap 5.21 ( http://nmap.org ) at 2012-07-16 18:16 UTC Nmap scan report for ec2-xx-xx-x-xxx.compute-1.amazonaws.com (yy.yy.yyy.yyy) Host is up. rDNS record for yy.yy.yyy.yyy: ip-yy.yy.yyy.yyy.ec2.internal PORT STATE SERVICE 80/tcp filtered http Nmap done: 1 IP address (1 host up) scanned in 2.05 seconds 

和:

  $ sudo ufw status Status: inactive 

再次感谢您的帮助。

从评论和你的尽职调查来看,你做的一切都是正确的。 你的服务器没有回答的事实表明你错过了一些很难从外部find的过程。

关于您的描述的一个问题是,在testing基本服务之前安装和configuration的软件数量很大。 特别是因为这是您第一次部署EC2实例,所以我build议您花几个小时从头开始创build一个新实例作为testing平台,以查看是否可以重现问题或进一步获得:

  1. 创build一个新的Ubuntu 12.04微型实例,纯粹是一个testing平台
  2. 将其分配到您的自定义安全组,以便它使用相同的安全性
  3. 分配一个新的(临时的)ElasticIP(没有DNS,域名等)
  4. 只启动Apache。 安装没有其他软件(ruby,RVM,乘客等)

使用基本的configuration和你所说的安全规则,你应该能够到达临时ElasticIP上的标准Apache“It Works”页面。 只有在networking服务器正确回答之后,才能进行其余的安装。

所以,事实certificate,问题实际上是乘客。

我对未来的Google员工提出了一个类似的神秘问题:把一个index.html文件放到你的公共目录中(例如标准的Ruby on Rails或Apache的工作页面), 看看你的实例是否提供了它

对于我来说,我认为如果错误是Passenger或Rails,那么我至less会得到某种错误页面,而不是暂停。 我了解到这并不一定如此。

无论如何,事实certificateg ++(GNU的C编译器)没能编译Passenger的一些文件。 卸载并重新安装每个都没有帮助。 经过一些研究的替代品,我去了与麒麟 ,而我的应用程序已经开始运行。