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

标签 python nginx flask

我想要一个前端服务器,我的客户端可以在其中连接,并根据客户端(透明地)重定向到另一个 Flask 应用程序来处理特定的客户端需求(例如,可以有不同的应用程序)。

我还希望能够随时添加/删除/重启这些后端客户端,而无需为其他客户端杀死主服务器。

我希望客户:

  • 没有检测到后端有其他服务器(URL应该是同一个主机)
  • 当他们被重定向到其他进程时不必重新输入他们的凭据

什么是最好的方法?

最佳答案

您描述的前端服务器本质上就是所谓的 reverse proxy。 .

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

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

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

Nginx是一种流行的网络服务器,可以很好地用作反向代理。

关于python - 可从 Flask 服务器访问多个后端服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20443260/

相关文章:

Python - 分离数据时抛出错误 - 列表索引超出范围

http - nginx 没有那个文件或目录

物理服务器名称的 Nginx 变量

javascript post表单不发送post参数

python-3.x - Python Flask 分页错误 :paginated page returned 404

适用于 Maya 的 Python : Why can't I use a variable in concatination with a wildcard?

Python 修补 __new__ 方法

python - python中的那个名字是什么

amazon-web-services - 在 VPC 中具有公共(public) IP 的公共(public)子网中启动但无法连接到网络的 Nginx 实例

python - 在 Web 服务器上部署 Python 脚本