AWS EC2インスタンスのRuby on Railsアプリケーションを実行しているPumaサーバーがあります。しばらくの間うまくいきましたが、数時間後に502エラーで応答しました。アプリはカピストラーノと一緒に配備されています。numaxリバースプロキシを使用したプーマのサイレントクラッシュ
プーマの簡単な再起動で一時的に問題が解決されましたが、もう一度その問題が発生しないようにしたいと思います。最初に何を試していいか分かりません。
は、ここに私カピストラーノのピューマの設定です:
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"
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
set :bundle_gemfile, -> { release_path.join('Gemfile') }
プーマ・エラー・ログには、任意のクラッシュが表示されません。
Nginxのエラーログには、クライアントのIPアドレスをxxに出力します。 2016/08/09 06:25:52 [エラー] 1081#0:* 348 unixへのconnect():/// home/deploy /アップストリーム、クライアント:xx.xx.xx.xx、サーバー:example.com、要求: "POST/mypath HTTP/1.1"に接続中にmyapp/shared/tmp/sockets/puma.sock failed(111:Connection refused)上流:「http://unix:///home/deploy/myapp/shared/tmp/sockets/puma.sock:/mypath」、ホスト:「example.com」
オープンファイルが不足していますか? (ネットワーク接続もファイルです)あなたの ''あなたのプーマ作業員の '' ls/proc//fd | wc -l'と 'cat/proc//limits'が表示されますか? –
Vasfed
@Vasfed 'ls/proc/2522/fd | wc -l'> 15 'cat/proc/2522/limits'>最大オープンファイル1024 4096ファイル – CaptainStiggz