python - 如何在前端 Web 服务器和运行 CherryPy 的后端之间干净地桥接客户端连接?

标签 python cherrypy

标题可能有点模糊,但这是我的目标:我有一个前端网络服务器,它接受传入的 HTTP 请求,对它们进行一些预处理,然后将请求传递到我的真实网络服务器获取 HTTP 响应,然后将其传回客户端。

目前,我的前端是基于 BaseHTTPServer.HTTPServer 构建的,后端是 CherryPy。

所以问题是:有没有办法获取这些 HTTP 请求/客户端连接并将它们插入到 CherryPy 服务器中以获得 HTTP 响应?一种明显的解决方案是在本地端口上或使用 UNIX 域套接字运行 CherryPy 后端的实例,然后前端 Web 服务器与后端建立连接并中继任何请求/响应。显然,由于开销,这并不理想。

我真正想要的是 CherryPy 后端绑定(bind)到任何端口,而是坐在那里等待前端传递客户端的套接字(以及修改后的 HTTP 请求信息) ),此时它会执行正常的 CherryPy 魔法并将请求直接返回给客户端。

我一直在仔细研究 CherryPy 源代码以找到实现此目的的方法,目前正在尝试修改 wsgiserver.CherryPyWSGIServer,但它变得非常复杂,可能不是最好的方法。

最佳答案

您的主应用程序是 wsgi 应用程序吗?如果是这样,你可以写一些 middleware它环绕它并在传递到主应用程序之前处理所有请求。

如果这是可能的,它将避免您必须运行两个网络服务器以及您遇到的所有问题。

关于python - 如何在前端 Web 服务器和运行 CherryPy 的后端之间干净地桥接客户端连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3875490/

相关文章:

python - Docker:使用带有 headless Selenium Chromedriver 的容器

python - 如何返回日期中天数的 CUMSUM - Python

javascript - Cherrypy上接收AJAX数据: 400 Bad Request from Javascript Post Request

python - 如何使用Tensorflow的PTB模型示例?

python - 如何恢复隐藏在 Windows 系统托盘中的 python tkinter 应用程序实例

python - 以同步方式检测节拍和播放 (wav) 文件

multithreading - 有没有办法使用cherrypy的监视器来执行单个任务然后停止?

python - CherryPy 作为 Windows 服务 - 示例

python - CherryPy Ping 数据库连接或重启连接

python - 通过 Python 客户端将大文件流式传输到 CherryPy