[英]Nginx/Node.JS - start Nginx only after node server is fully up
我如何配置nginx
systemd服務使其僅在完全啟動node.js
服務器之后才能啟動。
我有一個具有1個CPU和5個systemd服務的ubuntu服務器:
nginx_dashboard.service
dashboard_customer@.service
所有服務都在啟動時運行,並且都在運行docker
容器。 只有nginx
容器暴露在外部,並且它是鏈接到4個node
應用程序的容器。
問題在於,由於1個CPU和所有服務都一起啟動,因此啟動node
應用程序需要幾秒鍾的時間(10-13秒),而輕得多的nginx
立即啟動。 我嘗試將Requires
和After
添加到nginx服務中,但由於節點服務正在運行,因此沒有幫助,但是容器內的應用程序本身需要花費一些時間來加載。
萬一nginx
故障,我的內容交付系統(在本例中為CloudFlare)知道呈現臨時頁面。 但是由於這種延遲,nginx已啟動,並且我的儀表板有幾秒鍾的停機時間。
問題是我是否可以防止這種延遲並僅在node.js應用程序完全啟動后才啟動nginx,而不僅僅是docker容器。
您可以創建/healthz
路由來檢查應用程序是否准備就緒。 在您的nginx服務中,您可以遞歸檢查應用程序是否准備就緒( /healthz
返回http狀態代碼200),只有在准備就緒后才能啟動。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.