【发布时间】:2019-07-01 02:34:23
【问题描述】:
这是我试图了解什么是什么的系统场景:
我是乔,一个新手程序员,我破产了。我有一个 Flask 应用程序和一台物理机。由于我破产了,我无法为我的系统的每一部分买另一台机器,因此网络服务器、应用程序和数据库都在我的一台机器上。
我以前从未部署过应用,但我知道服务器可以指代机器或软件。从这里开始,我们将物理机称为Rack。我已经在我的机器上加载了一个 MongoDB 实例,我知道那是 数据库服务器。为了处理 API 请求,我需要在机架上处理 HTTP/S 请求的东西,所以我在其上安装并运行了一个 NGINX 实例,我知道这是 Web 服务器。但是,我的 Web 服务器不知道如何运行该应用程序,所以我做了一些研究并了解了 WSGI,然后发现我需要另一个组件。所以我安装并运行了一个 Gunicorn 实例,我知道这是 WSGI 服务器。
此时我有一个机架,它是 Web 服务器的所在地,用于处理 API 调用(实际上只是充当反向代理并将请求推送到 WSGI 服务器),一个从我的应用程序提供动态内容的 WSGI 服务器和存储应用使用的客户端信息的数据库服务器。
我想我的思路是正确的,然后我的朋友问“你的应用程序服务器在哪里?”
有没有应用服务器是这样配置的?我需要一个吗?
【问题讨论】:
-
您是否了解过应用服务器是什么/做什么?您是否似乎需要其他东西来做您想做的事情?您当前的配置是否足以满足您的使用需求?
-
@wwii 我有,但这似乎是一个非常模棱两可的术语。我显然不能在 Web 服务器上托管应用程序,因为它的工作是处理入站/出站请求。因此,我认为应用程序的公开方式是应用程序服务器。正如 Suraj 所提到的,在这种情况下,Gunicorn + Flask 构成了应用程序服务器。
-
@wwii 因此,简而言之,一个更精致的问题是:每个 Web 应用程序都需要应用程序服务器吗?
标签: python web-applications webserver terminology application-server