我们使用 ElasticBeanstalk 来设置一些 Node.js 环境。目前,我们使用 Redis 作为会话存储,它设置在 ElastiCache 中。
当我 ssh 进入 EC2 实例并 netcat Redis 存储时,我可以确认网络允许通过端口 6379 进行连接:
[ec2-user@<redacted>]$ nc -v <redacted>.usw2.cache.amazonaws.com 6379
Connection to <redacted>.usw2.cache.amazonaws.com 6379 port [tcp/*] succeeded!
EC2 安全组的出站策略:0.0.0.0/0
Redis 安全组入站策略允许在端口 6379 上从我的 EC2 安全组传入 TCP。
这似乎支持了我们在 netcat 成功 ping Redis 存储时看到的观察结果。但是,当尝试连接到 Redis 时,Node.js 应用程序本身会挂起。我可以通过运行以下命令在 EC2 实例上复制此内容:
[ec2-user@<redacted>]$ ./redis-cli -c -h <redacted>.usw2.cache.amazonaws.com -p 6379 ping
这只是保持挂起状态,我们没有收到任何消息PONG
回复。鉴于 netcat 的成功,我相当有信心这不是安全组问题,但这里肯定存在一些看似奇怪的事情。
有任何想法吗?
问题在于 ElastiCache 配置为传输和静态加密。事实证明,对于这个特定的实例,我们不需要它,所以一旦我们删除它,事情就开始工作了。如果我们保留加密,实际的解决方案是什么,待定。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)