Node.js を使ったリバースプロキシの構築

JavaScriptJavaScriptBeginner
オンラインで実践に進む

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

このプロジェクトでは、Node.js を使ってリバースプロキシを作成する方法を学びます。リバースプロキシは、クライアントとバックエンドサーバの間に配置されるサーバで、クライアントからの要求をバックエンドサーバに転送し、その応答をクライアントに返します。

👀 プレビュー

Reverse proxy server preview

🎯 タスク

このプロジェクトでは、以下を学びます。

  • Node.js を使って HTTP サーバを作成する方法
  • Stream pipe を使って GitHub の応答データを直接クライアントに渡す方法
  • リバースプロキシサーバを起動してテストする方法

🏆 成果

このプロジェクトを完了すると、以下ができるようになります。

  • リバースプロキシの概念とその仕組みを理解する
  • Node.js を使って GitHub ウェブサイトに対する要求をプロキシするリバースプロキシを作成する
  • Stream pipe を使ってリバースプロキシ機能を実装する
  • リバースプロキシサーバを起動してテストする

リバースプロキシを実装する

始めるには、エディタを開きます。エディタから "proxy.js" というファイルが見えるはずです。

このステップでは、Stream pipe を使って GitHub の応答データを直接クライアントに渡す方法を学びます。以下の手順に従ってこのステップを完了しましょう。

  1. proxy.js ファイルで、http.createServer 関数内の // TODO コメントを探します。
  2. // TODO コメントを以下のコードに置き換えます。
https.get(uri, function (response) {
  response.pipe(res);
});

このコードは、Stream pipe を使って GitHub の応答データを直接クライアントに渡します。

  1. proxy.js ファイルを保存します。

リバースプロキシサーバを起動する

このステップでは、リバースプロキシサーバを起動してテストする方法を学びます。

  1. ターミナルを開き、プロジェクトディレクトリに移動します。
  2. 以下のコマンドを実行してリバースプロキシサーバを起動します。
node proxy.js

以下の出力が表示されるはずです。

Server running at http://localhost:8080/
  1. 別のターミナルを開き、以下のコマンドを実行してリバースプロキシをテストします。
curl --connect-timeout 2 -m 5 localhost:8080/pricing | grep GitHub

このコマンドは、リバースプロキシサーバに要求を送信し、それが GitHub ウェブサイトからコンテンツを取得してクライアントに返します。

  1. ターミナルに GitHub の価格情報が表示されるはずです。
Image Description

おめでとうございます!Node.js を使って正常にリバースプロキシを作成しました。これで、コードを変更してさまざまなシナリオをテストすることで、リバースプロキシを実験することができます。

✨ 解答を確認して練習

まとめ

おめでとうございます!このプロジェクトを完了しました。技術力を向上させるために、LabEx でさらに多くの実験を行って練習してください。