🗝️

Laravelで冗長構成にした場合にセッションが共有出来ない問題の対処

2021/09/10に公開

結論

Laravelアプリケーションをデプロイしたサーバーを冗長構成にする場合は、環境変数もしくは.envファイルに設定するAPP_KEYは同じ値にする必要がある。

何の話か

Laravelのアプリケーションをロードバランサー+EC2×2+RDS+ElastiCache(Redis)で構成した際、アプリを動かすとすぐに認証が切れた。

原因

ElastiCache(Redis)で管理しているセッション情報をEC2の各サーバーから参照していた。
だが、APP_KEYを別々の値で設定していたために暗号化・復号の結果が変わってしまい、セッションを共有できていなかった。

ちなみにセッションに限らず暗号化関連は基本的に使用されてるぽいです。
https://readouble.com/laravel/8.x/ja/encryption.html

愚痴

セッションの暗号化・復号にAPP_KEY使ってるとは思わなかった!
おかげで4~5時間苦しみました😭

GitHubで編集を提案

Discussion