通过cgi生成python反向代理

通过cgi生成python反向代理,python,Python,我需要编写一个cgi页面,它将充当用户和另一个页面(mbean)之间的反向代理。问题是每个mbean使用不同的端口,我不知道用户会提前访问哪个端口。 因此,我需要做的是: A) 给用户一个页面,允许他选择要点击的应用程序 B) 根据上面的信息生成一个反向代理(提供端口、服务器等) C) 用户通过反向代理连接到远程mbean页面,因此从不“离开”原始页面。 使用C的原因是用户不能直接访问任何内部应用程序,只能访问初始端口80 我看着twisted,在我看来,它可以完成这项工作。我不知道的是如何从c

我需要编写一个cgi页面,它将充当用户和另一个页面(mbean)之间的反向代理。问题是每个mbean使用不同的端口,我不知道用户会提前访问哪个端口。
因此,我需要做的是: A) 给用户一个页面,允许他选择要点击的应用程序 B) 根据上面的信息生成一个反向代理(提供端口、服务器等) C) 用户通过反向代理连接到远程mbean页面,因此从不“离开”原始页面。
使用C的原因是用户不能直接访问任何内部应用程序,只能访问初始端口80

我看着twisted,在我看来,它可以完成这项工作。我不知道的是如何从cgi中生成twisted进程,以便它能够在反向代理框架中建立连接并保持进一步的连接


顺便说一句,我没有嫁给twisted,如果有其他工具可以做得更好,我洗耳恭听。我不能像mod_proxy(例如)那样做,因为广泛的端口会使配置变得相当愚蠢(大约1000个不同的代理设置)。

您不需要生成另一个进程,这会使事情复杂很多。以下是基于我当前项目中类似的内容我将如何做到这一点:

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

您为什么更喜欢前端使用CGI,而不是使其成为长期流程?您可以使用twisted或WSGI应用程序直接位于http服务器后面,同时处理分派和代理。不幸的是,我不知道反向代理将侦听哪个端口。否则,我可以很容易地进行后台处理。因此,我需要在用户单击按钮时生成一些内容。这有意义吗?从未做过WSGI,但听起来可行,谢谢!我会试试看,不客气。看看Werkzeug(WSGiToolkit)或Flask(构建在Werkzeug之上的小型web框架),它们会让您快速入门。