我想要一个前端服务器,我的客户端可以在其中连接,并根据客户端(透明地)重定向到另一个 Flask 应用程序来处理特定的客户端需求(例如,可以有不同的应用程序)。
我还希望能够随时添加/删除/重启这些后端客户端,而无需为其他客户端杀死主服务器。
我希望客户:
- 没有检测到后端有其他服务器(URL应该是同一个主机)
- 当他们被重定向到其他进程时不必重新输入他们的凭据
什么是最好的方法?
最佳答案
您描述的前端服务器本质上就是所谓的 reverse proxy。 .
反向代理接收来自客户端的请求并将它们转发到客户端无法直接访问的第二行内部服务器。通常,根据请求 URL 的某些方面来决定将请求转发到哪个内部服务器。例如,您可以为每个内部应用程序分配不同的子域。
反向代理从内部服务器收到响应后,将其转发给客户端,就好像这是它自己的响应一样。内部服务器的存在不会透露给客户端。
解决身份验证很简单,只要您所有的内部服务器共享相同的身份验证机制和用户数据库即可。每个请求都将附带身份验证信息。例如,这可能是由登录请求、直接用户凭据或某种类型的身份验证 token 设置的 session cookie。在所有情况下,您都可以在所有应用程序中以相同的方式验证登录。
Nginx是一种流行的网络服务器,可以很好地用作反向代理。
关于python - 可从 Flask 服务器访问多个后端服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20443260/