79. 負荷分散環境でのセッション処理に対し Redis を設定するには ?
※注 この記事は Piwik1.8~2.17のアーカイブ情報です
デフォルトで Piwik はセッションハンドラーとしてファイルシステムを使用します。あなたの Piwik 環境が複数のサーバで構成されている場合、複数回ログイン・ログアウトしているユーザーが、実際には 1 つのサーバー上で 1 人のユーザーがログイン・ログアウトしているかもしれないという問題があります。これを回避するには、以下の 2 つの選択肢があります。
・セッションハンドルのためにデータベースを使用する
・セッションハンドルのために Redis を使用する(こちらの FAQ で説明されています)。Redisはたいていデータベースより速く、私たちは Redis がすでにキャッシュとしてまたはキューに入れられたトラッキングのために設定されている場合にこれをおすすめします。
・Redis をセッションハンドラーとして使用するには、以下のステップに従ってください。
・Redis をインストールしてください。Redis クイックスタートを確認。
・PHP 拡張機能 phpredis をインストールしてください。
・Redis をあなたの各サーバーの php.ini
で PHP セッションハンドラーとして設定してください。
php.ini
に以下を追加してください。
session.save_handler = redis session.save_path = tcp://127.0.0.1:6379?database=10 ; In case you are using queued tracking or Redis as a cache: Make sure to configure a different database! Otherwise queued requests will be flushed ; multiple servers can be configured comma separated session.save_path = "tcp://host1:6379?weight=1&database=2, tcp://host2:6379?weight=2&timeout=2.5, tcp://host3:6379?weight=2"
Redis セッションハンドラについての詳細をドキュメントで確認する。
・ウェブサーバーを必ず再起動してください。
・セットアップ成功後、config/config.ini.php
ファイルの空の変数にsession_save_handler
により設定された Piwik デフォルトセッションハンドラー が存在しないことを確認してください。
あなたの config/config.ini.php
は、あなたのそれぞれのサーバーでこの変更を行必う要があります。
config/config.ini.php
で以下を設定します。
[General] session_save_handler = ""