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



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

我已经使用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),指向我的服务器的公共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正在工作,但由于某种原因,乘客没有加载应用程序?这个假设正确吗?

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

我陷入困境,找不到任何解决方案。

谢谢你看

编辑1

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

终于明白了这一点。将来可能会帮助别人。

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

相关内容

最新更新