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