2017-08-10 4 views
0

私はPHPセッション(およびキャッシュの目的)を処理するためにRedisをインストールしました。私のウェブサイトのホームページを読み込むと、次のようなことが起こります。ローカルホスト上Redis for PHP Sessions - なぜWebサーバー上で非常に多くのセッションが、ローカルには1つだけですか?

一つは、セッションIDが生成されます。

$ redis-cli 
127.0.0.1:6379> keys * 
1) "PHPREDIS_SESSION:3g8sdqkj51btah10v88vapkr57" 

10+

Webサーバー上のセッションIDが生成されます。

$ redis-cli 
127.0.0.1:6379> keys * 
1) "PHPREDIS_SESSION:sgp4gop68st6iqmgnrti76tqn4" 
2) "PHPREDIS_SESSION:2sstonql09hreokd14gba5csr2" 
3) "PHPREDIS_SESSION:kv7cjhpgq8o2dkuglcg3rqj955" 
4) "PHPREDIS_SESSION:2m07rtut3qt0k0ujuvftp0g3g3" 

(...と、約10以上のセッションキー)

他の事は、ホームページのすべてのリフレッシュのために、Webホスト上のRedisのサーバーは約2-10新しいPHPをインスタンス化するようだということですセッション中、localhost上では常に1つのセッションに留まります。

おそらくこれには正当な理由があります。誰かが私にこのことを説明できることを願っています。

実際に自分のセッションを取得する多くの外部リソースをロードしているWebサーバー上のWebページとは何か関係がありますか?それとも、私が何かを間違って設定している可能性がありますか?どちらのページもPHPコードでは同じです。

私は、この質問にもっと役立つ情報を提供できるかどうかは分かりませんが、何か質問してください。

+1

セッションファイル数は、ロボット、スパイダー、広告接続、3rdパーティのものなど、あなたのウェブページに接続されているさまざまな物やデバイスの数の指標です。 – Martin

+0

ホームページを20回リロードすれば、私のRedis dbには200以上のセッションIDがあります。私はただのユーザーです。 1万人のユーザーが1日にホームページを訪問すると、10個のセッションがインスタンス化されます。つまり、ホームページのみで100,000セッションになります。彼らが5ページずつ訪問すると、1日に500000セッションを意味するかもしれません。これは現実的な見積り/シナリオですか? 1時間に10,000人の訪問者を持つウェブサイトはどのようにこれを処理しますか?これは私に多くのデータのように聞こえる原因です。 – minitauros

+0

これは役に立ちますか:https://stackoverflow.com/questions/15911817/session-start-creates-new-session-every-refresh – Martin

答えて

0

これは赤みの問題ではありません。最も可能性の高い理由は、ローカルとウェブサーバのphpのセッション管理設定の違いです。主にセッション設定のini設定を確認してください。 ウェブサーバーはすべての要求に対して新しいセッションを作成していますが、localhostは既存のセッションを尊重しています。

+0

あなたは正しいと思いましたが、何が原因かと思っていましたが、セッションCookieを変更したときdomain(php.iniの 'session.cookie_domain')にすべてのサブドメインが含まれていると、問題は解決されました。 – minitauros

関連する問題