簡體   English   中英

Nginx / Node.JS-僅在節點服務器完全啟動后啟動Nginx

[英]Nginx/Node.JS - start Nginx only after node server is fully up

我如何配置nginx systemd服務使其僅在完全啟動node.js服務器之后才能啟動。

我有一個具有1個CPU和5個systemd服務的ubuntu服務器:

  1. nginx_dashboard.service
  2. 4個dashboard_customer@.service

所有服務都在啟動時運行,並且都在運行docker容器。 只有nginx容器暴露在外部,並且它是鏈接到4個node應用程序的容器。

問題在於,由於1個CPU和所有服務都一起啟動,因此啟動node應用程序需要幾秒鍾的時間(10-13秒),而輕得多的nginx立即啟動。 我嘗試將RequiresAfter添加到nginx服務中,但由於節點服務正在運行,因此沒有幫助,但是容器內的應用程序本身需要花費一些時間來加載。

萬一nginx故障,我的內容交付系統(在本例中為CloudFlare)知道呈現臨時頁面。 但是由於這種延遲,nginx已啟動,並且我的儀表板有幾秒鍾的停機時間。

問題是我是否可以防止這種延遲並僅在node.js應用程序完全啟動后才啟動nginx,而不僅僅是docker容器。

您可以創建/healthz路由來檢查應用程序是否准備就緒。 在您的nginx服務中,您可以遞歸檢查應用程序是否准備就緒( /healthz返回http狀態代碼200),只有在准備就緒后才能啟動。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM