【问题标题】:can't connect to the server after deployed rails app in EC2 with Rubber在 EC2 中使用 Rubber 部署 Rails 应用程序后无法连接到服务器
【发布时间】:2013-03-06 19:18:54
【问题描述】:

我刚刚在 EC2 上部署了带有 Rubber 的 rails 应用程序。此外,还为数据库创建了一个 RDS 实例。运行

$ cat /etc/host 

在生产中获取橡胶配置为

但是当我浏览http://web01.musemebackend.com/admin/login时,我得到了'504 Gateway Time-out, server没有及时响应'的错误

apache2中的错误日志显示:

[ pid=1813 thr=12161140 file=utils.rb:176 time=2013-03-06 20:49:28.175 ]: 
*** Exception PhusionPassenger::UnknownError in PhusionPassenger::Rack::ApplicationSpawner (Can't connect to MySQL server on 'musemedb.cfmz4gvshyts.us-east-1.rds.amazonaws.com' (110) (Mysql2::Error)) (process 1813, thread #<Thread:0x000000017320e8>):

当我修改了 config/database.yml:

production:
  adapter: mysql2
  encoding: utf8
  database: muse_me_backend_production
  username: app_admin
  password: MYPASSWORD
  host: musemedb.cfmz4gvshyts.us-east-1.rds.amazonaws.com
  port: 3306

修改config/rubber/rubber-mysql.yml为:

# REQUIRED: The credentials for creating/accessong your app's database
#
db_user: app_admin
db_pass: MYPASSWORD
db_name: muse_me_backend_production
db_host: musemedb.cfmz4gvshyts.us-east-1.rds.amazonaws.com

和 config/rubber/common/database.yml 一样

<%
  @path = "#{Rubber.root}/config/database.yml"
%>

<%= Rubber.env %>:
  adapter: <%= YAML::load(File.open("#{Rubber.root}/config/database.yml"))["production"]["adapter"] %>
  encoding: utf8
  database: <%= rubber_env.db_name %>
  username: <%= rubber_env.db_user %>
  password: <%= rubber_env.db_pass %>
  host: <%= rubber_env.db_host %>
  pool: 5

应用程序应该已成功部署。数据库迁移也很成功。连接服务器有什么我错过的吗?我需要拥有musemebackend.com 的域名吗?现在我不拥有它。我在教程中看到它只是 foo.com。这有关系吗?

谢谢

【问题讨论】:

    标签: deployment amazon-ec2


    【解决方案1】:

    问题是我没有将应用角色实例的安全组添加到数据库安全组。现在它已经修复了。

    【讨论】:

      猜你喜欢
      • 2012-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多