可以从Flask服务器访问多个后端服务器

我希望有一台客户端可以连接的前端服务器,并根据客户端的不同,将其redirect到另一个可以处理特定客户端需求的Flask应用程序(例如,可以有不同的应用程序)。 我也希望能够添加/删除/重新启动这些后端客户端,只要我不想杀死其他客户端的主服务器。

我希望客户端: – 没有检测到后端有其他服务器(URL应该是同一个主机) – 当他们被redirect到另一个进程时不必重新input他们的凭证

什么是最好的方法?

nginx + gunicorn:部署多个Flask应用程序

为什么不是Flask给我一个交互式debugging器?

用nginx和gunicorn运行烧瓶应用程序

改变静态文件服务从烧瓶nginx?

如何在Ubuntu服务器上使用Supervisor / Nginx / Gunicorn部署Flask应用程序

Docker暴露Flask API的端口

如何防止使用nginx的auth_request指令和烧瓶应用程序看似随机的重新authentication提示?

Python:NGINX + FLASK的uWSGIconfiguration

Flask Windows Apache问题

Flask + Nginx + uWSGI:ImportError:没有名为site的模块

您所描述的前端服务器本质上就是所谓的反向代理 。

反向代理接收来自客户端的请求,并将其转发给客户端无法直接访问的第二行内部服务器。 通常,根据请求URL的某个方面决定将哪个内部服务器转发请求。 例如,您可以为每个内部应用程序分配一个不同的子域。

反向代理接收到内部服务器的响应后,将其转发给客户端,就好像它是自己的响应一样。 内部服务器的存在没有透露给客户。

只要所有的内部服务器共享相同的认证机制和用户数据库,解决认证就很简单。 每个请求将带有认证信息。 这可以是例如由登录请求,直接用户凭证或某种类型的认证令牌设置的会话cookie。 在所有情况下,您都可以在所有应用程序中以相同的方式验证登录。

Nginx是一个流行的Web服务器,可以很好地作为反向代理。

听起来就像你想要一个登录点设置一个服务端点集合的单一登录。

我会考虑将我的所有服务部署为Flask应用程序,而不知道如何构建它们。 他们只知道所有的资源需求都需要某种与之相关的凭证。 您通过这些凭据的方式可能会有所不同。 你可以使用像FAS Flask Auth插件来处理认证。 或者,您可以做一些简单的事情,比如将提供给入口服务的凭证打包到其他服务的后续请求的HTTP标头中。 后续服务中的Flask.request.headers您提供访问正确的头文件以传递给您的身份验证服务的权限。

说到细节,有很多方法可以去,但是我认为这个一般的架构应该适合你。

相关文章

摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠...
摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠...
今天犯了个错:“接口变动,伤筋动骨,除非你确定只有你一个...
Writer :BYSocket(泥沙砖瓦浆木匠)微 博:BYSocket豆 瓣:...
本文目录 线程与多线程 线程的运行与创建 线程的状态 1 线程...