python反向代理通过cgi生成

时间:2011-06-27 05:10:43

标签: python

我需要编写一个cgi页面,它将像用户和另一个页面(mbean)之间的反向代理。问题是每个mbean使用不同的端口,我不知道哪个端口用户想要命中 因此,我需要做的是: A)给用户一个页面,允许他选择他想要的应用程序 B)基于上面的信息产生反向代理(它给我端口,服务器等..) C)用户通过反向代理连接到远程mbean页面,因此永远不会“离开”原始页面 C的原因是用户无法直接访问任何内部应用程序,只能访问初始端口80.

我看着扭曲,在我看来它可以做到这一点。我不知道的是如何从cgi中生成扭曲的进程,以便它可以建立连接并在反向代理框架内保持进一步的连接。

BTW我没有结婚,如果还有其他工具可以做得更好,我全都耳朵。我不能做像mod_proxy这样的事情(例如),因为广泛的端口会使配置相当愚蠢(大约1000种不同的代理设置)。

1 个答案:

答案 0 :(得分:2)

您不需要生成另一个进程,这会使事情复杂化。以下是基于我当前项目中类似内容的方法:

  • 创建一个WSGI应用程序,它可以存在于Web服务器之后。
  • 创建可从任何URL映射访问的请求处理程序(或“视图”),只要用户没有会话ID cookie。
  • 在请求处理程序中,用户可以选择目标应用程序,并使用它,主机名,端口号等。此请求处理程序创建与目标应用程序的连接,例如使用httplib并为其分配会话ID。它设置会话ID cookie并将用户重定向回同一页面。
  • 现在,当您的用户点击应用程序时,您可以使用已打开的http连接来重定向查询。请注意,WSGI支持将类似开放文件的对象作为响应传递回来,包括httplib提供的对象,以提高性能。