ホームページ  >  記事  >  ssl と websocket を使用した Spring サーバー アーキテクチャ

ssl と websocket を使用した Spring サーバー アーキテクチャ

WBOY
WBOY転載
2024-02-09 21:30:101006ブラウズ

php エディタ Xinyi では、SSL と WebSocket を使用した Spring サーバー アーキテクチャを紹介します。今日のインターネット環境では、セキュリティとリアルタイム性がサーバー アプリケーションにとって重要な考慮事項です。 SSL (Secure Sockets Layer) を使用するとデータ送信のセキュリティが保証され、WebSocket テクノロジはリアルタイムの双方向通信機能を提供します。 Spring フレームワークは、スケーラブルなサーバー アーキテクチャを構築するための完全なソリューション セットを提供する強力で柔軟な Java 開発フレームワークです。 SSL と WebSocket を組み合わせることで、Spring サーバー アーキテクチャは、最新のアプリケーションのニーズを満たす安全で信頼性の高いリアルタイム通信サービスを提供できます。

質問内容

自分で作成したアプリケーションのサーバーバックエンドを書きました。アプリケーションは https プロトコルを介してバックエンドに接続し、wss プロトコルを使用して WebSocket も開きます。アプリは http 経由でリクエストを行い、WebSocket 経由でプッシュ通知を受信します。追加したいことの 1 つは、水平スケーリングを可能にするためにサーバーが haproxy の背後にあることです。 Web サーバーから提供される証明書を購入しました。自己署名証明書は使用していません。

Websocket が切断され続けます。いくつかの実験の結果、Spring Boot サーバーで ssl を無効にするとこの問題を解決できるようです。私の理解では、アプリケーションがバックエンドに接続するために ssl と https を使用することを強くお勧めしますが、このアプローチは WebSocket では機能しないようです。この問題を解決する最善の方法は何でしょうか?理想的には、切断の問題に対する何らかの解決策がない限り、アプリケーションが https を使用してリクエストを作成し、SSL を使用せずに WebSocket 接続を確立するようにしたいと考えています。春は大丈夫ですか?

WebSocket の切断問題を解決できない場合、次のアイデアは、WebSocket の処理を​​特に担当する別の Spring Boot サーバーを作成することですが、https リクエストと WebSocket の処理に単一のサーバーを使用できる場合は、その方が良いでしょう。 。この問題を解決するのに最適なアーキテクチャは何でしょうか?

解決策

ついに解決策を見つけました。ポート 8080 で別の Tomcat コネクタを実行し、WebSocket に接続するときに https(wss) の代わりに http(ws) を使用し、サーバー要求を行うときに https (ws) を使用します。

以上がssl と websocket を使用した Spring サーバー アーキテクチャの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。