2017-07-11 13 views
0

nginxシステムサービスは、node.jsサーバーが完全に起動した後にのみ起動するように設定するにはどうすればよいですか。Nginx/Node.JS - ノードサーバーが完全に起動した後でNginxを起動する

  1. nginx_dashboard.service
  2. 4 X [email protected]

すべてのサービスが起動時に実行し、すべてがdockerコンテナを実行している:

は、私は1つのCPUおよび5つのにsystemdサービスとUbuntuのサーバーを持っています。 nginxコンテナのみが外部に公開されており、4 nodeアプリケーションにリンクされています。

1つのCPUとすべてのサービスが一緒に開始されているため、nodeアプリケーションの起動には数分(10〜13秒)かかりますが、より軽いものはnginxがすぐに起動します。 RequiresAfterをnginxサービスに追加しようとしましたが、ノードサービスが実行されているが、コンテナ内のアプリケーション自体が読み込みに時間がかかるため、役に立たない。

nginxがダウンしている場合、私のコンテンツ配信システム(この場合はCloudFlare)は、一時ページを提示することを知っています。しかし、この遅延のために、nginxはアップしており、ダッシュボードに数秒のダウンタイムがあります。

この遅延を防ぎ、nginxを起動できるのは、node.jsアプリケーションが完全に起動した後で、ドッカーのコンテナだけではない場合です。

答えて

0

/healthzルートを作成して、アプリの準備ができているかどうかを確認できます。あなたのnginxサービスでは、あなたは再帰的にアプリが準備ができているかどうかを確認することができます(/healthzはhttpステータスコード200を返します)。

+0

'nginx'を起動する前にヘルスチェックを行うように設定するにはどうしたらいいですか? – TomG

+0

@TomGあなたはnginxサービスファイルを編集し、自分自身でそのロジックを追加する必要があります。 –

+0

nginx設定のヘルスチェックオプションは、nginx plusプログラムでのみ利用可能で、オープンソースプロジェクトでは使用できません – TomG

関連する問題