私は現在、Amazon EC2 で動作する Facebook アプリケーションに取り組んでいます。アプリは機能しており、ほとんどの開発は完了していますが、セッションを維持できません。PHP セッションの save_path トリックを使用して、PHP のデフォルト セッション処理、データベース処理、memcache 処理を試しました。auto_start などの ini 設定をいじってみましたが、役に立ちませんでした。
奇妙な問題は、最初のセッション書き込みは書き込みますが、最初の後の書き込みは保存されないことです。セッション cookie が保持されていることがわかりますが、実際のデータの書き込みは最初の書き込みの後に必ず失敗します。この奇妙な問題は、私たちが使用するすべてのセッション ハンドラーに当てはまります。
EC2 のセットアップは次のとおりです。
- 開発: 1 つの 64 ビット Linux サーバー、1 つの mongodb サーバー、1 つの Elasticache クラスター
- ステージング: 1 つの 64 ビット Linux サーバー、1 つの mongodb サーバー、1 つの Elasticache クラスター
- 製品: 1 つのロード バランサーを備えた 2 つの 64 ビット Linux サーバー、レプリカセットを備えた 3 つの mongodb サーバー、2 つの Elastic ache クラスター
セッションの問題は、すべての環境で再現可能です。私が知っていることはすべて、グーグルで見つけたものはすべて試したので、ここでアイデアが不足しています。
参考までに、CakePHP 2.1 を使用していますが、CakePHP 以外のセッションも試しました。