2016-05-14 4 views
1

Ich habe 3 verschiedene Server auf Aliyun verteilt, jeder von ihnen läuft 2 Rediszens mit Port 6379 und 6380.Redis Cluster-Erstellung kann keine Verbindung zum Server herstellen, was ist falsch?

Ich habe versucht, einen Redis-Cluster mit diesen 6 Knoten zu bauen. (Redis Version 3.2.0). Aber es schlug fehl und sagte "Sorry, kann keine Verbindung zum Knoten 10.161.94.215:6379" (10.161.94.215 ist die LAN-IP-Adresse meines ersten Servers.)

Während offensichtlich die Server waren sehr gut laufen, und ich könnte hol es dir bei redis-cli.

Gem ist installiert.

Requirepass ist gesperrt, keine Authentifizierung wird benötigt.

kein IP-bind

Kein sowie Schutz-Modus.

error pic

Alle Konfigurationsoptionen über Cluster sind gut eingestellt.

Was ist falsch daran?

Antwort

0

Ich denke ich weiß warum jetzt.

Verwenden Sie die IP des lokalen Hosts.

src/redis-trib.rb create 127.0.0.1:6379 127.0.0.1:6380 h2:p1 h2:p2 h3:p1 h3:p2 
0

Ich denke, Sie erstellen Cluster aus einem anderen Subnetz. Das könnte ein Problem sein.

0

Sieht aus wie geschützter Modus ist eine neue Sicherheitsfunktion in redis 3.2. Die kurze Version ist, wenn Sie nicht explizit an eine IP-Adresse binden, erlaubt es nur den Zugriff auf localhost.

Wenn Sie nur einen Cluster auf einem einzelnen Host erstellen möchten, kann dies in Ordnung sein. Wenn Sie mehrere Hosts zum Erstellen eines Clusters verwenden, müssen Sie entweder den geschützten Modus deaktivieren oder explizit an eine IP-Adresse binden.

Von redis.conf Datei:

# Protected mode is a layer of security protection, in order to avoid that 
# Redis instances left open on the internet are accessed and exploited. 
# 
# When protected mode is on and if: 
# 
# 1) The server is not binding explicitly to a set of addresses using the 
# "bind" directive. 
# 2) No password is configured. 

# The server only accepts connections from clients connecting from the 
# IPv4 and IPv6 loopback addresses 127.0.0.1 and ::1, and from Unix domain 
# sockets. 
# 
# By default protected mode is enabled. You should disable it only if 
# you are sure you want clients from other hosts to connect to Redis 
# even if no authentication is configured, nor a specific set of interfaces 
# are explicitly listed using the "bind" directive. 
protected-mode yes 

Es gibt Anweisungen, wie dies zu korrigieren, wenn Sie es versuchen, eine Verbindung etwas mit abgesehen von der Loopback-Schnittstelle:

Denied Redis läuft Im geschützten Modus, da der geschützte Modus aktiviert ist, keine Bindungsadresse angegeben wurde, wird kein Authentifizierungskennwort für Clients angefordert. In diesem Modus werden Verbindungen nur von der Loopback-Schnittstelle akzeptiert. Wenn Sie eine Verbindung von externen Computern zu Redis herstellen möchten, können Sie eine der folgenden Lösungen anwenden: 1) Deaktivieren Sie einfach den geschützten Modus, indem Sie den Befehl 'CONFIG SET protected mode no' von der Loopback-Schnittstelle aus an Redis vom selben Host senden läuft, jedoch VERMEIDEN Redis ist nicht öffentlich zugänglich aus dem Internet, wenn Sie dies tun. Verwenden Sie CONFIG REWRITE, um diese Änderung dauerhaft zu machen. 2) Alternativ können Sie den geschützten Modus einfach deaktivieren, indem Sie die Redis-Konfigurationsdatei bearbeiten und die Option für den geschützten Modus auf "Nein" setzen und dann den Server neu starten. 3) Wenn Sie den Server nur zum Testen manuell gestartet haben, starten Sie ihn mit der Option '--protected-mode no' neu. 4) Richten Sie eine Bindeadresse oder ein Authentifizierungskennwort ein. Hinweis: Sie müssen nur eines der oben genannten Dinge tun, damit der Server Verbindungen von außen akzeptiert.

Die Ausgabe von redis-trib.rb ist ziemlich knapp (wahrscheinlich entsprechend).

0

sudo nano /etc/redis/6379.conf

Replace #bind 127.0.0.1 or bind 127.0.0.1 with bind 0.0.0.0 

sudo service redis_6379 restart 

überall Zugang redis zulassen.

Verwandte Themen