この記事の内容は、Nginx と PHP の 8 つの nginx セッションのインストールと構成を共有することです。必要な友人が参照できるようにします。
いくつかの情報を確認し、他の人の書き込みも読みました。ドキュメントは次のように要約されています。nginxセッション
PHPの共有を実現するために、複数のサーバーがあり、負荷分散のためにnginxを使用し、同じIPが使用されるようにします。 は同じものにアクセスできます ページは異なるサーバーに分散されます セッションが同期されていない場合、最も一般的なログインステータスなどの多くの問題が発生します セッションの共有を解決するいくつかの方法があります。問題:
1、セッションを使用しないで、代わりにcookie
sessionsを使用してサーバー側に保存されます。ユーザーを配置できます。ページにアクセスすることによって生成されたセッションは、転送ステーションとしてcookieを使用するcookieに配置されます。 ウェブサーバーAにアクセスし、セッションを生成し、リクエストがBサーバーに割り当てられるときに、それをcookie内に置きます。 Bまず、サーバーにこの セッションがあるかどうかを確認します。ない場合は、クライアントのcookieをチェックして、このセッションがあるかどうかを確認します。本当に存在しない場合は、cookieのsessoinをサーバーBに同期させます。セッションを達成できます。 説明: このメソッドは実装が簡単で便利で、データベースの負担は増加しませんが、クライアントがcookieを無効にすると、セッションが発生します。同期する方法がないため、Web サイトに損失が生じます。cookie
は暗号化されていますが、依然として偽造される可能性があります。 2、sessionはデータベース(MySQLなど)に保存されます
phpは、sessionをデータベースに保存するように設定できます。この方法は、mysqlを他のデータベーステーブルと一緒に配置することです。クラスターが確立されると、各 mysql ノードにこのテーブルが必要になり、この session テーブルのデータ テーブルがリアルタイムで同期される必要があります。 注: データベースを使用して
sessionを同期すると、ビッグデータライブラリIOが追加され、データベースの負担が増加します。さらに、データベースの読み取りおよび書き込み速度が遅いため、セッションのタイムリーな同期が困難になります。 3
、sessionは、memcacheにmemcacheまたはRedisが存在します
配布可能、php設定ファイルでストレージを設定メソッドはmemcacheなので、phpが自らsessionクラスターを作成し、sessionのデータをmemcacheに保存します。 説明: この方法で
sessionを同期すると、データベースへの負担は増加せず、cookiesをメモリに置くよりもセキュリティが大幅に向上します。ファイルから読み取るよりも高速です。ただし、memcache は、メモリをさまざまな仕様のストレージ ブロックに分割します。このメソッドでは、memcache がメモリを完全に利用できず、メモリの断片化が発生すると判断されます。 , メモリオーバーフローも発生します。 4 および nginx
テクノロジーは、特定のip からのリクエストを同じバックエンドに送信できるため、この ip の下で、特定のクライアントと特定のバックエンドが安定したsession、ip_hashは、upstream設定で定義されています: [html] view plain
コピーりー
ip_hashは理解するのが簡単ですが、バックエンドの割り当てに使用できるのは係数ipのみであるため、ip_hashはいくつかの状況では使用できません:
1.は最もフロントエンドのサーバーではありません。
を使用するには、nginxがフロントエンドサーバーである必要があります。そうでない場合、nginxは正しいipを取得できず、に基づいて動作できなくなります。 ip ハッシュ .たとえば、squidをフロントエンドとして使用する場合、nginxがipを取得するとき、squidのサーバーipアドレスのみを取得できます。このアドレスは間違いなく紛らわしいです。 2. nginxのバックエンドには、負荷分散の他の方法もあります。
nginx がバックエンドに他の負荷分散を持ち、別の方法でリクエストを迂回する場合、特定のクライアントからのリクエストは同じ セッション アプリケーションサーバー上には絶対に存在しません。このように計算すると、nginxバックエンドはアプリケーションサーバーを直接指すか、別のsquidを構築してからアプリケーションサーバーを指すことしかできません。最善の方法は、 location を使用して迂回を行い、session を必要とするリクエストの一部を ip_hash 経由で迂回させ、残りを他のバックエンドに迂回させることです。 関連する推奨事項:
Nginx と php のインストールと構成 7 番目の nginx 負荷分散のための 5 つの戦略
Nginx と php のインストールと構成 6 番目の Nginx リバース プロキシと負荷分散の導入ガイド
Nginxおよび php のインストールと構成 5. LINUX は PHPIZE を使用して PHP GD 拡張機能をインストールします
以上がNginx と PHP のインストールと構成 8 つの nginx セッション共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。