我在 Aws EC2 上的 node_redis 中发现了一些奇怪的行为。
假设我有两个 EC2 实例。
第一个用于 DB(Redis、MYSQL 等),它的 IP 像这样ip-1-1-1-1.eu-west-1.compute.internal
第二个是基于NodeJS的应用程序,它的IP是ip-2-2-2-2.eu-west-1.compute.internal
在安全组中我添加了这个:
6379 sg-351a0441 (default)
6379 sg-333b9044 (quicklaunch-0)
我使用node_redis模块与 Redis 通信。我需要从一个实例连接到另一个实例。
所以现在我(可能)可以从另一个连接到 Redis(第一台服务器):
redis = require('redis');
client = redis.createClient(6379, 'ip-1-1-1-1.eu-west-1.compute.internal');
但是这种方式会导致错误:
Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED
它尝试将 (!) 连接到127.0.0.1
i 而不是1.1.1.1
. 我说“好的。让我们尝试另一种方式!”
redis = require('redis');
client = redis.createClient(6379, '1.1.1.1');
还有..砰!这里同样的错误:
Error: Redis connection to 1.1.1.1:6379 failed - connect ECONNREFUSED
那么,也许完整的 redis url 会有所帮助?
redis = require('redis');
client = redis.createClient(6379, 'redis://1.1.1.1');
不 :(
Error: Redis connection to redis://10.248.118.246:6379 failed - getaddrinfo EADDRINFO
使用内部网址时也是如此:
Error: Redis connection to redis://ip-1.1.1.1.eu-west-1.compute.internal:6379 failed - getaddrinfo EADDRINFO
那么,它有什么问题呢?提前致谢。