NodeJSリバースプロキシWebソケット

転載する必要がある場合は、出典を
明記してください:http ://blog.csdn.net/itas109 QQテクニカルエクスチェンジグループ:129518033

記事ディレクトリ
NodeJSリバースプロキシwebsocket
@ [toc]
序文
コード
関連の問題:
1.httpとwebsocketの異なるポートがポートを公開する
2.nodejsリバースプロキシ

関連記事:
WebSocketを使用したNodeJSとExpressの組み合わせ

はじめに
Nginxはリバースプロキシを実行できますが、開発者コードとの適合性が低くなります。特に、フロントエンドがポートにアクセスする場合、Nginxがリバースプロキシを設定し、プログラムと一致しない(フロントエンドなど)問題が発生する可能性があります。コードはアクセスにURLポートを使用しません)。また、複数のポートを使用すると、Nginxのメンテナンスコストが発生します。NodeJSとwebsocketを使用したエクスプレスの記事では、httpポートとwsポートを組み合わせることができますが、場合によっては、それぞれhttpおよびwsの2つのポートを使用する必要があります。この記事では、nodejsコードレベルでプロキシをリバースする方法を紹介します

代码
const express = require( 'express');
constプロキシ= require( 'http-proxy-middleware');
const app = express();

// var express = require( 'express');
// var http = require( 'http');
let https = require( "https");
var expressWs = require( 'express-ws');
var fs = require( 'fs');

var option = {
key:fs.readFileSync( './ keys / private.key')、
ca:fs.readFileSync( './ keys / csr.pem')、
cert:fs.readFileSync( './ keys / file .crt ')
}

app.get( '/'、function(res、req){
req.send( '123')
})

var wsProxy = proxy({
target: 'https:// localhost:8080'、// target host
changeOrigin:true、// require virtual host site
ws:true、// if to proxy websocket
}); //プロキシ機能をオンにする、そして設定をロードします

//リバースプロキシ(ここでパスを逆に構成できます)
//例:proxy / api / test to $ {HOST} / api / test
app.use( '/ test'、wsProxy) ;

serverProxy = https.createServer(option、app);
//リスニングポート

serverProxy.listen(8888、()=> {
console.log( `server running`);
});

serverProxy.on( 'upgrade'、wsProxy.upgrade); //-http 'upgrade'にサブスクライブする

var app2 = express();

var httpServer;
// httpServer = http.createServer(app2);
httpServer = https.createServer(option、app2);

expressWs(app2、httpServer);

app2.ws( '/ test'、function(ws、req){
console.log( "ok")
ws.send( 'You connected successfully')
ws.on( 'message'、function(msg){
//ビジネスコード
console.log(msg);
ws.send(msg)
})
})

app2.get( '/'、function(res、req){
req.send( '123')
})

// app.listen(8080);
// httpServer.listen(8080);
httpServer.listen(8080);
————————————————
Copyright Notice:この記事はCSDNブロガーです「itas109」の元の記事は、CC 4.0 BY-SAの著作権契約に従います。転載するには、元のソースリンクとこのステートメントを添付してください。
元のリンク:https://blog.csdn.net/itas109/java/article/details/104034178

おすすめ

転載: www.cnblogs.com/xiami2046/p/12677075.html