Wie man Nginx Server auf mehreren Ports lauschen lässt
Nginx ist ein vielseitiger Webserver und Reverse-Proxy, der so konfiguriert werden kann, dass er auf mehreren Ports lauscht, wodurch er sich für die Bereitstellung verschiedener Websites, Anwendungen oder Dienste vom selben Server aus eignet. Nginx so zu konfigurieren, dass es auf mehreren Ports lauscht, kann nützlich sein, um verschiedene Inhalte auf verschiedenen Ports bereitzustellen oder um Dienste wie HTTP (Port 80) und HTTPS (Port 443) zu unterstützen. Diese Anleitung zeigt Ihnen, wie Sie Nginx so konfigurieren, dass es auf mehreren Ports lauscht.
Voraussetzungen
- Ein Server mit installiertem und laufendem Nginx.
- Root- oder sudo-Zugriff, um Nginx-Konfigurationsdateien zu ändern.
- Grundlegendes Verständnis der Nginx-Konfigurationsdateien (nginx.conf und Site-spezifische Konfigurationsdateien).
Überblick über die grundlegende Nginx-Konfiguration
Die Konfigurationsdateien von Nginx befinden sich je nach Linux-Distribution typischerweise in /etc/nginx/nginx.conf oder in /etc/nginx/sites-available/ für spezifische Site-Konfigurationen. Die wichtigste Direktive für das Lauschen auf einem Port ist listen, die die IP-Adresse und den Port angibt, auf die Nginx hören soll.
Schritt 1: Öffnen der Nginx-Konfigurationsdatei
Um Nginx so zu konfigurieren, dass es an mehreren Ports lauscht, müssen Sie die Nginx-Konfigurationsdatei bearbeiten. Öffnen Sie die Datei mit Ihrem bevorzugten Texteditor:
sudo nano /etc/nginx/nginx.conf
Oder, wenn Sie eine bestimmte Site-Konfiguration bearbeiten:
sudo nano /etc/nginx/sites-available/example.conf
Schritt 2: Hinzufügen mehrerer Listen-Direktiven
Um Nginx dazu zu bringen, auf mehreren Ports zu lauschen, können Sie mehrere Listen-Direktiven innerhalb eines Serverblocks hinzufügen. Hier ist ein Beispiel für einen Server-Block, der auf den Ports 80 und 8080 lauscht:
server {
lauschen 80;
lauschen 8080;
server_name example.com;
root /var/www/html;
index index.html;
standort / {
try_files $uri $uri/ =404;
}
}
In dieser Konfiguration:
- listen 80; weist Nginx an, auf HTTP-Anfragen an Port 80 zu warten.
- listen 8080; weist Nginx an, auf HTTP-Anfragen an Port 8080 zu warten.
Das bedeutet, dass sowohl Anfragen an http://example.com:80 als auch an http://example.com:8080 von diesem Serverblock bearbeitet werden.
Schritt 3: Konfigurieren von HTTPS mit mehreren Ports
Wenn Sie HTTPS auf einem anderen Port (z. B. 8443) aktivieren möchten, können Sie es wie folgt konfigurieren:
server {
listen 443 ssl;
listen 8443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;root /var/www/html;
index index.html;
standort / {
try_files $uri $uri/ =404;
}
}
In dieser Konfiguration:
- listen 443 ssl; lässt Nginx auf HTTPS-Anfragen auf dem Standard-Port 443 lauschen.
- listen 8443 ssl; lässt Nginx auf HTTPS-Anfragen an Port 8443 lauschen.
- Die Pfade für das SSL-Zertifikat und den Schlüssel (ssl_certificate und ssl_certificate_key) werden zur Aktivierung von HTTPS verwendet.
Schritt 4: Überprüfen der Konfiguration
Nachdem Sie Änderungen vorgenommen haben, ist es wichtig, die Nginx-Konfiguration auf Syntaxfehler zu überprüfen, bevor Sie die Änderungen anwenden. Ausführen:
sudo nginx -t
Wenn die Ausgabe besagt, dass die Syntax in Ordnung ist, ist die Konfiguration korrekt.
Schritt 5: Neustart von Nginx
Um die Änderungen zu übernehmen, starten Sie Nginx neu:
sudo systemctl restart nginx
Oder, wenn Ihr System den Dienst:
sudo service nginx restart
Schritt 6: Testen der Konfiguration
Überprüfen Sie, ob Nginx auf mehreren Ports korrekt lauscht:
- Überprüfen Sie lauschende Ports: Verwenden Sie netstat oder ss, um zu überprüfen, ob Nginx an den angegebenen Ports lauscht:
sudo netstat -tuln | grep nginx
oder:sudo ss -tuln | grep nginx
Dadurch wird eine Liste der Ports angezeigt, die von Nginx überwacht werden. Sie sollten Einträge für die Ports 80, 8080, 443 und 8443 sehen. - Greifen Sie auf den Server zu: Öffnen Sie Ihren Webbrowser und versuchen Sie, über die verschiedenen Ports auf den Server zuzugreifen:
- http://example.com
- http://example.com:8080
- https://example.com
- https://example.com:8443
Wenn die Konfiguration korrekt vorgenommen wurde, sollte derselbe Inhalt angezeigt werden.
Erweitert: Unterschiedliche Inhalte für verschiedene Ports einstellen
Sie können unterschiedliche Inhalte konfigurieren, die auf der Grundlage des Ports bereitgestellt werden. Zum Beispiel können Sie für jeden Port unterschiedliche Stammverzeichnisse bereitstellen:
server {
listen 80;
server_name example.com;
stammverzeichnis /var/www/html80;
index index.html;Standort / {
try_files $uri $uri/ =404;
}
}
server {
listen 8080;
server_name example.com;
root /var/www/html8080;
index index.html;Standort / {
try_files $uri $uri/ =404;
}
}
In diesem Beispiel:
- Bei Anfragen an http://example.com (Port 80) wird der Inhalt von /var/www/html80 bereitgestellt.
- Bei Anfragen an http://example.com:8080 wird der Inhalt von /var/www/html8080 bereitgestellt.
Schlussfolgerung
Wenn Sie Nginx so konfigurieren, dass es auf mehreren Ports lauscht, können Sie verschiedene Dienste bereitstellen, benutzerdefinierte Setups unterstützen oder Flexibilität in Ihrer Netzwerkarchitektur bieten. Egal, ob Sie Nginx benötigen, um mehrere HTTP- und HTTPS-Ports zu verwalten oder verschiedene Ports auf verschiedene Inhalte zu leiten, die listen-Direktive von Nginx macht die Einrichtung einfach. Stellen Sie nur sicher, dass Sie Ihre Konfigurationen überprüfen, Nginx neu starten und jeden Port testen, um sicherzustellen, dass alles wie erwartet funktioniert.