分散システムの構築: Nginx Proxy Manager を使用してサービス検出とルーティングを実装する
分散システムの構築: Nginx Proxy Manager を使用したサービス検出とルーティングの実装
概要:
最新の分散システムでは、サービス検出とルーティングが非常に重要です。特徴。サービス ディスカバリにより、システムは利用可能なサービス インスタンスを自動的に検出して登録できるようになり、ルーティングによりリクエストが適切なサービス インスタンスに正しく転送されることが保証されます。この記事では、Nginx Proxy Manager を活用してシンプルかつ強力なサービス検出およびルーティング ソリューションを構築する方法を紹介し、具体的なコード例を示します。
- Nginx プロキシ マネージャーについて理解する
Nginx プロキシ マネージャーは、リバース プロキシ サーバーを構成および管理するための使いやすい Web インターフェイスを提供する Nginx ベースのプロキシ サーバー マネージャーです。 HTTP、HTTPS、TCP、UDP プロキシをサポートし、リクエストのロード バランシングや SSL 終了などの機能を実装できます。 - Nginx Proxy Manager のインストールと構成
まず、Nginx Proxy Manager をインストールする必要があります。次のコマンドでインストールできます:
npm install -g nginx-proxy-manager
インストールが完了したら、次のコマンドを使用して Nginx Proxy Manager を起動できます:
npm start
起動後は、次のコマンドにアクセスできます。 http:/ ブラウザー /localhost:81 を介して、Nginx Proxy Manager の Web インターフェイスを開きます。初めてアクセスするときは、管理者のユーザー名とパスワードを設定する必要があります。
- サービス ディスカバリの構成
Nginx Proxy Manager の Web インターフェイスで、「アップストリーム」を追加してサービス ディスカバリを構成できます。各アップストリームは、複数のインスタンス (ノード) を含むサービスを表します。各アップストリームでは、インスタンスの IP アドレスとポート番号を指定できます。
以下はアップストリーム構成の例です:
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。
- ルーティングの構成
Nginx Proxy Manager の Web インターフェイスでは、「プロキシ ホスト」を追加してルーティングを構成できます。各プロキシ ホストは、リクエストの送信元と宛先を定義するルーティング ルールを表します。
以下はプロキシ ホスト構成のサンプルです:
Domain Name: mydomain.com Path: /myroute Upstream: my_service
この構成では、mydomain.com/myroute からのすべてのリクエストを my_service アップストリーム ルールに転送するルートを作成します。
- サンプル コードの使用
Nginx Proxy Manager の使用方法を示すために、HTTP サーバーを起動してサービスのインスタンスとして登録する簡単な Node.js サンプル コードを以下に示します。 Nginx プロキシ マネージャー:
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 サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









nginxが開始されるかどうかを確認する方法:1。コマンドラインを使用します:SystemCTLステータスnginx(Linux/unix)、netstat -ano | FindStr 80(Windows); 2。ポート80が開いているかどうかを確認します。 3.システムログのnginx起動メッセージを確認します。 4. Nagios、Zabbix、Icingaなどのサードパーティツールを使用します。

Nginx 403禁止エラーを修正する方法は?ファイルまたはディレクトリの許可を確認します。 2。HTACCESSファイルを確認します。 3. nginx構成ファイルを確認します。 4。nginxを再起動します。他の考えられる原因には、ファイアウォールルール、Selinux設定、またはアプリケーションの問題が含まれます。

Linuxでnginxを開始する手順:nginxがインストールされているかどうかを確認します。 systemctlを使用して、nginxを開始してnginxサービスを開始します。 SystemCTLを使用して、NGINXがシステムスタートアップでNGINXの自動起動を有効にすることができます。 SystemCTLステータスNGINXを使用して、スタートアップが成功していることを確認します。 Webブラウザのhttp:// localhostにアクセスして、デフォルトのウェルカムページを表示します。

サーバーには、要求されたリソースにアクセスする許可がなく、NGINX 403エラーが発生します。ソリューションには以下が含まれます。ファイル許可を確認します。 .htaccess構成を確認してください。 nginx構成を確認してください。 SELINUXアクセス許可を構成します。ファイアウォールルールを確認してください。ブラウザの問題、サーバーの障害、その他の可能なエラーなど、他の原因をトラブルシューティングします。

Windowsでnginxを構成する方法は? nginxをインストールし、仮想ホスト構成を作成します。メイン構成ファイルを変更し、仮想ホスト構成を含めます。 nginxを起動またはリロードします。構成をテストし、Webサイトを表示します。 SSLを選択的に有効にし、SSL証明書を構成します。ファイアウォールを選択的に設定して、ポート80および443のトラフィックを許可します。

Linuxでは、次のコマンドを使用して、nginxが起動されるかどうかを確認します。SystemCTLステータスNGINXコマンド出力に基づいて、「アクティブ:アクティブ(実行)」が表示された場合、NGINXが開始されます。 「アクティブ:非アクティブ(dead)」が表示されると、nginxが停止します。

Nginxクロスドメインの問題を解決するには2つの方法があります。クロスドメイン応答ヘッダーの変更:ディレクティブを追加して、クロスドメイン要求を許可し、許可されたメソッドとヘッダーを指定し、キャッシュ時間を設定します。 CORSモジュールを使用します。モジュールを有効にし、CORSルールを構成して、ドメインクロスリクエスト、メソッド、ヘッダー、キャッシュ時間を許可します。

質問への回答:304変更されていないエラーは、ブラウザがクライアントリクエストの最新リソースバージョンをキャッシュしたことを示しています。解決策:1。ブラウザのキャッシュをクリアします。 2.ブラウザキャッシュを無効にします。 3.クライアントキャッシュを許可するようにnginxを構成します。 4.ファイル許可を確認します。 5.ファイルハッシュを確認します。 6. CDNまたは逆プロキシキャッシュを無効にします。 7。nginxを再起動します。
