【问题标题】:Difference between web server, application server and database serverWeb服务器、应用程序服务器和数据库服务器之间的区别
【发布时间】:2012-10-24 04:02:01
【问题描述】:

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


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

【问题讨论】:

    标签: apache web-applications webserver web-hosting htdocs


    【解决方案1】:

    这经常让人困惑。

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

    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”解决方案)。

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

    【讨论】:

      【解决方案2】:

      网络服务器 -

      托管您网站的服务器。此服务器将安装 IIS、apache 等 Web 服务器。

      应用服务器 -

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

      数据库服务器 -

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


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

      参考 - Deployment Patterns

      【讨论】:

      • 它还有一个数据库(MySQL)。
      • database as well MySQL? MySQL是一个数据库。我相信您在同一台机器上拥有 Web 服务器和数据库服务器。您也可以将它们放在不同的机器上。
      • 阅读 MSDN 上的以下文章 - msdn.microsoft.com/en-us/library/ee658120.aspx
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2012-09-23
        • 2011-10-07
        • 2017-09-13
        • 1970-01-01
        • 1970-01-01
        • 2010-10-30
        • 2013-02-03
        • 2011-04-26
        相关资源
        最近更新 更多