Wie kann ich den Systemdienst nginx
so konfigurieren, dass er erst gestartet wird, nachdem ein node.js
Server vollständig gestartet wurde.Nginx/Node.JS - Nginx erst starten, nachdem der Knotenserver vollständig hochgefahren ist
Ich habe einen Ubuntu-Server mit 1 CPU und 5 systemd Dienstleistungen:
nginx_dashboard.service
- 4 X
[email protected]
alle Dienste beim Systemstart ausgeführt und alle docker
Container ausgeführt werden. Nur der nginx
Container ist außerhalb exponiert und es ist derjenige, der mit den 4 node
Anwendungen verknüpft ist.
Das Problem ist, dass wegen der 1 CPU und aller Dienste, die zusammen starten, es einige Sekunden dauert, bis die node
Anwendungen starten (10-13 Sekunden), während das viel leichtere nginx
sofort startet. Ich habe versucht, Requires
und zum Nginx-Dienst hinzufügen, aber es hilft nicht, da die Knoten-Dienste ausgeführt werden, aber die App selbst innerhalb der Container braucht Zeit zum Laden.
Falls die nginx
nicht verfügbar ist, kann mein Inhaltsliefersystem (in diesem Fall - CloudFlare) eine temporäre Seite anzeigen. Aber wegen dieser Verzögerung ist der Nginx-Modus abgelaufen und ich habe ein paar Sekunden Ausfallzeit auf meinem Dashboard.
Die Frage ist, ob ich diese Verzögerung verhindern und nginx erst starten kann, nachdem die node.js-Anwendung vollständig ausgeführt wurde, nicht nur der Docker-Container.
Wie kann ich 'nginx' konfigurieren, um vor dem Start Health Checks durchzuführen? – TomG
@TomG Sie müssen die nginx-Servicedatei bearbeiten und diese Logik selbst hinzufügen. –
Die Health-Check-Option in der nginx-Konfiguration ist nur im nginx plus-Programm und nicht im Open-Source-Projekt verfügbar – TomG