Nginx ist ein kostenloser, leistungsstarker Open-Source-HTTP- und Reverse-Proxy-Server. Es kann als eigenständiger Webserver und als Reverse-Proxy für Apache und andere Webserver verwendet werden. Es ist ein flexibleres und leichteres Programm als Apache HTTP Server, weshalb es einige der größten Websites im Internet unterstützt.
Nginx kann eine größere Menge an Verbindungen verarbeiten als Apache und verbraucht weniger Speicher.
Hier bei LinuxAPT helfen wir unseren Kunden im Rahmen unserer Server Management Services regelmäßig dabei, entsprechende Nginx-Abfragen durchzuführen.
In diesem Zusammenhang werden wir untersuchen, wie Nginx auf einem Debian 9-Server installiert wird.
Wie installiere ich Nginx unter Debian?
Bevor Sie mit diesem Installationsverfahren fortfahren, stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind:
- Sie sollten beim Debian-Server mit einem nicht-root-sudo-fähigen Benutzerkonto angemeldet sein.
- Stellen Sie sicher, dass Apache oder andere Dienste nicht auf Port 80 oder 443 ausgeführt werden.
Aktualisieren Sie nun den Systempaketindex auf die neueste Version, indem Sie den folgenden Befehl ausführen:
$ sudo apt update
Installieren Sie nun Nginx, indem Sie Folgendes eingeben:
$ sudo apt install nginx
Sobald der Installationsvorgang abgeschlossen ist, wird der Nginx-Dienst automatisch gestartet. Sie können dies überprüfen, indem Sie den folgenden Befehl ausführen:
$ sudo systemctl status nginx
Output
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2019-04-15 20:19:06 IST; 32min ago
Docs: man:nginx(8)
Process: 421 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 370 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 423 (nginx)
Tasks: 2 (limit: 4915)
CGroup: /system.slice/nginx.service
├─423 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─424 nginx: worker process
Wie passt man die Firewall für Nginx an?
Wenn auf Ihrem Server eine Firewall aktiviert ist, müssen Sie sowohl HTTP(80)- als auch HTTPS(443)-Ports öffnen.
Führen Sie die folgenden Befehle aus, um sowohl HTTP(80)- als auch HTTPS(443)-Ports zu öffnen:
$ sudo firewall-cmd --permanent --zone=public --add-service=http
$ sudo firewall-cmd --permanent --zone=public --add-service=https
$ sudo firewall-cmd --reload
Wenn Sie iptables verwenden, um Verbindungen zu Ihrem System zu filtern, müssen Sie die Ports HTTP (80) und HTTPS (443) öffnen.
Öffnen Sie die erforderlichen Ports, indem Sie den folgenden Befehl ausführen:
$ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Sie können Ihre Nginx-Installation überprüfen, indem Sie die folgende URL in Ihrem Browser aufrufen:
http://YOUR_SERVER_IP_ADDRESS
Jetzt sehen Sie die Standard-Willkommensseite von Nginx.
Wie verwalte ich den Nginx-Dienst?
Schließlich haben Sie den Nginx-HTTP-Server auf Ihrem Computer installiert. Im Folgenden finden Sie einige grundlegende Befehle zum Verwalten des Nginx-Dienstes:
Sie können den Nginx-Dienst stoppen, indem Sie den folgenden Befehl ausführen:
$ sudo systemctl stop nginx
Um es erneut zu starten, geben Sie Folgendes ein:
$ sudo systemctl start nginx
Starten Sie den Nginx-Dienst neu (stoppen und starten Sie den Apache-Dienst):
$ sudo systemctl restart nginx
Wenn die Konfigurationsdatei bearbeitet wurde und der Nginx-Dienst neu geladen werden soll, können Sie dies tun, indem Sie Folgendes eingeben:
$ sudo systemctl reload nginx
Um Nginx für den automatischen Start nach dem Booten zu deaktivieren, führen Sie den folgenden Befehl aus:
$ sudo systemctl disable nginx
Geben Sie zur erneuten Aktivierung Folgendes ein:
$ sudo systemctl enable nginx
Struktur der Nginx-Konfigurationsdateien
- Alle Konfigurationsdateien befinden sich im Verzeichnis /etc/nginx/.
- Die Hauptkonfigurationsdatei von Nginx befindet sich unter /etc/nginx/nginx.conf.
- Es hat sich bewährt, für eine bessere Wartbarkeit eine separate Konfigurationsdatei für jede Domain zu erstellen.
- Neue Serverblöcke (Konfigurationsdatei) jeder Domain sollten im Verzeichnis /etc/nginx/sites-available gespeichert werden. Sie müssen einen Symlink dieser Konfigurationsdateien unter /etc/nginx/sites-enabled erstellen, um sie von Nginx verwenden zu lassen.
- Die Aktivierung von Serverblöcken erfolgt durch Erstellen eines Symlinks (eines Zeigers) von der Konfigurationsdatei sites in einem /etc/nginx/sites-enabled-Verzeichnis zum sites-enabled-Verzeichnis.
- Das standardmäßige Web-Root-Verzeichnis des Servers ist /var/www/html
- Es hat sich bewährt, die standardmäßige Namenskonvention zu befolgen. Der Name der Nginx-Serverblockdateien sollte als Domänenname verwendet werden und muss mit der Erweiterung .conf enden. Beispiel:Ihr Domänenname lautet example.com, dann sollte der Dateiname des Serverblocks example.com.conf heißen
- Nginx-Protokolldateien (access.log und error.log) befinden sich im Verzeichnis /var/log/nginx/. Es wird auch empfohlen, für jeden Serverblock unterschiedliche Zugriffs- und Fehlerprotokolldateien zu haben.
Nginx-Serverprotokolldateien:
/var/log/nginx/access.log:Jede Anfrage an Ihren Webserver wird in dieser Protokolldatei aufgezeichnet, sofern Nginx nicht anders konfiguriert ist.
/var/log/nginx/error.log:Alle Nginx-Fehler werden in diesem Protokoll aufgezeichnet.