Thin server not working on Production mode(live) o

2019-07-23 05:50发布

问题:

I am running a rails app with angularjs as my front end.

I have just pushed it to production, however I am getting a very strange issue.

I have used both thin and Nginx server as it is on Amazon EC2(Ubuntu 64 bit machine).

While doing so the issue I am getting is the thin server is stopping after a given amount of time (1-5 mins). This is happening on a live site.

The log file I am generating is the following:-

>> 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'.

Below is my gemfile code:

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'

I am running 4 servers of thin on nginx. I tried out many things but nothing is helping me.

Any help will be appreciated.

Update:-

I have moved the application to 32bit Ubuntu server on Amazon EC2 and it seems to be working fine out there.

I don't seem to understand the issue but have to put the application back on 64bit server in a couple of days.

I don't see any issue with the application but don't know why it is crashing on 64bit server. Is it something to do with thin server or any issue with the gems ?

Please help me out with this

回答1:

try this

thin -e production -d start

the - e is for the environment the - d allows it to run in the background when you don't use the -d it requires an open terminal to keep running

I found the answer here http://articles.slicehost.com/2008/5/6/ubuntu-hardy-thin-web-server-for-ruby