在代理后面访问Azure Redis缓存

时间:2018-12-19 09:05:17

标签: node.js azure redis

在开发环境中,开发人员需要访问Redis缓存。 通过端口6380上的socks协议连接到Azure Redis缓存。

问题是由于以下事实:外部互联网访问是通过我们公司的代理服务器完成的。

如果是HTTP(S)访问,例如在nodejs中,我们使用npm软件包“ dotenv”,在其中指定“ HTTP(S)”代理设置(例如ms-rest azure软件包)。

但是在这里我们找不到用于袜子访问的代理使用的任何解决方案。

在这种情况下,我们使用npm软件包“ redis”。

任何人都可以使用代理解决方案??

预先感谢Mathieu

1 个答案:

答案 0 :(得分:1)

从代理后面的客户端直接连接到Azure Redis缓存似乎是不可能的。原因如下:

  1. Redis仅通过telnet之类的协议支持tcp连接,如果您的代理不支持socks,这是不可行的。
  2. 我搜索了两个推荐的NodeJS redis客户端ioredisnode_redis之后,两个都不支持通过代理建立连接。

因此,这是针对您当前情况的两种可能的解决方案。

  1. 如果您的代理支持socks,则可以尝试通过基于现有Redis客户端更改一些代码来支持袜子代理来创建新的Redis客户端。
  2. 推荐用于当前情况。我建议您可以在Azure上创建HTTP服务,以处理来自代理后面的客户端的请求,该服务可以将HTTP请求的参数传递给Azure Redis缓存,并将结果包装到HTTP响应中。它是HTTP上的Redis,例如solutious/bone

希望有帮助。