当前位置: 首页 > 面试题库 >

使用Flask代理到另一个Web服务

公良运锋
2023-03-14
问题内容

我想将对Flask应用程序发出的请求代理到计算机上本地运行的另一个Web服务。我宁愿使用Flask而不是使用更高级别的Nginx实例,以便我们可以重用内置在应用程序中的现有身份验证系统。我们越能保持“单一登录”越好。

是否有现有的模块或其他代码可以执行此操作?尝试将Flask应用程序桥接到诸如httplib或urllib之类的东西很麻烦。


问题答案:

我在基于Werkzeug的应用程序中使用httplib实现了代理的实现(如您的情况,我需要使用Webapp的身份验证和授权)。

尽管Flask文档未说明如何访问HTTP标头,但是您可以使用request.headers(请参阅Werkzeug文档)。如果您不需要修改响应,并且代理应用使用的标头是可预测的,则代理是很简单的。

请注意,如果您不需要修改响应,则应使用werkzeug.wsgi.wrap_file来包装httplib的响应流。这样就可以将打开的操作系统级别的文件描述符传递给HTTP服务器,以实现最佳性能。



 类似资料:
  • 谁能帮助我如何创建一个新的代理人,并将其链接到旧的,以治愈人民? 多谢!

  • 我有一个Nginx服务器托管一个web应用程序,当直接访问时工作正常。其配置如下 现在我必须从另一个Nginx服务器上服务这个应用程序,所以我设置了如下所示的反向代理 当我从server2访问应用程序时,我会得到如下错误,例如,当我访问HTTP:server2.com/app/css/app.css时 [error]6601#0:*1 open()“/data/www/app/css/app.cs

  • 问题内容: 有没有一种方法可以将Flask请求对象注入到其他Flask应用中。这就是我想要做的: 我正在尝试使用Google Cloud Functions,这是由云运行时调用的函数。它接收一个作为参数,然后我要通过自己的一组路由进行处理。 我尝试了以下操作,但不起作用: 对于所有请求,这将返回404错误。 编辑: 实现的简单方法如下: 这本质上要求我自己编写路由匹配逻辑。我想知道是否有一种避免这

  • 问题内容: 如何在Gin Gonic Web Golang框架中将代理路由的一些路径反向请求到另一个后端 是否有一种方法可以直接在Handle函数中进行转发,如下所示? 问题答案: 您可以使用标准库httputil.ReverseProxy进行此操作。 我还没有找到自己使用gin的理由,所以我尽可能地坚持使用stdlib。但是我相信您可以包装此ReverseProxy处理程序,以便能够与您的gin

  • 我有一个Spring Boot rest服务,它将调用另一个web服务(用.NET编写),但它需要安装web服务的服务器的公共证书。