瘦服务器无法在AmazonEc2上以生产模式(实时)工作



我正在运行一个以angularjs为前端的rails应用程序。

我刚刚把它推向生产阶段,但我遇到了一个非常奇怪的问题。

我在AmazonEC2(Ubuntu 64位机器)上使用了thin和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台瘦服务器。我尝试了很多东西,但都无济于事。

任何帮助都将不胜感激。

更新:-

我已经将应用程序移到了AmazonEC2上的32位Ubuntu服务器上,它在那里似乎运行得很好。

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

我看不出应用程序有任何问题,但不知道为什么它在64位服务器上崩溃。这是与瘦服务器有关还是与gems有关?

请帮我处理这个

尝试这个

精简-e生产-d启动

-e表示环境-d允许它在后台运行当你不使用-d时,它需要一个开放的终端来保持的运行

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

相关内容

最新更新