0

すべての Redis サーバーを次のように構成しました。

マスター: 192.168.0.106:7001、192.168.0.105.7001、192.168.0.112:7001

スレーブ: 192.168.0.106:7002、192.168.0.105:7002、192.168.0.122:7002

192.168.0.106:7002 サーバーは 192.168.0.106:7001 サーバーのスレーブです。私はすべてのサーバーを稼働させており、それらすべてに対して redis-cli を実行できます。17001 および 17002 ポートも開いていることがわかります。しかし、私が実行すると:

./redis-trib.rb create --replicas 1 192.168.0.106:7001 192.168.0.105:7001 192.168.0.112:7001 192.168.0.106:7002 192.168.0.105:7002 192.1268.0.22

エラーが発生します:

クラスターの作成

[エラー] ノード 192.168.0.106:7001 に接続できません

すべてのサーバーが動作していて、ポートが開いている場合、これをトラブルシューティングする方法がわかりません。

1 つのことは、マスターをパスワードで保護していることです。おそらく、redis-trib.rb はパスワードで保護されたサーバーを処理できませんか?

4

3 に答える 3

2

redis-trib.rb は、パスワードで保護された Redis ノードを処理できません。

したがって、そのようなノードで使用しようとすると [ERR] 申し訳ありませんが、ノードに接続できません。

redis-trib.rb ユーティリティが認証済みノードを処理しないのはなぜですか?

これは、Redis ノードがパスワードで保護されている場合、そのメイン ポート (デフォルトでは 6379) での通信のみが保護されるという事実に関係しています。相互に通信するクラスター内のノードが保護されていないクラスター バス (デフォルト ポート + 10000 = 16379) 上の通信。そのため、個々のノードがパスワードで保護されている場合、Redis クラスターは実際にはパスワードで保護されていません。そのため、Redis クラスター内の個々の Redis ノードにパスワードを設定しても、セキュリティ上の価値はほとんどありません。したがって、redis-trib.rb ユーティリティには認証が実装されていません。

詳細はこちら:

https://groups.google.com/forum/#!topic/redis-db/Z8lMxTfDct8

于 2016-02-19T15:55:50.637 に答える
1

私は同じ問題を抱えていました。

しかしredis.conf、私のインスタンスを確認すると、bind オプションがコメントアウトされており、デフォルトで Redis は でプロセスを開始します*:port

だから私はこれを追加しredis.conf、今では完全に動作します:

バインド 0.0.0.0

これがセキュリティ エラーである場合は、パスワードを追加するか、正しい IP 範囲を指定する必要があります。

于 2017-01-04T17:37:41.907 に答える
1

127.0.0.1 の代わりに外部 IP を使用する場合。redis.conf に新しい行を追加する必要があります: "protected-mode no"

チュートリアル「https://redis.io/topics/cluster-tutorial」では、7000、7001、...、7005 の各フォルダーに 1 つの redis.conf を作成する必要があることがわかります。

チュートリアルでは次のことを提案しています。

port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes

新しい行を追加するだけです:

port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
protected-mode no

マシンのファイアウォール内でセキュリティを確保することを忘れないでください。

于 2017-07-20T17:16:17.420 に答える