Aufbau eines verteilten Systems: Verwenden von Nginx Proxy Manager zur Implementierung von Service Discovery und Routing
Übersicht:
In modernen verteilten Systemen sind Service Discovery und Routing sehr wichtige Funktionen. Durch die Diensterkennung kann das System verfügbare Dienstinstanzen automatisch erkennen und registrieren, während das Routing dafür sorgt, dass Anfragen korrekt an die entsprechende Dienstinstanz weitergeleitet werden. In diesem Artikel stellen wir vor, wie Sie Nginx Proxy Manager nutzen können, um eine einfache, aber leistungsstarke Service-Erkennungs- und Routing-Lösung zu erstellen, und stellen spezifische Codebeispiele bereit.
npm install -g nginx-proxy-manager
Nachdem die Installation abgeschlossen ist, können Sie den folgenden Befehl verwenden, um Nginx Proxy Manager zu starten:
npm start
Nach dem Start können Sie über den Browser auf http://localhost:81 zugreifen , um die Nginx Proxy Manager-Weboberfläche zu öffnen. Beim ersten Zugriff müssen Sie einen Administrator-Benutzernamen und ein Passwort festlegen.
Das Folgende ist eine Beispiel-Upstream-Konfiguration:
Name: my_service Servers: - Name: server1 Address: 192.168.0.1:8000 - Name: server2 Address: 192.168.0.2:8000
In dieser Konfiguration haben wir einen Upstream mit dem Namen my_service erstellt, der zwei Instanzen enthält, 192.168.0.1:8000 und 192.168.0.2:8000.
Das Folgende ist die Konfiguration eines Beispiel-Proxy-Hosts:
Domain Name: mydomain.com Path: /myroute Upstream: my_service
In dieser Konfiguration erstellen wir eine Routing-Regel, die alle Anfragen von mydomain.com/myroute an den my_service Upstream weiterleitet.
const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send('Hello, world!'); }); app.listen(8000, () => { console.log('Server is running on http://localhost:8000'); // TODO: Register the server with Nginx Proxy Manager });
Hier Beispielcode: Wir starten einen HTTP-Server, der Port 8000 überwacht. Um den Dienst beim Nginx Proxy Manager zu registrieren, müssen Sie den entsprechenden Registrierungscode in der Rückruffunktion hinzufügen, die den Server startet.
Sie können die von Nginx Proxy Manager bereitgestellte API verwenden, um Dienstinstanzen zu registrieren und die Registrierung aufzuheben. Das Folgende ist ein Beispielcode für die Registrierung einer Dienstinstanz beim Nginx Proxy Manager:
const axios = require('axios'); const registerInstance = async (name, address) => { try { await axios.post('http://localhost:81/api/proxy/host', { name, target: address, }); console.log(`Instance ${name} registered successfully`); } catch (error) { console.error(`Failed to register instance ${name}`, error); } }; // Register the server instance with Nginx Proxy Manager registerInstance('server1', 'http://192.168.0.1:8000');
In diesem Beispielcode haben wir die Axios-Bibliothek zum Senden von HTTP-Anfragen verwendet. Registrieren Sie eine Dienstinstanz, indem Sie die Funktion registerInstance
aufrufen und den Instanznamen und die Adresse an die API des Nginx-Proxy-Managers übergeben. Sie müssen sicherstellen, dass die von der API angeforderte Adresse mit der tatsächlichen Adresse des Nginx Proxy Managers übereinstimmt.
Indem Sie diesen Beispielcode auf mehreren Servern ausführen, können Sie diese als Instanzen des Dienstes registrieren und den Nginx Proxy Manager verwenden, um die Diensterkennung und -weiterleitung zu implementieren.
Zusammenfassung:
Durch die Verwendung von Nginx Proxy Manager zum Aufbau der Serviceerkennungs- und Routingfunktionen verteilter Systeme können die Konfiguration und Verwaltung des Systems vereinfacht und die Zuverlässigkeit und Skalierbarkeit des Systems verbessert werden. In diesem Artikel wird die Installations- und Konfigurationsmethode von Nginx Proxy Manager vorgestellt und spezifische Codebeispiele bereitgestellt, um zu veranschaulichen, wie Dienstinstanzen registriert und Routing-Regeln konfiguriert werden. Leser können diese Codebeispiele weiter anpassen und erweitern, um den Anforderungen ihrer eigenen verteilten Systeme gerecht zu werden.
Das obige ist der detaillierte Inhalt vonAufbau eines verteilten Systems: Verwendung von Nginx Proxy Manager zur Implementierung von Serviceerkennung und -routing. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!