Phusion пассажирский nginx плохой шлюз после прикосновения tmp / restart.txt - PullRequest
0 голосов
/ 19 октября 2011

Я внес некоторые изменения в свое приложение rails и попытался отправить изменения, используя задачу развертывания capistrano.Он работал нормально и закончил, поместив файл restart.txt в папку tmp приложения.Затем я посетил сайт, сразу же получив ошибку 502 неверного шлюза.Я остановил nginx и попытался перезагрузить.Когда я это делаю, я просто получаю:

Starting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

Когда я запускаю ps ax, несколько рабочих процессов nginx все еще работают, но я не могу представить, что это будет проблемой.Если это поможет, вот мой сценарий развертывания:

# $:.unshift(File.expand_path('./lib', ENV['rvm_path']))

# require 'rvm/capistrano'
require 'bundler/capistrano'

# set :rvm_ruby_string, 'ruby-1.9.2-p290@global'
# set :rvm_type, :user

set :default_environment, {
  'PATH' => "/home/user/.rvm/gems/ruby-1.9.2-p290/bin:/home/user/.rvm/bin:/home/user/.rvm/ruby-1.9.2-p290/bin:$PATH",
  'RUBY_VERSION' => 'ruby 1.9.2',
  'GEM_HOME'     => '/home/user/.rvm/gems/ruby-1.9.2-p290',
  'GEM_PATH'     => '/home/user/.rvm/gems/ruby-1.9.2-p290',
  'BUNDLE_PATH'  => '/home/user/.rvm/gems/ruby-1.9.2-p290'  # If you are using bundler.
}

set :application, "StarCraftZen"
set :repository,  "githubrepourl"
set :user, "user"
set :scm_username, "user"
set :use_sudo, false
default_run_options[:pty] = true

set :scm, :git
# Or: `accurev`, `bzr`, `cvs`, `darcs`, `git`, `mercurial`, `perforce`, `subversion` or `none`

set :deploy_to, "/home/user/app/"

role :web, "myapp.com"                         # Your HTTP server, Apache/etc
role :app, "myapp.com"                          # This may be the same as your `Web` server
role :db,  "myapp.com", :primary => true # This is where Rails migrations will run

load 'deploy/assets'

namespace :deploy do
  #desc "deploy the precompiled assets"
  #task :deploy_assets, :except => { :no_release => true } do
  #  run "cd #{release_path} && rm -rf public/assets/*"
  #  run "cd #{release_path} && RAILS_ENV=production bundle exec rake assets:precompile"
  #end

  desc "Restart nginx"
  task :restart do
    run "touch /home/user/app/current/tmp/restart.txt"
  end
end

1 Ответ

0 голосов
/ 19 октября 2011

В конце концов нашел другой пост, в котором говорится, что нужно попробовать запустить команду netstat с помощью sudo:

sudo netstat -anltp | grep LISTEN

Затем я смог найти PID, используя порт 80, и убить его. Это был один из рабочих.

...