将我的 Heroku Redis 插件从 v4 升级到 v6.2.3 后,Heroku papertrail 日志显示此错误:Error accepting a client connection: error:1408F10B:SSL routines:ssl3_get_record:wrong version number
我正在使用 NodeJs 和bull
npm 包 ( https://www.npmjs.com/package/bull ) 连接到 Redis。我发现与此错误相关的类似问题以及 Heroku 文档,并基于此我已将我的bull
redis 选项设置为以下内容:
redis: {
host: redisURL.hostname,
port: Number(redisURL.port),
password: redisURL.password,
tls: {
rejectUnauthorized: false,
},
},
注意tls
参数。我在这里将其设置为 Heroku 的建议:https
: //devcenter.heroku.com/articles/heroku-redis#connecting-in-node-js 卡住了一段时间后,我试图简单地注释掉任何连接的客户端代码到 Redis,删除加载项,然后重新配置加载项。当我这样做时,我希望在 papertrail 中看不到 redis 日志,但我仍然看到相同的错误,即使没有运行连接到 redis 的代码......这让我相信它可能是实际 Redis 添加的设置-on 实例,而不是我的代码问题,但我不知所措。
更新:
我登录了 redis:cli 并做了一些调查。client list
显示 2 个客户端连接。1 是我在终端中运行的 redis:cli 的实例,另一个是带有标志的客户端,表示“客户端是到此实例的副本节点连接”(请参阅 https://redis.io/commands /客户端列表)。有趣的是,papertrail 中记录的错误显示存在 SSL 错误的客户端连接的文件描述符fd=12
,而显示的 2 个客户端client list
具有文件描述符fd=10
和fd=11
. 所以必须有另一个客户端连接fd=12
没有出现在client list
命令中,导致上面显示的错误。