分散システムの構築: Nginx Proxy Manager を使用したサービス検出とルーティングの実装
概要:
最新の分散システムでは、サービス検出とルーティングが非常に重要です。特徴。サービス ディスカバリにより、システムは利用可能なサービス インスタンスを自動的に検出して登録できるようになり、ルーティングによりリクエストが適切なサービス インスタンスに正しく転送されることが保証されます。この記事では、Nginx Proxy Manager を活用してシンプルかつ強力なサービス検出およびルーティング ソリューションを構築する方法を紹介し、具体的なコード例を示します。
npm install -g nginx-proxy-manager
インストールが完了したら、次のコマンドを使用して Nginx Proxy Manager を起動できます:
npm start
起動後は、次のコマンドにアクセスできます。 http:/ ブラウザー /localhost:81 を介して、Nginx Proxy Manager の Web インターフェイスを開きます。初めてアクセスするときは、管理者のユーザー名とパスワードを設定する必要があります。
以下はアップストリーム構成の例です:
Name: my_service Servers: - Name: server1 Address: 192.168.0.1:8000 - Name: server2 Address: 192.168.0.2:8000
この構成では、2 つのインスタンス (192.168.0.1 :8000 と 192.168.0.2) を含む my_service という名前のアップストリームを作成しました。 :8000。
以下はプロキシ ホスト構成のサンプルです:
Domain Name: mydomain.com Path: /myroute Upstream: my_service
この構成では、mydomain.com/myroute からのすべてのリクエストを my_service アップストリーム ルールに転送するルートを作成します。
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 });
このサンプル コードでは、ポート 8000 でリッスンする HTTP サーバーを起動します。サービスを Nginx Proxy Manager に登録するには、サーバーを起動するコールバック関数に対応する登録コードを追加する必要があります。
Nginx Proxy Manager が提供する API を使用して、サービス インスタンスを登録および登録解除できます。以下は、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');
このサンプル コードでは、axios ライブラリを使用して HTTP リクエストを送信します。 registerInstance
関数を呼び出してサービス インスタンスを登録し、インスタンス名とアドレスを Nginx Proxy Manager の API に渡します。 API によって要求されたアドレスが Nginx Proxy Manager の実際のアドレスと一致していることを確認する必要があります。
このサンプル コードを複数のサーバーで実行すると、サーバーをサービスのインスタンスとして登録し、Nginx Proxy Manager を使用してサービスの検出とルーティングを実装できます。
要約:
Nginx Proxy Manager を使用して分散システムのサービス検出およびルーティング機能を構築することで、システムの構成と管理が簡素化され、システムの信頼性と拡張性が向上します。 。この記事では、Nginx Proxy Manager のインストールと構成方法を紹介し、サービス インスタンスの登録方法とルーティング ルールの構成方法を示す具体的なコード例を示します。読者は、これらのコード例をさらに調整および拡張して、独自の分散システムのニーズを満たすことができます。
以上が分散システムの構築: Nginx Proxy Manager を使用してサービス検出とルーティングを実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。