2011-12-07 6 views
4

memcacheが有効になっているとき(nginx Webサーバー上)、Magento 1.10からセッションがランダムに消えてしまう問題があります。memcacheをオンにするとMagentoセッションが消える

マゼンタではクッキーの有効期限をどのように設定するかは関係ありません。なぜなら、何らかの理由で、セッションが1時間以内にランダムな時間がなくなるからです。

memcacheをオフにすると正常に動作します。

最終的には、1つのセッションベースのキャッシュソリューションに複数のサーバーを接続する必要があるため、memcacheが唯一の選択肢のようです。また、私たちはmemcache内のセッションをキャッシュしています。私がmemcacheの統計をチェックすると、しきい値の限界近くにいません。ここで

local.xmlでmemcacheの設定は以下のとおりです。

<cache> 
    <type>memcached</type> 
      <path/> 
      <servers> 
       <localhost> 
        <host><![CDATA[127.0.0.1]]></host> 
        <port><![CDATA[11211]]></port> 
        <persistent><![CDATA[1]]></persistent> 
       </localhost> 
      </servers> 
</cache> 
<session_save><![CDATA[memcache]]></session_save> <!-- db/memcache/empty=files --> 
<session_save_path><![CDATA[tcp://localhost:11211?persistent=0&weight;=2&timeout;=10&retry;_interval=10]]></session_save_path> 
<session_cache_limiter><![CDATA[private]]></session_cache_limiter> 

この全体のことの難しい部分は、セッションが時間以内にいつかクリアとして再現することは非常に困難であること、です。場合によっては1分以内、時には45分以内です...

複数の仮想サーバーシステムのさまざまなブラウザですべてのブラウザで試してみましたが(矛盾を解消するために)、それらはすべて同じタイムシェアについてはっきりしているようです。

ロジックは、memcacheをフラッシュしているプロセスがあると言いますが、それをテストする方法がわからず、もしあれば、それをクリアしたことをどのように伝えるのかわかりません。私はMagentoのコードを調べましたが、これをクリアしたり、セッションをmemcacheから削除したようなものは見つかりませんでした。

私が見つけたのは、セッションがなくなってブラウザに「フロントエンド」のクッキーが残っていて、memcacheスラブをチェックインするとクッキーがなくなったということです。

キー/値のすべてがmemcacheから削除されているわけではありません。鉱山と何かの理由で2つまたは3つのものが完全に欠けていた。

ここで私が求めているのは、誰もこの問題に遭遇しているだけでなく、誰に何を試してもらうための追加のアイデアはありますか?

私は(有名な)memcache.phpファイルを使用して、サーバー上のmemcacheシステムを監視しています。私が試すことができる他のアイデア/アプリですか?

+0

このアップデートでは、MemcacheでApacheと同じ問題が発生しています。 本当に助けていただければ幸いです。 – WonderLand

答えて

1

キャッシュをオフにして、セッションがまだ消えるかどうかを確認します。その場合、コンテンツキャッシュによってセッションがフラッシュされ、別のポートで別のインスタンスのmemcacheを使用します。

session_saveからdbに切り替えると、一度にすべての混乱を避けることができます。

+0

サイトのトラフィックがDBをクラッシュさせるため、セッション保存にDBを使用することはできません。あなたがキャッシングをオフにすると言っているのは、Magento Adminのキャッシュ管理セクションで管理されているキャッシングだけですか?その場合、この問題はそのキャッシュのオンまたはオフで発生します。 memcacheを別のポートに配置するとどうなりますか?私たちはデータだけではなく、セッションにmemcacheを使用していません。 – Jay

+0

私は、データ用に1つのmemcacheを使用し、セッション用に1つのmemcacheを使用すると言っていました。問題は持続しているように見えるので、これは今や駄目です。 – clockworkgeek

+0

これで問題は解決しましたか? memcacheでデータ/セッションを分割する方法は? – WonderLand

0

as clockworkgeek asは、キャッシュストレージをフラッシュするときにMagentoがセッションをフラッシュします。スタンドアロンの(クラスタ化されていない)サーバを使用している場合は、セッションストレージとしてtempfsを、キャッシュストレージとしてmemcacheを使用することをお勧めします。別のサーバを追加するときは、両方でmemcacheを実行する必要があります。このとき、セッションストレージ用とキャッシュストレージ用の2​​つを使用できます。

+0

クラスタ上でキャッシュをクリアしていません。複数のサーバーを使用しており(cluser内)、このサイトに対して非常に高いレベルのトラフィックが予想されます。この問題は、cluserを使用しているかどうかに関係なく発生します。私がclockworkgeekに言ったように、私たちはセッションのためだけにmemcacheを使用しています。 – Jay

2

これは問題でも問題ではないかもしれませんが、それは私のものでした。他の人が役に立つと思うので、ここに置く。

Memcachedは30日(2592000秒)を超えて有効期限が切れません。)明らかに、それは日付よりも大きい数字をエポックから解釈し、すぐにアイテムを失効させます。

Magentoのlocal.xmlのsession *要素は、PHP環境変数を設定します。 local.xmlに設定されていない任意の関連するPHPの環境変数は、php.iniの設定から取得

ので(またはその他の.ini。):php.iniの

、session.gc_maxlifetimeが上記設定されている場合2592000の場合、memcachedが動作しません。

そこで、以下にphp.iniの行を変更:

session.gc_maxlifetime = 2592000 
0

ない、これはあなたの問題を解決するかどうかわから:

<session_save_path> 
    <![CDATA[tcp://localhost:11211?persistent=0&weight;=2&timeout;=10&retry;_interval=10]]> 
</session_save_path> 

あなたがいることを保証するために、セミコロンを削除する必要があります指定された設定が使用されます。

私はmemcached設定がMagentoのコミュニティフォーラムからcut'n'pastedされているときにこれを見る傾向があります。

もう1つのことは、あなたのmemcached daemonに割り当てられたメモリ容量ですか?

あなたのサイトのトラフィックのためにメモリが使い切っていますか?デフォルトのmemcachedのインストールでは、メモリサイズが64MBに設定されます。スペースが使用されている場合、メモリを単に上書きします。そしてあなたは捨てられているセッションをコントロールすることはできません。

0

SSLキーが正しく設定されていないために問題が発生しました

関連する問題