如何修复部署期间Adonisjs中的ECONNRESET ioredis错误



当我试图将AdonisJS部署到数字海洋或Azure时,我得到了这个错误

[ioredis] Unhandled error event: Error: read ECONNRESET
at TCP.onStreamRead (internal/stream_base_commons.js:209:20)

我的Adonis应用程序需要Redis才能运行。我使用的是Digital Ocean的Redis实例。这是我的Redis生产配置。

prod: {
host: Env.get("REDIS_HOST"),
port: Env.get("REDIS_PORT"),
password: Env.get("REDIS_PASSWORD"),
db: 0,
keyPrefix: ""
},

如果要将AdonisJS应用程序连接到受传输层安全性(TLS(保护的Redis实例,则需要将tls主机添加到配置中。

所以,你的产品配置应该像这个

prod: {
host: Env.get("REDIS_HOST"),
port: Env.get("REDIS_PORT"),
password: Env.get("REDIS_PASSWORD"),
db: 0,
keyPrefix: "",
tls: {
host: Env.get("REDIS_HOST"),
},
},

作为我评论的后续内容-我的docker环境降级到我甚至无法通过redis-cli连接到vanilla dockerhub redis映像的地步。我最终清理了我的docker环境,删除了所有容器、图像、卷、网络等,然后重新启动了我的mac。重建后,这个问题对我来说消失了。

我讨厌不知道";根本原因";但是有一个理论。我一直在玩一些不同的Redis镜像,包括dockerhub中的香草独立镜像和https://github.com/Grokzen/docker-redis-cluster.我正在调整后者的构建以添加身份验证。理论上,由于反复建造和拆除,港口仍有剩余的争夺过程。在调试dockerfiledocker-entrypoint.sh文件时,我可能已经不耐烦了,并多次硬停止了我正在处理的容器。:(

我知道这个答案与在DO或Azure上托管没有直接关系,但由于症状相同,也许某个地方存在网络冲突。

相关内容

  • 没有找到相关文章

最新更新