Nginx/Node.JS-仅在节点服务器完全启动后启动Nginx

Nginx/Node.JS-仅在节点服务器完全启动后启动Nginx,node.js,nginx,docker,Node.js,Nginx,Docker,如何将nginxsystemd服务配置为仅在node.js服务器完全启动后启动 我有一台ubuntu服务器,有1个CPU和5个systemd服务: nginx\u仪表板服务 4个仪表板_customer@.service 所有服务都在启动时运行,并且都在运行dockercontainers。只有nginx容器暴露在外部,它是链接到4个节点应用程序的容器 问题在于,由于1个CPU和所有服务一起启动,因此节点应用程序启动需要几秒钟(10-13秒),而更轻的nginx会立即启动。 我尝试将Requir

如何将
nginx
systemd服务配置为仅在
node.js
服务器完全启动后启动

我有一台ubuntu服务器,有1个CPU和5个systemd服务:

  • nginx\u仪表板服务
  • 4个
    仪表板_customer@.service
  • 所有服务都在启动时运行,并且都在运行
    docker
    containers。只有
    nginx
    容器暴露在外部,它是链接到4个
    节点
    应用程序的容器

    问题在于,由于1个CPU和所有服务一起启动,因此
    节点
    应用程序启动需要几秒钟(10-13秒),而更轻的
    nginx
    会立即启动。 我尝试将
    Requires
    After
    添加到nginx服务中,但是没有帮助,因为节点服务正在运行,但是容器中的应用本身需要时间来加载

    如果
    nginx
    关闭,我的内容交付系统(在本例中为CloudFlare)会显示一个临时页面。但是由于这个延迟,nginx启动了,我的仪表板有几秒钟的停机时间


    问题是,我是否可以防止这种延迟,并且仅在node.js应用程序完全启动后启动nginx,而不仅仅是docker容器。

    您可以创建一个
    /healthz
    路由来检查应用程序是否准备就绪。在nginx服务中,您可以递归地检查应用程序是否准备就绪(
    /healthz
    返回http状态代码200)并且只在准备好后启动。

    如何配置
    nginx
    在启动前进行运行状况检查?@TomG您必须编辑nginx服务文件并自己添加该逻辑。nginx配置中的运行状况检查选项仅在nginx plus程序中可用,而在开源项目中不可用