动态配置代理

问题描述

我们有一组 IoT 设备,并希望将端口代理给最终用户(远程诊断会话)。为了避免暴露我们物联网设备的 IP,我们希望将其代理给最终用户。但是,这些 IP 可以是动态的,并且代理当然需要经过身份验证。

所以流程将是这样的:

  1. 用户请求远程诊断会话;
  2. 后端向物联网设备发送请求以检查诊断服务是否正在运行,否则启动它;
  3. 物联网设备启动诊断服务并回复状态;
  4. 后端创建一个新的安全代理,通过身份验证将 IoT 设备代理给最终用户
  5. 后端用ip和授权令牌回复用户以连接到代理;
  6. 用户通过代理连接到诊断会话;

现在,我到目前为止只找到一种解决方案,即 Ceryx,但是,它没有身份验证。 Nginx plus 似乎不是一种选择,因为许可成本很高,而且它似乎无法处理这个问题。

除了调整 Cyrex 以支持身份验证之外,还有其他解决方案吗?

解决方法

使用 OpenResty,您可以使用以下方式设置代理:

这很容易实现,但需要您编写一些代码。