首页 > 解决方案 > 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,
    },
});
...

标签: herokuserverredis

解决方案


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 。


推荐阅读