🗝️
Laravelで冗長構成にした場合にセッションが共有出来ない問題の対処
結論
Laravelアプリケーションをデプロイしたサーバーを冗長構成にする場合は、環境変数もしくは.envファイルに設定するAPP_KEY
は同じ値にする必要がある。
何の話か
Laravelのアプリケーションをロードバランサー+EC2×2+RDS+ElastiCache(Redis)で構成した際、アプリを動かすとすぐに認証が切れた。
原因
ElastiCache(Redis)で管理しているセッション情報をEC2の各サーバーから参照していた。
だが、APP_KEYを別々の値で設定していたために暗号化・復号の結果が変わってしまい、セッションを共有できていなかった。
ちなみにセッションに限らず暗号化関連は基本的に使用されてるぽいです。
愚痴
セッションの暗号化・復号にAPP_KEY使ってるとは思わなかった!
おかげで4~5時間苦しみました😭
Discussion