ホームページ  >  記事  >  バックエンド開発  >  複数の Web サーバー間でセッションを共有するためのソリューション_PHP チュートリアル

複数の Web サーバー間でセッションを共有するためのソリューション_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-20 11:04:31925ブラウズ

多くの開発には、ユーザーのセッション検証を保持するという問題が含まれています。この問題は、参考のためにいくつかまとめられています。
[質問が提起されました]
十分な規模のアプリケーションに対応し、より多くの顧客を満足させるために、N 個の Web サーバー (N>=2) をセットアップします。複数の Web サーバーの場合、ユーザーの後に 1 つの質問が含まれます。あるサーバーにログインしている場合、別のサーバーに移動しても顧客のセッションを引き続き使用できますか?
(以下で説明する解決策は、Linux/Unix Apache Mysql PHP の開発アーキテクチャのみを対象としています。もちろん、他のプラットフォームにも拡張できます。)
[問題解決策]
これで問題は前に置かれました。技術的な観点から問題を解決し、お客様により良いエクスペリエンスを提供するために、いくつかのソリューションをまとめました。
1. クライアントCookieの書き込み方法
ユーザーがログインに成功すると、Webサイトのドメイン名、ユーザー名、パスワード、トークン、セッション有効期間がすべてCookieの形式でクライアントCookieに書き込まれます。 Web サーバーが別のサーバーに移動すると、プログラムはクライアントの Cookie 情報を積極的に検出し、判断して、対応するサービスを提供します。もちろん、Cookie の有効期限が切れたり無効になったりすると、ユーザーは当然利用できなくなります。サービスを継続することが許可されます。もちろん、この方法の欠点は明らかです。たとえば、クライアントが Cookie を無効にしたり、Cookie がハッカーによって盗まれたりした場合です。
2. サーバー間でセッションデータを同期する方法
WebサーバーAがすべてのユーザーがログインするサーバーであると仮定すると、ユーザーが認証されてログインすると、セッションデータがサーバーAに書き込まれます。独自のスクリプトを作成するか、それを保護します。このプロセスにより、セッション データが他の Web サーバーに自動的に同期され、ユーザーが他のサーバーにジャンプすると、セッション データは一貫したものになり、再度ログインすることなくサービスを直接実行できます。欠点は、一方向同期の場合、ログイン サーバーに問題があると、他のサーバーがサービスを提供できなくなる可能性があることです。もちろん、双方向同期も検討できます。
3. NFSを使用してセッションデータを共有する方法
実際、このソリューションは以下のMysqlソリューションに似ていますが、保存方法が異なります。大まかに言うと、共有サーバーとしてパブリック NFS サーバー (ネットワーク ファイル サーバー) があり、すべての Web サーバーがログインすると、実際にはすべてのセッション データがこの NFS サーバーに保存されます。ユーザーがアクセスする Web サーバーでは、セッション データを取得するためにこのサーバーにアクセスする必要があり、その後、セッション データを共有できます。欠点は、依存性が強すぎるため、NFS サーバーがダウンすると誰も作業できなくなることです。もちろん、複数の NFS サーバーの同期も考慮されます。
(NFS に関する古典的な記事: http://linux.vbird.org/linux_server/0330nfs.php)

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/445218.html技術記事多くの開発には、ユーザー セッションの検証が予約されているという問題が含まれています。この問題は、参考のためにいくつかまとめられています。 [質問する] 十分な数のアプリケーションに対応するために...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。