56

我在某处读到,Web 应用程序由 Web 服务器、应用程序服务器和数据库服务器组成。这三个有什么区别?


我问这个问题是因为我记得当我托管一个网站时,我所拥有的只是https登录到网站的控制面板,我将所有文件都放在htdocs文件夹中。没有像 Web 服务器、应用程序服务器和数据库服务器这样三个独立的东西。

4

3 回答 3

55

这常常让人感到困惑。

首先-“服务器”可以指物理事物(计算机)或逻辑事物(软件)。

Web、应用程序和数据库服务器软件都可以在同一台物理服务器机器上运行,或者分布在多台物理机器上。大多数大型网站都有多台机器;大多数“消费者”托管包在一个盒子上运行。

逻辑分离如下。

Web 服务器处理 HTTP(S) 请求,并将这些请求传递给“处理程序”。它们具有用于文件请求的内置处理程序 - HTML 页面、图像、CSS、JavaScript 等。您可以为它们无法管理的请求添加额外的处理程序 - 例如由应用程序服务器提供的动态页面。Web 服务器实现 HTTP 规范,并且知道如何管理请求和响应标头。

应用服务器处理创建动态页面的请求。因此,它们不是提供存储在硬盘驱动器上的 HTML 页面,而是动态生成发送给最终用户的 HTML。常用语言/框架有 Java/JSP、.Net (aspx)、PHP、Ruby(是否在 Rails 上)、Python 等。大多数情况下,此应用服务器软件与 Web 运行在同一台物理服务器机器上服务器。

数据库服务器软件是应用程序存储其结构化信息的地方。通常,这意味着定制软件允许应用程序服务器使用编程语言提出诸如“用户 x 在他们的篮子里有多少物品?”之类的问题。例如 MySQL、SQL Server、Oracle(所有“关系数据库”)和 MongoDB、Redis 和 CouchDB(“NoSQL”解决方案)。

数据库软件可以与 Web 服务器在同一台物理机器上运行,但当站点需要扩展时,它通常是托管在单独物理硬件上的第一件事。

于 2016-07-08T08:42:16.217 回答
52

网络服务器 -

托管您的网站的服务器。该服务器将安装 Web 服务器,例如 IIS、apache 等。

应用服务器 -

您创建的应用程序正在使用您的数据库、Web 服务等的服务器。此应用程序服务器将托管业务层(使用 Web 服务包装)、计划作业、Windows 服务等。

数据库服务器 -

数据库服务器将托管您的一个或多个数据库,例如 Oracle、Sql Server、MySql 等。


如果您指的是htdocs那么它是一个 Web 服务器。您使用的数据库必须安装在不同的服务器上,即您的数据库服务器。应用程序服务器也可以安装在同一台 Web 服务器机器上。

在此处输入图像描述

参考 -部署模式

于 2012-10-24T04:08:15.253 回答
-5

Web 服务器:处理所有 HTTP 请求的服务器称为 Web 服务器,其中应用程序服务器:包括 Web 服务器的服务,即响应 HTTP 请求,它也响应业务逻辑,因此不仅限于 HTTP协议例如。游戏服务器、聊天室等

于 2014-05-21T09:00:12.103 回答