瘦服务器无法在Amazon Ec2上的生产模式(实时)上运行

时间:2014-02-11 10:33:04

标签: ruby-on-rails ubuntu nginx amazon-ec2

我正在运行一个rails应用程序,其中angularjs作为我的前端。

我刚把它推到了制作阶段,但是我遇到了一个非常奇怪的问题。

我在Amazon EC2(Ubuntu 64位机器)上使用了瘦和Nginx服务器。

虽然这样做但我得到的问题是瘦服务器在给定的时间(1-5分钟)后停止。这是在现场网站上发生的。

我生成的日志文件如下: -

>> Thin web server (v1.5.1 codename Straight Razor)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:3000, CTRL+C to stop
>> Exiting!
/usr/local/rvm/gems/ruby-1.9.3-p484/gems/eventmachine-1.0.3/lib/em/pure_ruby.rb:578:in `write_nonblock': Broken pipe (Errno::EPIPE)
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/eventmachine-1.0.3/lib/em/pure_ruby.rb:578:in `eventable_write'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/eventmachine-1.0.3/lib/em/pure_ruby.rb:368:in `block in crank_selectables'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/eventmachine-1.0.3/lib/em/pure_ruby.rb:368:in `each'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/eventmachine-1.0.3/lib/em/pure_ruby.rb:368:in `crank_selectables'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/eventmachine-1.0.3/lib/em/pure_ruby.rb:324:in `block in run'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/eventmachine-1.0.3/lib/em/pure_ruby.rb:318:in `loop'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/eventmachine-1.0.3/lib/em/pure_ruby.rb:318:in `run'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/eventmachine-1.0.3/lib/em/pure_ruby.rb:62:in `run_machine'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in `run'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/thin-1.5.1/lib/thin/backends/base.rb:63:in `start'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/thin-1.5.1/lib/thin/server.rb:159:in `start'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/thin-1.5.1/lib/thin/controllers/controller.rb:86:in `start'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/thin-1.5.1/lib/thin/runner.rb:187:in `run_command'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/thin-1.5.1/lib/thin/runner.rb:152:in `run!'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/thin-1.5.1/bin/thin:6:in `<top (required)>'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/bin/thin:23:in `load'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/bin/thin:23:in `<main>'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/bin/ruby_executable_hooks:15:in `eval'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/bin/ruby_executable_hooks:15:in `<main>'
>> Writing PID to tmp/pids/thin.3000.pid
>> Using rack adapter
You did not specify how you would like Rails to report deprecation notices for your Production environment, please set config.active_support.deprecation to :log, :notify or :stderr at config/environments/Production.rb
/usr/local/rvm/gems/ruby-1.9.3-p484/gems/eventmachine-1.0.3/lib/em/pure_ruby.rb:256: warning: already initialized constant TimerFired
/usr/local/rvm/gems/ruby-1.9.3-p484/gems/eventmachine-1.0.3/lib/em/pure_ruby.rb:258: warning: already initialized constant ConnectionData
/usr/local/rvm/gems/ruby-1.9.3-p484/gems/eventmachine-1.0.3/lib/em/pure_ruby.rb:260: warning: already initialized constant ConnectionUnbound
/usr/local/rvm/gems/ruby-1.9.3-p484/gems/eventmachine-1.0.3/lib/em/pure_ruby.rb:262: warning: already initialized constant ConnectionAccepted
/usr/local/rvm/gems/ruby-1.9.3-p484/gems/eventmachine-1.0.3/lib/em/pure_ruby.rb:264: warning: already initialized constant ConnectionCompleted
/usr/local/rvm/gems/ruby-1.9.3-p484/gems/eventmachine-1.0.3/lib/em/pure_ruby.rb:266: warning: already initialized constant LoopbreakSignalled
        SECURITY WARNING: No secret option provided to Rack::Session::Cookie.
        This poses a security threat. It is strongly recommended that you
        provide a secret to prevent exploits that may be possible from crafted
        cookies. This will not be supported in future versions of Rack, and
        future versions will even invalidate your existing user cookies.

        Called from: /usr/local/rvm/gems/ruby-1.9.3-p484/gems/actionpack-3.2.8/lib/action_dispatch/middleware/session/abstract_store.rb:28:in `initialize'.

以下是我的gemfile代码:

source 'https://rubygems.org'

gem 'rails', '3.2.8'
gem 'rake' , '10.1.0'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'


gem 'json','1.8.0'
gem 'thin' ,'1.5.1'

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  gem 'therubyracer', '0.10.2', :platforms => :ruby
  gem 'less-rails','2.2.6'
  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails', :git => 'https://github.com/rails/jquery-rails.git'

# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'

# To use Jbuilder templates for JSON
# gem 'jbuilder'

# Use unicorn as the app server
# gem 'unicorn'

# Deploy with Capistrano
 gem 'capistrano','2.15.5'
gem 'rvm-capistrano' ,'1.4.3'


# To use debugger
# gem 'ruby-debug'

我在nginx上运行4台瘦服务器。我试了很多东西,但没有什么能帮到我。

任何帮助将不胜感激。

更新: -

我已经将应用程序移动到Amazon EC2上的32位Ubuntu服务器,它似乎在那里正常工作。

我似乎不明白这个问题,但必须在几天内将应用程序放回64位服务器上。

我没有看到应用程序的任何问题,但不知道为什么它在64位服务器上崩溃。这与瘦服务器或宝石的任何问题有关吗?

请帮我解决这个问题

1 个答案:

答案 0 :(得分:0)

试试这个

瘦-e production -d start

-e是针对环境的 -d允许它在后台运行 当你不使用-d时,它需要一个开放的终端来继续运行

我在这里找到了答案 http://articles.slicehost.com/2008/5/6/ubuntu-hardy-thin-web-server-for-ruby