EC2 上的乘客 (Apache) 在通过 DNS 到达时未加载 Rails 应用程序

Passenger (Apache) on EC2 not loading Rails application when arrive via DNS

这让我抓狂。希望有人能帮忙

我已经使用 Apache 和 Passenger 在 EC2 实例 (Ubuntu) 上部署了一个 Rails 应用程序。这是我在 EC2 实例上的 Apache 配置

/etc/apache2/apache2.conf

 <VirtualHost *:80>
   ServerName ec2-52-16-160-160.eu-west-1.compute.amazonaws.com
   # !!! Be sure to point DocumentRoot to 'public'!
   DocumentRoot /home/ubuntu/workspace/intellitute/public
   ErrorLog /home/ubuntu/workspace/intellitute/log/error.log
   RailsEnv development

   <Directory /home/ubuntu/workspace/intellitute/public>
     # This relaxes Apache security settings.
     AllowOverride all
     Require all granted
     # MultiViews must be turned off.
     Options -MultiViews
   </Directory>
 </VirtualHost>

这有效,我可以通过将 ec2-52-16-160-160.eu-west-1.compute.amazonaws.com 放入浏览器来访问该应用程序。

我已经通过提供商(不是 AWS)注册了一个域名,并在那里设置了两个 'A' DNS 记录 (appname.com & *.appname.com) 以指向public 我服务器的 ip - 52.16.160.160。

然后我将上面conf文件中的ServerName更改为我注册的域名并重新启动了Apache服务器。

 <VirtualHost *:80>
   ServerName www.appname.com  (also tried 'ServerName appname.com')
  .....

但是,当我在浏览器中键入 www.appname.com 时,我只会看到 Apache2 Ubuntu 默认页面。我假设我获得默认页面这一事实意味着 DNS 正在工作,但出于某种原因 Passenger 没有加载应用程序?这个假设正确吗?

我仍然在开发环境中工作有什么不同吗?

我卡住了,找不到任何解决方案。

感谢观看

Edit 1

我目前不在我的开发机器旁,但我没有在我的 EC2 实例上设置弹性 IP 地址有什么不同吗?我只是使用实例提供的 public IP 地址。我稍后会尝试设置一个,看看会发生什么。

终于明白了。将来可能会对某人有所帮助。

我的 EC2 实例是另一个实例的克隆,我认为 apache2 和 passenger 配置存在一些问题。我将它们卸载并重新安装在 EC2 实例上,它现在可以正常工作(对于 appname.com,而不是 www.appname.com - 我必须弄清楚)