0

我在 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.1i 而不是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

那么,它有什么问题呢?提前致谢。

4

0 回答 0