Tudor と同じことをお勧めします: node で書かれたプロキシです。
ただし、 node-http-proxyなど、より広く使用され、テスト済みのライブラリを使用することをお勧めします。セットアップは非常に簡単で、20 行未満のコードで必要なものを実現できます。
var httpProxy = require('http-proxy')
httpProxy.createServer({
target: {
host: 'stuff.com',
port: 80
},
ssl: {
key: fs.readFileSync('./ssl-key.pem', 'utf8'),
cert: fs.readFileSync('./ssl-cert.pem', 'utf8')
}
}).listen(443);
その後、クライアントがhttps://reverseproxy.com/image.pngにアクセスすると、プロセスは次のようになります。
このスキーマでは、画像を提供する Web サーバーとは別のサーバーでリバース プロキシが実行されると想定していますが、必ずしもそうである必要はありません。両方が同じサーバーで実行されている場合は、セクションで使用host: 'localhost'
してtarget
ください。
--
Node に慣れていない場合に備えて、このセットアップをすばやく実行するために必要なことを次に示します。
- ノードのインストール
- yourprojectpath/index.jsにコードを含む新しいファイルを作成します
npm init
プロジェクトのディレクトリで実行して、package.json ファイルを生成します。
- 実行
npm install --save http-proxy
してライブラリをインストールhttp-proxy
し、コードで使用できるようにします
を実行してリバース プロキシを実行できるようになりました。
node index.js
これを本番環境で使用する予定がある場合は、 PM2を確認することを強くお勧めします。基本的に、アプリケーションが常に実行されていることを保証するノードのプロセス マネージャーです。特に、何らかの種類の例外がアプリケーションからスローされ、アプリケーションが終了する原因となった場合に、アプリケーションを再起動します。
インストール:
npm install -g pm2
使用法:
pm2 start index.js
さらにいくつかのメモ:
.pem
ファイルに適切な権限と所有者が割り当てられていることを確認してください。chmod 400
通常は適切なオプションです (所有者のみが読み取り可能)。ただし、Node アプリケーションを実行しているユーザーはそれらを読み取ることができるはずです。
- サーバーが (ソフトウェアまたはハードウェア) ファイアウォールの背後で実行されている場合は、着信トラフィックに対してポート 443 を開く必要がある場合があります。
- SSL 証明書プロバイダーによっては、提供されるファイルを PEM 形式に変換する必要がある場合があります。
- 必要に応じて、 node-http-proxy は、リクエストがプロキシされるときにヘッダーを追加するなどの追加オプションをサポートします
- 上記のスクリプトは、 があり、それと同じディレクトリにあることを前提
ssl-key.pem
としていますssl-cert.pem
それが役立つことを願っています! そして、何か不明な点があるかどうか尋ねてください