Web服务器、应用服务器和数据库服务器的区别

60

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


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

3个回答

66

这常常会让人感到困惑。

首先,“服务器”可以指物理设备(一台计算机)或逻辑设备(一个软件部件)。

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

逻辑分离如下所述。

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

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

数据库服务器软件是应用程序存储其结构化信息的地方。通常,这意味着允许应用程序服务器使用编程语言询问类似于“用户x的购物车中有多少个项目?”这样的问题的自定义软件。例如MySQL、SQL Server、Oracle(所有“关系数据库”)以及MongoDB、Redis和CouchDB(“NoSQL”解决方案)。

数据库软件可以在与Web服务器相同的物理机器上运行,但当站点需要扩展时,通常是第一个被放置在独立的物理硬件上的部分。


56

Web服务器 -

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

应用服务器 -

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

数据库服务器 -

数据库服务器将托管一个或多个数据库,如Oracle、SQL Server、MySQL等。


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

enter image description here

参考资料 - 部署模式


它还有一个数据库(MySQL)在其中。 - OneMoreError
1
“database as well MySQL”? MySQL 是一种数据库。我相信您在同一台机器上拥有 Web 服务器和数据库服务器。您也可以将它们放在不同的机器上。 - Parag Meshram
1
请阅读MSDN上的以下文章 - http://msdn.microsoft.com/en-us/library/ee658120.aspx - Parag Meshram

-5

Web服务器:处理所有HTTP请求的服务器称为Web服务器,

应用服务器:除了响应HTTP请求的服务(即Web服务器)外,还响应业务逻辑,因此不仅限于HTTP协议。例如游戏服务器、聊天室等。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接