我希望有一台客户端可以连接的前端服务器,并根据客户端的不同,将其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您提供访问正确的头文件以传递给您的身份验证服务的权限。
说到细节,有很多方法可以去,但是我认为这个一般的架构应该适合你。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。