Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Aufbau eines verteilten Systems: Verwendung von Nginx Proxy Manager zur Implementierung von Serviceerkennung und -routing

Aufbau eines verteilten Systems: Verwendung von Nginx Proxy Manager zur Implementierung von Serviceerkennung und -routing

PHPz
PHPzOriginal
2023-09-26 10:03:211168Durchsuche

构建分布式系统:利用Nginx Proxy Manager实现服务发现与路由

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.

  1. Erfahren Sie mehr über Nginx Proxy Manager
    Nginx Proxy Manager ist ein Nginx-basierter Proxyserver-Manager, der eine benutzerfreundliche Weboberfläche zum Konfigurieren und Verwalten von Reverse-Proxy-Servern bietet. Es unterstützt HTTP-, HTTPS-, TCP- und UDP-Proxys und kann Funktionen wie Request Load Balancing und SSL-Terminierung implementieren.
  2. Installieren und konfigurieren Sie Nginx Proxy Manager
    Zuerst müssen wir Nginx Proxy Manager installieren. Es kann über den folgenden Befehl installiert werden:
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.

  1. Diensterkennung konfigurieren
    In der Weboberfläche von Nginx Proxy Manager können Sie die Diensterkennung konfigurieren, indem Sie „Upstreams“ hinzufügen. Jeder Upstream stellt einen Dienst dar, der mehrere Instanzen (Knoten) enthält. In jedem Upstream können Sie die IP-Adresse und Portnummer der Instanz angeben.

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.

  1. Routing konfigurieren
    In der Weboberfläche von Nginx Proxy Manager können Sie Routing konfigurieren, indem Sie „Proxy-Hosts“ hinzufügen. Jeder Proxy-Host stellt eine Routing-Regel dar, die die Quelle und das Ziel von Anfragen definiert.

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.

  1. Beispielcode verwenden
    Um die Verwendung von Nginx Proxy Manager zu demonstrieren, finden Sie hier einen einfachen Node.js-Beispielcode, um einen HTTP-Server zu starten und ihn als Instanz des Dienstes beim Nginx Proxy Manager zu registrieren:
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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn