リバース プロキシとして Nginx を使用してセッションを永続化できますか?

リバース プロキシとして Nginx を使用してセッションを永続化できますか?

私は、アップストリーム サーバーとして 2 つの Apache サーバーを使用し、リバース プロキシとして NGINX を使用しています。

両方の Apache サーバーにはカスタム PHP アプリケーションがインストールされており、同じ MYSQL データベースを共有しています。

Apache はセッションを /var/lib/sessions に保存すると思います。

NGINX を使用している場合、セッション関連の問題をどうやって解決すればよいでしょうか? ip_hash については理解していますが、それが唯一の実行可能な方法でしょうか?

人々がサーバー側でこの問題をどのように解決するのか知りたいです。

答え1

厳密に言えば、これは nginx とは何の関係もありません。これは、複数のバックエンドにわたって一貫した認証/承認システムをユーザーに提供するタスクです。nginx の代わりに、任意の負荷分散エンジンを使用できます。

標準的なアプローチ:

  • セッションを保存するために memcached を使用します (memcache の作者はこれを推奨していませんが、この方法は広く使用されており、PHP でも標準でサポートされています - php.ini の 1 行のコメントを解除する必要があります)
  • 同じ目的でRedisを使用する
  • MySQLの最新バージョンではMySQL にセッションを保存するための memcached と同一のインターフェース(今回はディスクバックアップになります) - 好きなものを使用してください。唯一の注意点は、集中型ストレージであることです。

関連情報