PR

複数台でRedisを使う場合はbind設定を行おう【複数IP設定可】

複数台でRedisを使う場合はbind設定を行おう【複数IP設定可】 プログラミング
複数台でRedisを使う場合はbind設定を行おう【複数IP設定可】

PHPのフレームワーク(例えばLaravel)でセッション管理は何を使っていますか?

よくあるのが、

  • ファイル管理
  • データベース管理
  • Cookie管理
  • memcached/redis管理(キャッシュ)

だと思います。

今回はこの中でもよく使われるRedis(NoSQL)を使ったキャッシュ管理について、よくあるRedisに接続できない件を解説したいと思います。

このブログは現役のエンジニア(プログラマー歴が約12年)の僕(よしたか)が2019年12月後半から日々更新しております。

もしもアフィリエイトは会員登録後も無料です!
今すぐ会員登録してアフィリエイトを始めよう!

1台構成の場合は問題ないが複数台構成でRedisを使う場合の注意点

1台構成(WebもDBも1つのサーバーに相乗りしている)の場合はそこまで気にする必要はないですが、複数台構成でRedisを使う場合に、

Connection refused [tcp://xxx.xxx.xxx.xxx:6379]

こんなエラーが出て接続できない場合があります。

複数台構成でRedisを利用する場合はコンフィグファイルを調整する必要あり

「Connection refused」のエラーで接続できない場合は、

vi /etc/redis.conf

=====
bind 127.0.0.1
↓
bind 0.0.0.0
=====

or

=====
bind 127.0.0.1
↓
bind 127.0.0.1 [許可するip]
=====

service redis restart

このように調整しましょう。

ちなみに前者(0.0.0.0)の場合は、全許可なのでセキュリティ的にNGな場合は後者の調整方法をおすすめいたします。

簡単にいいますと、Redisのデフォルトの状態だと「127.0.0.1」(同サーバー)からしか接続許可されておりません。

その為、例えばWebサーバーが2台〜ある場合に1箇所のRedisに接続したい場合には、このように「127.0.0.1」(同サーバー)以外からも許可する必要があります。

まとめ

この記事のおさらい
  • 複数台構成でRedisを使う場合はコンフィグファイルを調整しよう

いかがだったでしょうか。

Laravelといいますか、PHPでは以前はmemcachedが使われる事が多かったのですが、近年ではRedisの利用が一般的になりつつあるかなと感じています。

複数台構成でRedisを使う場合の参考にしてくださいね。

今日はさくっと以上となります!