ec2にアプリケーションをデプロイするためにゴム製の宝石を使用しました。 こちらの手順は、http://ramenlab.wordpress.com/2011/06/24/deploying-your-rails-app-to-aws-ec2-using-rubber/です。
プロセスは正常に終了したようですが、アプリケーションを使用しようとすると、504ゲートウェイのタイムアウトが発生し続けます。 どうしてこのようなことが起こり、どうすれば修正できますか?マシュー・コンウェイ(以下再掲)からラバーを使用してec2に展開した後で504ゲートウェイのタイムアウトを維持します
答えて
注:でもこのコードをあなたのような何かをする必要があります。
>キャップデプロイ:更新
> FILTER = app01 、app02 cap展開:再起動
> FILTER = app03、app04 cap展開:再起動
これはレールアプリケーションと思われますか?レールの積み重ねは非常に遅くなっているので、ロード時間のこの遅れはおそらくあなたが見ているものです。乗客はゼロダウンタイムフィーチャーv3でこれをより良くすることになっていましたが、それはそれを拒否したようで、未定義のポイントで未定義の有料バージョンの一部としてのみ提供する予定です。
私がやっていることは、複数のアプリケーションサーバーインスタンスを持っていてそれをシリアルに再起動して、他のサーバーが再起動している間にトラフィックを1つのサーバーで処理できるようにすることです。単一のインスタンスでは動作しませんが、大部分のプロダクションセットアップでは、冗長性/信頼性のために複数のインスタンスが必要です。これは現在ゴムの一部ではありませんが、私はそれが私のアプリのためのスクリプトの設定を展開して、ある時点でそれをマージします - 私の設定は以下のようになります。
マット
ゴムpassenger.yml:
roles:
passenger:
rolling_restart_port: "#{passenger_listen_port}"
web_tools:
rolling_restart_port: "#{web_tools_port}"
展開-apache.rb:
on :load do
rubber.serial_task self, :serial_restart, :roles => [:app, :apache] do
rsudo "service apache2 restart"
end
rubber.serial_task self, :serial_reload, :roles => [:app, :apache] do
# remove file checked by haproxy to take server out of pool, wait some
# secs for haproxy to realize it
maybe_sleep = " && sleep 5" if RUBBER_ENV == 'production'
rsudo "rm -f #{previous_release}/public/httpchk.txt #{current_release}/public/httpchk.txt#{maybe_sleep}"
rsudo "if ! ps ax | grep -v grep | grep -c apache2 &> /dev/null; then service apache2 start; else service apache2 reload; fi"
# Wait for passenger to startup before adding host back into haproxy pool
logger.info "Waiting for passenger to startup"
opts = get_host_options('rolling_restart_port') {|port| port.to_s}
rsudo "while ! curl -s -f http://localhost:$CAPISTRANO:VAR$/ &> /dev/null; do echo .; done", opts
# Touch the file so that haproxy adds this server back into the pool.
rsudo "touch #{current_path}/public/httpchk.txt#{maybe_sleep}"
end
end
after "deploy:restart", "rubber:apache:reload"
desc "Starts the apache web server"
task :start, :roles => :apache do
rsudo "service apache2 start"
opts = get_host_options('rolling_restart_port') {|port| port.to_s}
rsudo "while ! curl -s -f http://localhost:$CAPISTRANO:VAR$/ &> /dev/null; do echo .; done", opts
rsudo "touch #{current_path}/public/httpchk.txt"
end
興味深い!だから、「レールの積み重ねが悪くてロードが遅くなっている」と言うと、一般的に数分、数時間話していますか? –
私は同じエラーを持って、問題を解決しました。 "haproxy"タイムアウトでした。それはゴムによって設置されたロードバランサです。 30000msに設定されていますので、ラバーコンフィギュレーションファイルで変更する必要があります。
幸運を祈る!
- 1. 504ゲートウェイのタイムアウト - php
- 2. エラー504ゲートウェイのタイムアウト
- 3. ログイン後のDocker phpmyadmin:504ゲートウェイのタイムアウト
- 4. Django + Nginx + uWSGI = 504ゲートウェイのタイムアウト
- 5. ラバーを使用したAWS/EC2へのRailsアプリケーションのデプロイ
- 6. バックグラウンドでタスクを実行して、504ゲートウェイのタイムアウトを防ぎます
- 7. 展開が失敗して504
- 8. トポロジの展開でKnoxゲートウェイのエラーが発生しました
- 9. JavaFX - Shape.union()を使用した後にシェイプボーダーを維持する
- 10. イヤホンの展開時に接続がタイムアウトしました
- 11. JfrogローカルArtifactoryで.warアーティファクトを維持し、展開用にダウンロードする
- 12. Amazon RDSとEC2を使用して接続がタイムアウトしました
- 13. Amazon EC2で展開されたパーズサーバーFCMを使用したAndroid通知
- 14. 504特定のPOSTリクエストでのゲートウェイのタイムアウト
- 15. htm2canvasを使用した後も元の画質を維持します
- 16. 独立した開発ビルドを維持しながら、展開された英雄ビルドを持つ方法
- 17. Nginxが提供するPHP-FPM:504ゲートウェイのタイムアウト - nginx
- 18. APIゲートウェイを介してEC2 Restサービスを公開
- 19. webpack2を使用して.ssssファイルを.cssに展開します。
- 20. VTLタイムアウトを使用したAWSゲートウェイAPIマッピング
- 21. Gitを使用してサーバーに展開
- 22. Mongoを使用したHerokuの展開
- 23. DBDeloyを使用したDBの展開
- 24. capistranoを使用したhttpsの展開
- 25. Powershellを使用したアプリケーションの展開
- 26. Java:Math.absを使用し、後で使用するために使用された頻度のカウントを維持する
- 27. Apacheを使用したSpring Cloud Dataflowでの展開に失敗しました。
- 28. APIゲートウェイを使用してAPIゲートウェイを使用してSNSトピック/複数のラムダ機能を公開する
- 29. ストアに展開した後のUWP展開エラー
- 30. Octopus展開を使用したセキュアな展開パターン
どのようにアプリを使用しようとしていますか?正しいTCP/IPポートが開いていますか? AWSのWebコンソールまたはコマンドラインでチェックインしてください:) – Daan
私はcap展開を実行しました:それは問題ありませんでした。 –
正直言って私はRubyをレールに使用したことはありませんでしたが、AWS Webコンソールのセキュリティ設定を見て、正しいポートが開いていることを確認しましたか?ファイアウォールの問題のように聞こえる – Daan