将HTTP请求重定向到没有静态/公共IP的设备

时间:2018-01-15 14:49:33

标签: python sockets redirect ssh-tunnel

我正在使用通过webhook向用户发送一些数据的服务。如果此服务上有任何用户交互,它会使用HTTP请求命中我的URL,并使用POST / GET中的数据,然后期望text / json响应显示给用户。响应必须在几秒钟内完成,否则HTTP请求超时,服务无法找出应对用户的响应。 这里的问题是,现在我没有使用公共IP在我的服务器上处理这些数据,但是我需要在我的RPi上进行操作,它继续移动,这会使它每隔几个小时就有不同的IP,而且大部分都不公开

我确定我仍然需要使用带有公共IP的服务器将这些请求重定向到我的RPi,我的想法很少,但我不知道什么是可靠的,或者甚至不知道工作

  1. 让API与我的服务器通信并保存数据。然后让RPi不断询问我的服务器是否有任何新数据。可能是最愚蠢的想法 - 不适合使用计量连接,可能更长的回复,并且在API的HTTP请求中返回RPi的回复将更加困难。

  2. 在我的服务器上运行(Python)脚本,a)用作套接字服务器,RPi将连接到此套接字,b)运行SimpleHTTPRequestHandler处理来自API的请求并将它们发送到套接字,回复RPi的回复。可以轻松地保持我的服务器和RPi之间的连接,允许我在两个方向传递数据。

  3. 在RPi和我的服务器之间打开SSH隧道。这样,我就可以直接在我的RPi上处理来自服务的请求。但这个解决方案有多可靠? (保持活着,自动打开隧道等,对超级用户论坛提出质疑)

  4. 如果有可能,我会考虑选择3,但首先我想听听你们的想法。这是一个好的和可靠的想法吗?或者有什么更好的方法我不知道?或者有人已经遇到过这个问题吗?

    总结一下: 有些东西会向公共IP发送HTTP请求。我需要在没有公共IP的设备上用Python脚本处理这个请求(并回复它)。我有一台带有公共IP的服务器,可以用作桥接器。如果它能够重定向这些请求,我就不在乎服务器上运行的内容。 感谢

0 个答案:

没有答案