Unter Linux ist Supervisor ein Client/Server-System, mit dem Benutzer zahlreiche Prozesse über ein Betriebssystem wie UNIX steuern können. Im Folgenden sind die Hauptvorteile von Supervisor aufgeführt:
- Komfort: Das Schreiben von rc.d für alle einzelnen Prozessinstanzen ist umständlich. Ebenso starten Rc.d-Skripte abgestürzte Prozesse nicht automatisch neu. Supervisor kann jedoch so konfiguriert werden, dass Prozesse automatisch neu gestartet werden, wenn sie abstürzen.
- Genauigkeit: In UNIX ist es häufig schwierig, den genauen Status „Up/Down“ von Prozessen zu erhalten. Der Supervisor startet Prozesse als Unterprozesse, sodass er den Aktiv/Down-Status seiner untergeordneten Prozesse kennt. Dies ist für einen Endbenutzer einfach abzufragen.
In diesem Tutorial lernen wir, wie man Supervisor installiert und konfiguriert, um den Nginx-Prozess unter Ubuntu 20.04 zu verwalten.
Voraussetzungen
- Ein frisches Ubuntu 20.04 VPS auf der Atlantic.Net Cloud Platform.
- Auf Ihrem Server ist ein Root-Passwort konfiguriert.
Schritt 1 – Erstellen Sie einen Atlantic.Net Cloud-Server
Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server und wählen Sie Ubuntu 20.04 als Betriebssystem mit mindestens 2 GB RAM. Stellen Sie über SSH eine Verbindung zu Ihrem Cloud-Server her und melden Sie sich mit den oben auf der Seite hervorgehobenen Anmeldeinformationen an.
Sobald Sie sich bei Ihrem Ubuntu 20.04-Server angemeldet haben, führen Sie den folgenden Befehl aus, um Ihr Basissystem mit den neuesten verfügbaren Paketen zu aktualisieren.
apt-get update -y
Schritt 2 – Supervisor installieren
apt-get install supervisor -y
Nach der Installation von Supervisor können Sie die installierte Version von Supervisor mit dem folgenden Befehl überprüfen:
supervisord -v
Sie sollten die folgende Ausgabe erhalten:
4.1.0
Überprüfen Sie als Nächstes den Status des Supervisor-Dienstes mit dem folgenden Befehl:
systemctl status supervisor
Sie sollten die folgende Ausgabe erhalten:
supervisor.service - Supervisor process control system for UNIX
Loaded: loaded (/lib/systemd/system/supervisor.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-10-01 13:31:42 UTC; 9s ago Docs: http://supervisord.org Main PID: 14419 (supervisord) Tasks: 1 (limit: 2353) Memory: 14.2M CGroup: /system.slice/supervisor.service └─14419 /usr/bin/python3 /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
Schritt 3 – Aktivieren Sie die Supervisor-Webschnittstelle
Supervisor bietet eine webbasierte Schnittstelle zur Verwaltung aller Prozesse, die jedoch standardmäßig deaktiviert ist. Sie können es aktivieren, indem Sie die Datei /etc/supervisor/supervisord.conf.
bearbeitennano /etc/supervisor/supervisord.conf
Fügen Sie die folgenden Zeilen hinzu:
[inet_http_server] port=*:9001 username=admin password=admin
Speichern und schließen Sie die Datei und starten Sie dann den Supervisor-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart supervisor
Schritt 4 – Nginx-Prozess mit Supervisor verwalten
In diesem Abschnitt erfahren Sie, wie Sie den Nginx-Prozess mit Supervisor steuern.
Installieren Sie zuerst den Nginx-Server mit dem folgenden Befehl:
apt-get install nginx -y
Nach der Installation von Nginx müssen Sie den Nginx-Dienst stoppen und deaktivieren, da wir Supervisor verwenden, um den Nginx-Prozess zu verwalten.
Sie können den Nginx-Dienst mit dem folgenden Befehl stoppen und deaktivieren:
systemctl stop nginx systemctl disable nginx
Als Nächstes müssen Sie für jeden Dienst, den Sie verwalten möchten, eine eigenständige Konfigurationsdatei erstellen. Sie können eine Nginx-Konfigurationsdatei mit dem folgenden Befehl erstellen:
nano /etc/supervisor/conf.d/nginx.conf
Fügen Sie die folgenden Zeilen hinzu:
[program:nginx] command=/usr/sbin/nginx -g "daemon off;" autostart=true autorestart=true startretries=5 numprocs=1 startsecs=0 process_name=%(program_name)s_%(process_num)02d stderr_logfile=/var/log/supervisor/%(program_name)s_stderr.log stderr_logfile_maxbytes=10MB stdout_logfile=/var/log/supervisor/%(program_name)s_stdout.log stdout_logfile_maxbytes=10MB
Speichern und schließen Sie die Datei, wenn Sie fertig sind. Als nächstes teilen Sie dem Supervisor mit, dass er die neue Konfiguration wissen soll:
supervisorctl reread
Sie sollten die folgende Ausgabe erhalten:
nginx: available
Weisen Sie als Nächstes Supervisor an, den Nginx-Dienst zu starten:
supervisorctl update
Sie sollten die folgende Ausgabe erhalten:
nginx: added process group
Überprüfen Sie als Nächstes, ob Supervisor den Nginx-Dienst mit dem folgenden Befehl gestartet hat:
supervisorctl
Sie sollten die folgende Ausgabe erhalten:
nginx:nginx_00 RUNNING PID 15717, Betriebszeit 0:00:13
Wenn Sie den Nginx-Dienst stoppen möchten, führen Sie den folgenden Befehl aus:
stop nginx:nginx_00
Ausgabe:
nginx:nginx_00: stopped
Führen Sie den folgenden Befehl aus, um den Nginx-Dienst erneut zu starten:
start nginx:nginx_00
Ausgabe:
nginx:nginx_00: started
Verlassen Sie nun die Supervisor-Shell mit dem folgenden Befehl:
exit
Sie können den Nginx-Prozess auch mit dem folgenden Befehl überprüfen:
ps aux | grep nginx
Sie sollten die folgende Ausgabe erhalten:
root 15721 0.0 0.4 57176 10064 ? S 14:14 0:00 nginx: master process /usr/sbin/nginx - g daemon off; www-data 15722 0.0 0.2 57828 5340 ? S 14:14 0:00 nginx: worker process www-data 15723 0.0 0.2 57828 5340 ? S 14:14 0:00 nginx: worker process
Schritt 5 – Zugriff auf die Supervisor-Weboberfläche
Sie können jetzt über die URL http://your-server-ip:9001 auf die Supervisor-Weboberfläche zugreifen . Sie werden aufgefordert, einen Benutzernamen und ein Passwort einzugeben, wie unten gezeigt:
Geben Sie Ihren Admin-Benutzernamen und Ihr Passwort ein, die Sie in der Konfiguration definiert haben, und klicken Sie dann auf Anmelden Taste. Sie sollten die Supervisor-Webschnittstelle auf der folgenden Seite sehen:
Schlussfolgerung
In diesem Handbuch haben Sie gelernt, wie Sie Supervisor installieren und die Weboberfläche unter Ubuntu 20.04 aktivieren. Sie haben auch gelernt, wie Sie den Nginx-Prozess mit Supervisor steuern. Versuchen Sie, Prozesse auf Ihrem Linux-VPS-Hostingkonto mit Atlantic.Net zu steuern!