2017-03-27 16 views
0

私は、送信されるデータがビジネス関連のデータであるため、異なる国の他のサイトのサーバーとして機能するnodejsアプリケーションを作成しています。私はこのデータを安全に/安全に送る方法を知りたいです。NodeJS異なる国のsocket.ioセッションを保護する方法

私は現在、他のサイトのメインサーバ(マスター)として機能するのにsocket.ioを使用しています。マスターサーバーからのデータを処理する(スレーブ)サーバーがあります。

これはローカル環境で動作していますが、これを他のサイトに展開したいと考えています。

他の誰かがこれをやっているのを見るために私はこれをGoogleに試みましたが、socket.ioセッションに出くわしましたが、これが(サーバー - >サーバー)接続に適合するかどうかわかりません。

ご迷惑をおかけして申し訳ございません。

答えて

1

HTTPS経由でWebSocketを使用できる通信の両端を制御するサーバーとサーバーの通信では、SSHトンネルを介したTCPまたはその他の暗号化されたトンネルを使用できます。あなたはPubSubサービス、キューサービスなどを使用することができます。あなたがそれを行う方法はたくさんあります。通信は、使用するプロトコル、またはリモートロケーションのサーバーを接続するVPNまたはトンネルによってネイティブに暗号化されていることを確認してください。

通常、Socket.ioはブラウザにネイティブサポートがないWebSocketの代わりに使用されます。これは、サーバー間の通信にほとんど使用されません。詳細については、この答えを参照してください:あなたは、リアルタイムのデータを中心とした、より高いレベルのフレームワークをしたい場合は

その後、参照ActionHero:

サーバー間でリアルタイムデータを送信するその他のオプションについては、以下のような共有リソースを使用できます。 Redisデータベース、またはFayeやKafkaなどのpub/subサービス、ZeroMQやRabbitMQなどのキューサービス。これは、通常、サーバーや複数の場所の複数のインスタンスで動作するようにするために行われます。また、CouchDBの変更フィードやRethinkDBの同様の機能を使用して、すべてのインスタンスがすべてのデータをそれらのいずれかでポストされるとすぐに取得できるようにすることもできます。参照:HTTPを使用しています

すべてはHTTPSで暗号化することは容易です。他のすべては、トンネルまたはVPNで暗号化することができます。

暗号化されていないプロトコルの暗号化を追加できる優れたツール(例:Redisのプロトコル)である:

見る:

一部のホスティングサービスでは、そのプロバイダの異なるデータセンターにあるサーバー間でデータを暗号化して渡す、事前構成されたトンネルまたは内部ネットワークインターフェイスが提供される場合があります。一部のプロバイダは、ツールやチュートリアルを簡単に提供します。

+0

答えていただきありがとうございます。私たちにはsocket.ioの上に位置するアプリケーションがあり、受信しているデータをチェックしています。メインサーバはクライアントサーバ(スレーブ)(例えばDoNetworkScan)にデータを送信し、スレーブはそのタスクを行い、そのタスクが完了するとメッセージをマスタサーバに返信する。 クロスサイト接続はVPN経由であるため、socket.ioを使用してHTTPSを実装することはわかりますか? – user2716281

関連する問題