API のパフォーマンスを向上させたいと考えるのには、いくつかの説得力のある理由があります。
API パフォーマンスの向上を実現するために、集中管理システムとしてプロキシを設定します。プロキシは、クライアントとサーバーの間の仲介者として機能します。 API リクエストを行うクライアントと API をホストするサーバーの間に位置します。クライアントが API リクエストを行うと、最初にプロキシを経由し、次にプロキシがリクエストをサーバーに転送します。サーバーは要求を処理し、応答をプロキシに送り返し、プロキシはそれをクライアントに転送します。これにより、プロキシは必要に応じてリクエストまたはレスポンスをインターセプト、変更、またはキャッシュできるようになり、API パフォーマンスを最適化する機会が得られます。
macOS (またはLinux ) の場合は、システムにHomebrewをインストールします。
macOS に Nginx をインストールするには、次の手順があります。
1️⃣ Homebrew をダウンロード
macOS に Nginx をインストールするには、 Homebrew がシステムにインストールされている必要があります。 Homebrewは、さまざまな Unix アプリケーションを簡単にインストールできる Mac オペレーティング システム用のパッケージ マネージャーです。 Homebrewをお持ちでない場合は、次のリンクを使用してインストールしてください: https://brew.sh/
または、ターミナルで次のコマンドを入力するだけです。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
2️⃣ Nginxをインストールする
homebrew パッケージ インストーラーは、macOS にNginx Web サーバーをインストールするのに役立ちます。 Nginxをインストールするには、次のコマンドを使用します。
brew install nginx
3️⃣設定ファイルを編集する
デフォルトでは、Nginx 構成ファイルの場所は次のとおりです。
/opt/homebrew/etc/nginx/nginx.conf
Nginx 構成ファイルを編集するには、任意のテキスト エディターを使用できます。たとえば、 nano 、 vim 、またはemacsを使用できます。 nano を使用して Nginx 構成ファイルを編集するコマンドの例を次に示します。
nano /opt/homebrew/etc/nginx/nginx.conf
ポート 80 でリッスンするサーバー ブロックを編集します。
サーバーブロックの検索
続いて、以下の 3 つの Ethereum メインネット RPC エンドポイントを含めます。
location /nodereal { proxy_pass https://eth-mainnet.nodereal.io/v1/<API KEY>; proxy_set_header Content-Type "application/json"; } location /RPCProviderA { proxy_pass <https URI endpoint>; proxy_set_header Content-Type "application/json"; } location /RPCProviderB { proxy_pass <https URI endpoint>; proxy_set_header Content-Type "application/json"; }
必要に応じて複数の RPC エンドポイントを含めて、その後構成ファイルを保存することができます。
構文エラーがないことを確認するために、Nginx 構成ファイルのテストを続行してください。
nginx -t
🎊 エラーが存在しない場合は、次の結果が表示されます。
nginx: 設定ファイル /opt/homebrew/etc/nginx/nginx.conf の構文は問題ありません
nginx: 設定ファイル /opt/homebrew/etc/nginx/nginx.conf テストは成功しました
Nginx サーバーを再起動するには、次のコマンドを実行してください。
brew services restart nginx
4️⃣ Nginx プロキシ経由で API メソッドを送信する
Nginx プロキシをテストするために、 eth_gasPriceを介してイーサリアムのガス価格をチェックしています。以下に示す JSON ペイロードを使用して、curl コマンドを送信して、ローカル マシン (「 http://localhost 」) で実行されているサーバーの「/nodereal」の場所に HTTP POST リクエストを送信します。
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":1}' -H "Content-Type: application/json" http://localhost/nodereal
✅ {"jsonrpc":"2.0","id":1,"結果":"0xdec36a8d1"}
curl コマンドの実行後に受信した応答は、 Ethereumノードからの JSON-RPC 応答です。応答の簡単な説明は次のとおりです。
「0xdec36a8d1」の 10 進数値は 59797579985 です。したがって、リクエストが行われた時点のイーサリアム ネットワーク上の現在のガス価格は 59797579985 ウェイ (イーサの最小単位)、つまり 58 グウェイです。
残りのサーバー /RPCProviderA および /RPCProviderB をローカル マシン (「 http://localhost 」) で実行してテストします。
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":1}' -H "Content-Type: application/json" http://localhost/RPCProviderA
🥳 自分のプロキシのテストを開始できます。
✅ Nginx を API ゲートウェイのプロキシとして使用する利点:
❌ Nginx を API ゲートウェイのプロキシとして使用するデメリット:
結論として、API のパフォーマンスを向上させることは、企業と開発者にとって非常に重要です。 Nginx を API ゲートウェイのプロキシとして使用すると、負荷分散、キャッシュ、スケーラビリティ、セキュリティなどの利点が得られます。ただし、API 管理機能の制限、構成の複雑さ、高度な認証および認可機能の欠如などの制限があります。これらの長所と短所を慎重に検討することが不可欠です。全体として、Nginx をプロキシとして活用することは、API のパフォーマンスを向上させる強力なツールとなり得ます。直面する一般的な問題とそのデバッグ方法について詳しく共有するため、次のチュートリアル シリーズにご期待ください。
ここでも公開されています。