2017-06-28 3 views
1

Ich erhalte den folgenden Fehler in den Nginx Fehlerprotokollen nach der Bereitstellung der Produktion ein Ruby on Rails Projekt durch capistrano zu einer Instanz auf ec2. Der öffentliche Amazon-Host zeigt ein 502 Bad Gateway nginx/1.10.0 (Ubuntu) an. Ich folgte dem Tutorial von https://www.sitepoint.com/deploy-your-rails-app-to-aws/ Es scheint, die puma.sock nicht erstellt wird, wenn ich Kappe Produktion deploy laufen ..puma.sock fehlt in ec2 Server nach capistrano Bereitstellung

2017/06/28 01:09:57 [crit] 12802#12802: *1 connect() to unix:/home/deploy/app_name/shared/tmp/sockets/puma.sock failed (2: No such file or directory) while connecting to upstream, client: 173.198.30.2, server: localhost, request: "GET/HTTP/1.1", upstream: "http://unix:/home/deploy/app_name/shared/tmp/sockets/puma.sock:/", host: "host" 

Die folgende in meinem deploy.rb ist

set :application, 'app_name' 
set :repo_url, '[email protected]:github_account/app_name.git' # Edit this to match your repository 
set :branch, :master 
set :deploy_to, '/home/deploy/app_name' 
set :pty, true 
set :linked_files, %w{config/database.yml config/application.yml} 
set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle public/system public/uploads} 
set :keep_releases, 5 
set :rvm_type, :user 
set :rvm_ruby_version, 'ruby-2.3.3' # Edit this if you are using MRI Ruby 

set :puma_rackup, -> { File.join(current_path, 'config.ru') } 
set :puma_state, "#{shared_path}/tmp/pids/puma.state" 
set :puma_pid, "#{shared_path}/tmp/pids/puma.pid" 
set :puma_bind, "unix://#{shared_path}/tmp/sockets/puma.sock" #accept array for multi-bind 
set :puma_conf, "#{shared_path}/puma.rb" 
set :puma_access_log, "#{shared_path}/log/puma_error.log" 
set :puma_error_log, "#{shared_path}/log/puma_access.log" 
set :puma_role, :app 
set :puma_env, fetch(:rack_env, fetch(:rails_env, 'production')) 
set :puma_threads, [0, 8] 
set :puma_workers, 0 
set :puma_worker_timeout, nil 
set :puma_init_active_record, true 
set :puma_preload_app, false 

Bitte helfen ! Vielen Dank im Voraus!

+0

können Sie dieses Problem lösen? –

Antwort

0

Versuchen Sie, die Folge Linie

set :puma_bind,  "unix://#{shared_path}/tmp/sockets/#{fetch(:application)}-puma.sock" 

Statt

set :puma_bind, "unix://#{shared_path}/tmp/sockets/puma.sock" 
+0

Danke für die Antwort. –

0

ich die neuere Version von Capistrano wusste nicht, zu verwenden, um die gesamte Umgebung bricht. Ich hatte die Sperre für Capistrano bei "3.8.2" in der deploy.rb. Das Umschalten auf 3.5.0 hat das Problem behoben. -_-

0

Ich weiß nicht, aber ich mit der neuesten Version von Capistrano Puma Gem hatte das gleiche Problem, aber ... die nächsten zwei Dinge versuchen:

  1. Sets mir die deploy Benutzer innerhalb der erraten deploy.rb-Datei.
 
set :user, 'deploy' 
  1. Drücken Sie diesen Code auf Ihre Github-Projekt und danach, zweimal den Befehl 'cap Produktion deploy' laufen. Ich verstehe nicht warum, aber es funktioniert für mich. Ich weiß, es hört sich verdammt dumm an, war aber die Lösung, die ich gefunden habe.
0

Ich war immer das gleiche Fehler, wenn sie auf EC2-Instanz arbeiten Rails mit Capistrano und nginx

installieren, wenn Sie bekommen 502 Fehler install_plugin Capistrano::Puma in Ihre Capfile hinzufügen nach ‚Capistrano/Puma‘ erfordern.

Verwandte Themen