ホームページ >ウェブフロントエンド >フロントエンドQ&A >Nodejs が https をプロキシする方法

Nodejs が https をプロキシする方法

PHPz
PHPzオリジナル
2023-05-28 09:00:371530ブラウズ

インターネットの急速な発展に伴い、HTTPS プロトコルの使用がますます普及しており、HTTPS プロトコルを使用する必要がある一部のプロジェクトでは、Node.js のプロキシ機能がますます重要になっています。この記事ではNode.jsのプロキシHTTPSプロトコルの方法を紹介します。

まず、HTTPS プロトコルと SSL/TLS が何であるかを理解する必要があります。 HTTPS は、TLS/SSL プロトコルに基づく安全な伝送プロトコルであり、SSL/TLS プロトコルを使用して伝送プロセス中のセキュリティを確保します。その中でも、TLS (Transport Layer Security) は、SSL (Secure Socket Layer) のアップグレード版であり、データ送信のセキュリティを効果的に保護できます。

Node.js では、http-proxy ライブラリを使用して HTTPS プロトコルをプロキシできます。 http-proxy は、Node.js で一般的に使用される HTTP プロキシ ライブラリであり、クライアントのリクエストをターゲット サーバーに転送し、ターゲット サーバーの応答をクライアントに返すことができます。

http プロキシ ライブラリをインストールします:

npm install http-proxy

プロキシ HTTP リクエスト:

const http = require('http');
const httpProxy = require('http-proxy');

const proxy = httpProxy.createProxyServer({});
const server = http.createServer(function (req, res) {
  proxy.web(req, res, {
    target: 'http://localhost:8080'
  });
});

server.listen(8000);

ご覧のとおり、入力された URL をターゲットサーバー(ここではlocalhost:8080)。

HTTPS リクエストのプロキシ:

HTTP リクエストのプロキシに加えて、HTTPS リクエストをターゲット サーバーにプロキシする必要もあります。プロキシ サーバーの作成時に追加の構成を追加する必要があります。

const http = require('http');
const https = require('https');
const httpProxy = require('http-proxy');
const fs = require('fs');

const options = {
  key: fs.readFileSync('server-key.pem'),
  cert: fs.readFileSync('server-cert.pem')
};

const proxy = httpProxy.createProxyServer({});

const server = https.createServer(options, function (req, res) {
  proxy.web(req, res, {
    target: 'https://localhost:8080',
    secure: false
  });
});

server.listen(8000);

ここでのターゲット サーバーは https://localhost:8080 で、secure を false に設定する必要があります。これは、SSL 証明書の検証が実行されないことを意味します。同時に、https.createServer を使用してプロキシ サーバーを作成し、証明書とキーのパラメータを追加し、HTTPS リクエストをプロキシするときに HTTPS プロトコルを使用することも必要です。

概要:

この記事では、Node.js で HTTPS プロトコルをプロキシする方法を紹介します。これには、プロキシ用に http-proxy ライブラリを使用する必要があります。同時に、HTTPS リクエストをプロキシする場合は、secure を false に設定し、https.createServer を使用してプロキシ サーバーを作成し、cert および key パラメータを追加する必要があることに注意してください。

実際のアプリケーションでは、Node.js プロキシは、負荷分散、インターフェイス転送、データ キャプチャ、その他の機能の実装に役立ちます。 Node.js プロキシをまだ実践したことがない場合は、独自のプロジェクトで使用してみることができます。

以上がNodejs が https をプロキシする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。