微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何为heroku redis节点启用tls?

如何解决如何为heroku redis节点启用tls?

我无法使用 TLS 连接到 Heroku Redis。我尝试了 heroku docs 中给出的内容以及这篇文章 How to Connect Heroku Redis TLS Node? 上的答案,但似乎没有任何效果。我当前的 redis 选项如下:

const Redis = require('ioredis');
const url = process.env.REdis_URL;
const options = {
  tls: {
    rejectUnauthorized: false,},};
const opts = new Redis(url,options);

我得到的错误

[ioredis] Unhandled error event:Error: connect ETIMEDOUT
at TLSSocket.<anonymous
(/app/node_modules/ioredis/built/redis/index.js:310:37)
 at Object.onceWrapper (events.js:421:28)
at TLSSocket.emit (events.js:315:20)
.....

还有 REdis_URL 和 REdis_TLS_URL 的区别是什么?使用哪个?

解决方法

REDIS_TLS_URL 在 url 的方案中会有一个额外的 's' -> rediss://password@host:port 与 REDIS_URL(在它的方案中只有一个 's')。另一个区别是端口。 TLS 端口通常是常规端口的 +1。在 Heroku Redis 版本 6 上,您需要使用 REDIS_TLS_URL 以及您在上面定义的 tls 选项。

const Redis = require('ioredis');
const url = process.env.REDIS_TLS_URL;
const options = {
  tls: {
     rejectUnauthorized: false,},};
const opts = new Redis(url,options);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。