2013-04-20 15 views
29

Im redis.conf die normale EinstellungRedis binden, um mehr als eine IP-

binden 127.0.0.1

I ist redis auch auf eine andere IP hören wollen (sagen meine lokale Entwicklung Adresse)

ich versuchte

binden 127.0.0.1, 123.33.xx.xx

aber das funktioniert nicht. Ich finde keine relevanten in dem Dokument oder durch googeln. Hoffe jemand kann helfen.

+0

Die normale Einstellung ist nicht, dass "bind" gesetzt ist, wodurch Redis an alle Schnittstellen bindet. Ich bin mir nicht sicher, ob Sie zwei (oder mehr) * spezifische * Adressen hören können (es ist nicht dokumentiert, dass dies möglich ist, AFAIK). – robertklep

+0

Ich bin mir nicht sicher, ob ich die Bedeutung von bind richtig verstehe, wenn also jemand die Bind-Zeile auskommentiert hat, bedeutet das, dass sich jemand mit Ihrem Redis-Server verbinden und den Inhalt bekommen kann? – spacemilkman

+5

Wenn Sie mehrere Interfaces abhören möchten, hören Sie einfach auf alles mögliche und verwenden Sie die Firewall, um den Zugriff auf den Service einzuschränken. – taro

Antwort

3

Ich habe versucht, diese Antwort auch zu finden, wie es ist, ist es nicht möglich, dies zu tun, fand ich dies während der Suche nach der Antwort auf mehrere (aber nicht alle Schnittstellen). Dies ist, was http://code.google.com/p/redis/issues/detail?id=497 ergab, dass es nicht von redis selbst unterstützt wird.

In Verbindung mit haproxy, die es unmöglich macht, es in einem Zug vor redis zu setzen. Sie müssen einen anderen Port oder den anderen Port verwenden oder wählen, ob Sie an 1 IP binden möchten.

3

Sie können nicht festlegen, dass auf spezifische mehrere Schnittstellen überwacht werden. Wenn mehrere Schnittstellen erforderlich sind, entfernen Sie einfach die Bind-Linie.

Als @taro wies darauf hin, verwenden Sie Firewall, um den Zugriff zu beschränken.

12

seit:

- [Redis 2.8 Release Candidate 1 (2.7.101)] Erscheinungsdatum: 18. Jul 2013

können Sie:

  • [ NEU] Fähigkeit, mehrere IP-Adressen zu binden.

Prost !!

+0

Das ist nett zu hören. Danke vielmals! – spacemilkman

+1

Diese Antwort erklärt nicht wirklich, wie man an mehrere IPs bindet, es sagt nur, dass es jetzt möglich ist. – xxmicloxx

24

Die Bindung an mehrere IPs ist in der Tat seit Redis 2.8 möglich. Trennen Sie einfach jede IP durch Leerzeichen (nicht Kommas).

bind 127.0.0.1 123.33.xx.xx 

Source: Official default config

+0

Wenn ich eine zweite IP-Adresse und dann 'sudo systemctl neu starten redis-server.service' (Ubuntu) hinzufügen, bekomme ich einen Fehler, der besagt, redis-server.service: Start-Anfrage wiederholt zu schnell.Ich musste' stoppen' Warten Sie dann eine Weile, bevor Sie 'start' aufrufen. – Jens

3

Edit: es scheint, dass der richtige Weg ist, nach wie vor, nur eine Zeile und eine oder mehr IP-Adressen durch Leerzeichen getrennt

auf diese Weise:

bind 127.0.0.1 10.150.220.121 
+1

Diese Änderung ist jetzt dokumentiert, einschließlich eines Beispiels in der Konfigurationsdatei: http://download.redis.io/redis-stable/redis.conf –

3

Diese Antwort ist nicht veraltet und funktioniert sowohl für ältere als auch für neuere Versionen

Das Problem beim Verständnis ist, dass Redis Bindung nicht zeigt die Adresse des Client-Computers, sondern zeigt die Schnittstelle, durch die Verbindung hergestellt werden sollte. In Ihrem Beispiel, wenn Ihre lokale Entwicklungsadresse (Client) 123.33.xx lautet.xx, es bedeutet nicht, dass Sie genau die gleiche Adresse als Bindung angeben müssen, sonst startet der Redis-Dienst nicht.

Also, wenn ifconfig auf Redis Server Maschine zeigt, dass Sie eine Netzwerkschnittstelle ähnlich wie dieses:

eth0 Link encap:Ethernet HWaddr 00:0c:... 
     inet addr:192.168.1.110 Bcast:192.168.1.255 Mask:255.255.255.0 

können Sie die Adresse der Schnittstelle setzen 192.168.1.110 als verbindlich und jede Anfrage Redis, die diese Schnittstelle durchlaufen, sollten erfolgreich sein.

Verwandte Themen