heroku - Heroku Redis 在日志中收到错误的版本号错误
问题描述
我正在使用 Heroku 的 Redis 插件。我昨天升级到更高级别,现在当我向我的服务器发送请求时我得到了这个。关于这个错误日志意味着什么的任何建议?
Apr 03 07:00:24 myapp app/redis-flexible-99415 Error accepting a client connection: error:1408F10B:SSL routines:ssl3_get_record:wrong version number (conn: fd=12)
我这样连接到 Redis:
import Redis from "ioredis";
import { Job, Queue, Worker } from "bullmq";
const client = new Redis(process.env.REDIS_URL, {
connectTimeout: 30000,
tls: {
rejectUnauthorized: false,
},
});
...
解决方案
Heroku 发布了与 Redis 相关的新更新,如其更改日志中所述:https ://devcenter.heroku.com/changelog-items/1952 。
未指定版本的新 Redis 插件现在默认为 6.0 版本,因为它使用自签名证书进行保护,因为其内置 TLS 用于生产计划。您需要添加ssl_params: { verify_mode: OpenSSL::SSL::VERIFY_NONE }
以处理自签名证书。请参阅此处了解更多详细信息:https ://devcenter.heroku.com/articles/securing-heroku-redis
您也可以通过降级到 Redis 5 版本来解决此问题。您可以通过运行(使用 --version 标志)来做到这一点:heroku addons:create heroku-redis:premium-2 --version 5 -a <app-name>
。更多详细信息:https ://devcenter.heroku.com/articles/heroku-redis#version-support-and-legacy-infrastructure 。
推荐阅读
- json - json.NewEncoder 和 json.NewDecoder 中的序列化/编码
- angular - 两个不同的应用程序可以共享 NGXS 商店吗?
- python-3.x - 使用 Databricks 为 Scala 使用 Merge for Scala 向表中插入
- javascript - JavaScript:如何在没有 window.open() 的情况下在新选项卡中打开链接?
- git - 如何使用哑 HTTP 协议将 git repo 克隆到 Eclipse 中
- image - CEF 中产品图片的最佳实践是什么?
- sitefinity - 来自 API 的 sitefinity 收集数据
- python - DataFrame Panda:if-elif ..如果没有拾取块
- elasticsearch - Kibana 组结果(按 id)
- sql - SQL - 根据列值重新启动分区