2013-04-20 11 views
29

Nel redis.conf l'impostazione normale èRedis legarsi a più di un IP

legano 127.0.0.1

voglio Redis ascoltare un altro IP troppo (dicono che il mio indirizzo di sviluppo locale)

ho provato

legano 127.0.0.1, 123.33.xx.xx

, ma questo non funziona. Non riesco a trovare alcuna pertinenza nel documento o su Google. Spero che qualcuno possa aiutarti.

+0

L'impostazione normale non deve avere l'impostazione 'bind', che renderà Redis vincolante a tutte le interfacce. Non sono sicuro che tu possa farlo ascoltare due (o più) * specifici * indirizzi (non è documentato che possa, AFAIK). – robertklep

+0

Non sono sicuro di aver capito il significato di bind, quindi se uno ha lasciato la linea di binding commentato, vuol dire che qualcuno può connettersi al server redis e ottenere il contenuto? – spacemilkman

+5

Se è necessario ascoltare più interfacce, è sufficiente ascoltare tutto il possibile e utilizzare il firewall per limitare l'accesso al servizio. – taro

risposta

3

Ho provato a trovare anche questa risposta, così com'è, non è possibile farlo, l'ho trovato mentre cercavo la risposta su più (ma non su tutte le interfacce). Questo è ciò che ha rilevato http://code.google.com/p/redis/issues/detail?id=497 affermando che non sarà supportato da redis stesso.

In congiunzione con haproxy che rende impossibile metterlo di fronte a redis in una volta sola. È necessario utilizzare una porta diversa o l'altra oppure scegliere di eseguire il binding su 1 IP.

3

Non è possibile impostare redis per l'ascolto su interfacce specifiche. Se sono necessarie più interfacce, rimuovere la linea di rilegatura.

Come @taro ha sottolineato utilizzare il firewall per limitare l'accesso.

12

dal:

- [Redis 2.8 Release Candidate 1 (2.7.101)] Data di rilascio il 18 luglio 2013

è possibile:

  • [ NUOVO] Possibilità di associare più indirizzi IP.

Saluti !!

+0

Questo è bello sentire. Molte grazie! – spacemilkman

+1

Questa risposta non spiega in realtà come associare a più IP, ma dice solo che ora è possibile. – xxmicloxx

24

Il collegamento a più indirizzi IP è possibile a partire da Redis 2.8. Basta separare ogni IP da spazi bianchi (non virgole).

bind 127.0.0.1 123.33.xx.xx 

Source: Official default config

+0

Quando aggiungo un secondo indirizzo IP e poi 'sudo systemctl restart redis-server.service' (Ubuntu), viene visualizzato un errore che dice 'redis-server.service: richiesta di avvio ripetuta troppo rapidamente. Ho dovuto' stop' , quindi attendere un po 'prima di chiamare 'start'. – Jens

3

Edit: sembra che il modo corretto è, ancora, solo una riga e uno o più indirizzi IP separati da spazio

questo modo:

bind 127.0.0.1 10.150.220.121 
+1

Questa modifica è ora documentata, incluso un esempio nel file di configurazione: http://download.redis.io/redis-stable/redis.conf –

3

Questa risposta non è obsoleta e funzionerà sia per le versioni precedenti che per quelle più recenti

Il problema nella comprensione è che il binding di Redis non mostra l'indirizzo della macchina client, ma mostra l'interfaccia attraverso la quale stabilire la connessione. Nel tuo esempio, se il tuo indirizzo di sviluppo locale (client) è 123.33.xx.xx, non significa che devi inserire esattamente lo stesso indirizzo di un binding, altrimenti il ​​servizio Redis non verrà avviato.

Quindi, se ifconfig sul server Redis macchina dimostra che hai un po 'di interfaccia di rete simile a questo:

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

si può mettere l'indirizzo dell'interfaccia 192.168.1.110 come vincolante e ogni richiesta di Redis, che passano attraverso questa interfaccia, dovrebbero avere successo.

Problemi correlati