amazon-web-services - 使用 ElastiCache redis 服务器和密码解析服务器
问题描述
我在 Elastic Beanstalk 上设置了一个可用的 Parse 服务器。我添加了一个 AWS ElasticCache Redis 服务器用于缓存,但是在使用密码时我无法使连接正常工作,只有没有。在我创建新 Parse 服务器的 Parse 服务器 index.js 文件中,我像这样连接 Redis:
// Redis cache server
var RedisCacheAdapter = require('parse-server').RedisCacheAdapter;
var redisurl='rediss://:'+process.env.REDIS_PASS+'@'+process.env.REDIS_URL
var redisOptions = {url: redisurl};
var redisCache = new RedisCacheAdapter(redisOptions);
我的网址在哪里REDIS_URL=clustercfg.xxxx.xxxx.use1.cache.amazonaws.com
我都试过了redis://
和rediss://
。我知道 RedisCacheAdapter 只需要一个选项 - URL。我以为我可以直接在链接中添加密码,但似乎适配器不会解析为密码和 URL,而是只需要 URL。
我的问题是我在这里做错了什么还是有另一种使用密码的方法?如果无法使用密码,我想知道原因是什么(是因为 ElastiCache 对 Internet 隐藏,只有 EC2 上的服务器可以看到)?
更新: 根据@MarkB 的评论,我测试了 ElastiCache 的一些不同设置,并将上面的代码修改为也使用密码。
var redisOptions = {url: redisurl, password: process.env.REDIS_PASS};
- 以集群模式、静态加密、传输中加密和 Redis 密码运行 ElastiCache 失败。
- 在静态加密、传输中加密和 Redis 密码的情况下运行 ElastiCache 失败。
- 使用静态加密和传输中加密运行 ElastiCache,无密码失败。
- 运行没有加密的ElastiCache 静态、传输中的加密和无密码成功。
在我看来,从 Parse 服务器连接时使用静态和传输中的加密会导致问题,我不知道如何解决。正如@MarkB 所提到的,Parse 服务器 (EC2) 和 ElastiCache之间的连接仅限于 VPC,所以我可以没有安全选项,但仍然很好。
解决方案
推荐阅读
- python - 有没有办法避免输入 QCoreApplication.translate("Context",?
- angular - 在 Opera mini 中用于 Angular 10 的填充物是什么?
- c# - 如何在 WPF 中实现绘制矩形以进行选择?
- python - 在带有值的 ASP.net Core 中运行 Python 文件
- xamarin - 可观察集合中的动态记录
- java - SQLite:接近“假”:语法错误...如何解决单引号抛出错误
- javascript - Kendo 内联网格组合框 TypeError:无法使用“in”运算符在 null 中搜索“Id”
- php - 如何在 Laravel 7 导出中获取变量值?
- python - Python:如何自动更新数组中的引用元素?
- plot - 可以用 jsxgraph 制作波特图