使用Capistrano部署到EC2后,Rails应用程序未加载

时间:2015-11-24 14:33:14

标签: ruby-on-rails apache amazon-ec2 capistrano passenger

我设置了一个Amazon EC2 Ubuntu 14.04实例,并按照Passenger website中的指南,使用Capistrano和Passenger在Apache中部署了我的Rails应用程序,试图遵循所有规定,除了我有不同的应用程序名称和目录:{{1 }}。

经过一些配置后,部署终于成功了,当我尝试在我的app文件夹中运行Rails控制台时,它运行正常,但是当我尝试通过Web浏览器中的IP地址访问我的应用程序时它根本没有加载,浏览器返回ERR_CONNECTION_TIMED_OUT错误。我已经多次重启Apache,但它仍然没有工作。也许Apache / Passenger缺少某些东西或配置错误。

这是来自/var/www/<my_app_name>的我的Apache错误日志:

/var/log/apache2/error.log

虽然我的access.log为空。

这是我在[ 2015-11-24 14:20:25.7238 18152/7f3199f9d700 Ser/Server.h:444 ]: [UstRouter] Shutdown finished [ 2015-11-24 14:20:25.7239 18152/7f31a07ab7c0 age/Ust/UstRouterMain.cpp:498 ]: Passenger UstRouter shutdown finished [ 2015-11-24 14:20:25.7306 18230/7f2bca98a7c0 age/Wat/WatchdogMain.cpp:1276 ]: Starting Passenger watchdog... [ 2015-11-24 14:20:25.7394 18233/7f7e579cd7c0 age/Cor/CoreMain.cpp:957 ]: Starting Passenger core... [ 2015-11-24 14:20:25.7395 18233/7f7e579cd7c0 age/Cor/CoreMain.cpp:234 ]: Passenger core running in multi-application mode. [ 2015-11-24 14:20:25.7408 18233/7f7e579cd7c0 age/Cor/CoreMain.cpp:707 ]: Passenger core online, PID 18233 [ 2015-11-24 14:20:25.7463 18242/7f9e135ba7c0 age/Ust/UstRouterMain.cpp:504 ]: Starting Passenger UstRouter... [ 2015-11-24 14:20:25.7469 18242/7f9e135ba7c0 age/Ust/UstRouterMain.cpp:317 ]: Passenger UstRouter online, PID 18242 [Tue Nov 24 14:20:25.747329 2015] [mpm_event:notice] [pid 17566:tid 139962846635904] AH00489: Apache/2.4.7 (Ubuntu) Phusion_Passenger/5.0.21 configured -- resuming normal operations [Tue Nov 24 14:20:25.747348 2015] [core:notice] [pid 17566:tid 139962846635904] AH00094: Command line: '/usr/sbin/apache2' 中的Apache应用配置:

/etc/apache2/sites-enabled/my_app.conf

非常感谢任何帮助。提前谢谢。

更新1: 当我尝试使用<VirtualHost *:80> ServerName <my_ip_address> # Tell Apache and Passenger where your app's 'public' directory is DocumentRoot /var/www/my_app/current/public PassengerRuby /usr/local/rvm/rubies/ruby-2.2.1/bin/ruby # Relax Apache security settings <Directory /var/www/my_app/current/public> Allow from all Options -MultiViews Require all granted </Directory> </VirtualHost>

查看乘客的状态时
  

Phusion Passenger目前没有提供任何申请。

我尝试通过触摸passenger-status就这样将我的应用程序挂钩到Passenger:

restart.txt

但它不起作用。

1 个答案:

答案 0 :(得分:0)

问题出在this SO question中指出的实例设置上。默认情况下,EC2实例不允许公共HTTP访问:

  1. 单击ec2页面导航选项卡中的实例
  2. 滚动您的实例记录以查找安全组。单击安全组。
  3. 选择&#34; Inbound&#34;安全组的选项卡,并确保存在以下规则。

    HTTP TCP 80 0.0.0.0/0