130 votes

Redis - vous Connecter à un Serveur Distant

Je viens d'installer le Redis avec succès en utilisant les instructions du guide de Démarrage Rapide http://redis.io/topics/quickstart sur mon Ubuntu 10.10 serveur. Je suis l'exécution du service, comme dameon (de sorte qu'il peut être exécuté par init.d)

Le serveur est une partie de Rackspace Cluster avec Interne et Externe de l'IPs. L'hôte est en cours d'exécution sur le port 6379 (standard pour le Redis)

J'ai ajouté une ligne dans la iptables pour autoriser les connexions entrantes sur le port 6379 comme indiqué ci-dessous:

 ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:6379 

Dans mon code PHP sur un autre serveur, je suis en train d'essayer de se connecter au nouveau serveur Redis ici:

$this->load->helper("iredis");

$hostname = "IP ADDRESS HERE";

$redis = new iRedis(array('hostname' => $hostname, 'port' => 6379));

Une fois que je le fais - je toujours avoir une connexion refusée. Dans mon redis.fichier conf, j'ai le local de commande lier un commentaire, il devrait donc être à l'écoute sur le plus de l'IP localhost. Je peux me connecter à la base de données sur la machine locale, mais pas sur un autre serveur. J'ai essayé de l'externe et interne IPs avec pas de chance.

Toutes les suggestions sur l'obtention de ce travail?

335voto

Orabîg Points 4513

J'ai été coincé avec la même question, et la réponse à la question précédente ne m'aide pas (quoique bien écrit).

La solution est ici : vérifiez /etc/redis/redis.conf, et assurez-vous de modifier la valeur par défaut

bind 127.0.0.1

pour

bind 0.0.0.0

Ensuite, redémarrez votre service (service redis-server restart)

Vous pouvez ensuite vérifier maintenant que redis est à l'écoute sur la non-locale de l'interface avec

redis-cli -h 192.168.x.x ping

(remplacer 192.168.x.x avec votre adresse IP)

130voto

The Real Bill Points 3138

D'abord je voudrais vérifier pour vérifier qu'il est à l'écoute sur les IPs, vous vous attendez à être:

netstat -nlpt | grep 6379

Selon la façon dont vous démarrez/arrêtez de vous peut ne pas avoir réellement redémarrage de l'instance quand vous pensiez que vous aviez. La commande netstat vous dira si elle est à l'écoute où vous pensez qu'elle est. Si pas, redémarrez-le et assurez-vous qu'il redémarre. Si il redémarre et encore ce n'est pas à l'écoute là où vous les attendez, vérifiez votre fichier de config juste pour être sûr.

Après avoir établi qu'il est à l'écoute là où vous l'attendez, à partir d'un nœud distant qui devraient avoir accès à essayer:

redis-cli -h REMOTE.HOST ping

Vous pouvez aussi essayer de l'hôte local, mais l'utilisation de la propriété intellectuelle, vous vous attendez à être à l'écoute sur la place d'un nom d'hôte ou localhost. Vous devriez le voir PONG en réponse dans les deux cas.

Si non, votre pare-feu(s) est/sont le blocage de vous. Ce serait soit le local IPTables ou peut-être un pare-feu entre les nœuds. Vous pouvez ajouter un enregistrement à l'instruction de votre configuration de IPtables pour journaliser les connexions sur 6379 pour voir ce qui se passe. Aussi, en essayant de lui redis ping local et non-local de la même adresse IP devraient être des exemples. Si il répond en local, mais pas à distance, j'avais penchez-vous vers l'intermédiaire d'un pare-feu en fonction de la complexité de votre nœud IP Tables de règles.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X