首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ioredis ETIMEDOUT来自Azure应用程序服务,但在本地运行良好,IP已添加到防火墙

ioredis ETIMEDOUT来自Azure应用程序服务,但在本地运行良好,IP已添加到防火墙
EN

Stack Overflow用户
提问于 2019-10-01 19:07:45
回答 2查看 456关注 0票数 2

我有一个Azure Redis缓存,目前正在测试。它没有被使用/除了我现在正在尝试做的事情之外,没有任何东西连接到它。它是最基本的C0计划的一部分。

问题是,一旦部署为Azure应用程序服务的一部分,它将不断抛出:

代码语言:javascript
运行
复制
[ioredis] Unhandled error event: Error: connect ETIMEDOUT
     at TLSSocket. (/home/site/wwwroot/node_modules/ioredis/built/redis/index.js:282:31)
     at Object.onceWrapper (events.js:273:13)
     at TLSSocket.emit (events.js:182:13)
     at TLSSocket.Socket._onTimeout (net.js:449:8)
     at ontimeout (timers.js:425:11)
     at tryOnTimeout (timers.js:289:5)
     at listOnTimeout (timers.js:252:5)
     at Timer.processTimers (timers.js:212:10)

如果我在本地运行应用程序,一切都很好。我已经将我的本地IP和应用服务的IP都添加到了防火墙中。

我的配置是:

代码语言:javascript
运行
复制
 host: this.get('REDIS_HOST'),
      port: 6380,
      password: this.get('REDIS_PRIMARY_KEY'),
      tls: true as any,
      connectTimeout: 1000,

代码语言:javascript
运行
复制
import * as redis from 'ioredis';
redis: redis.Redis;

in constructor: 

this.redis = new redis(this.configService.getRedis());
EN

Stack Overflow用户

发布于 2019-10-18 17:10:11

我的特定问题是由于仅在Azure应用程序服务中设置“自定义域”刀片的IP,而不是转到“属性”并将几个IP地址复制到缓存配置。

一旦我将所有合适的IP列入白名单,一切都会正常工作。

然而,由于小型connectionTimeout配置设置为1000ms而不是标准的10000ms,我遇到了偶尔的超时。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58183570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档