我在某处读到Web应用程序包含Web服务器,应用程序服务器和数据库服务器。这三者有什么区别?
我问了这个问题,因为我记得当我托管一个网站时,我所拥有的只是https
登录网站的控制面板,我将所有文件都放在htdocs
文件夹中。没有三个单独的东西,如Web服务器,应用程序服务器和数据库服务器。
答案 0 :(得分:35)
网络服务器 -
托管您网站的服务器。此服务器将安装Web服务器,如IIS,apache等。
Application Server -
您创建的应用程序正在使用您的数据库,Web服务等的服务器。 此应用程序服务器将托管业务层(包含Web服务),计划作业,Windows服务等。
数据库服务器 -
数据库服务器将托管您的一个或多个数据库,如Oracle,Sql Server,MySql等。
如果您指的是htdocs
,那么它就是一个Web服务器。您使用的数据库必须安装在数据库服务器的不同服务器上。应用程序服务器也可以安装在同一台Web服务器上。
参考 - Deployment Patterns
答案 1 :(得分:30)
这常常令人困惑。
首先 - "服务器"可以指物理的东西(计算机),或逻辑的东西(一种软件)。
Web,应用程序和数据库服务器软件都可以在同一台物理服务器上运行,也可以分布在多台物理机上。大多数大型网站都有多台机器;大多数"消费者"托管包在一个盒子上运行。
逻辑分离如下。
Web服务器处理HTTP(S)请求,并将这些请求传递给"处理程序"。它们具有用于文件请求的内置处理程序 - HTML页面,图像,CSS,JavaScript等。您可以为他们无法管理的请求添加其他处理程序 - 例如应用程序服务器提供的动态页面。 Web服务器实现HTTP规范,并知道如何管理请求和响应头。
应用程序服务器处理创建动态页面的请求。因此,它们不是提供存储在硬盘驱动器上的HTML页面,而是动态生成发送给最终用户的HTML。用于此的常用语言/框架是Java / JSP,.Net(aspx),PHP,Ruby(在Rails上或不在Rails上),Python等。大多数情况下,此应用程序服务器软件在与Web相同的物理服务器计算机上运行服务器
数据库服务器软件是应用程序存储其结构化信息的地方。通常,这意味着自定义软件允许应用程序服务器使用编程语言提出问题,例如用户x在他们的购物篮中有多少项?"例如MySQL,SQL Server,Oracle(所有"关系数据库"),以及MongoDB,Redis和CouchDB(" NoSQL"解决方案)。
数据库软件可以在与Web服务器相同的物理机器上运行,但是当站点需要扩展时,它通常是在不同的物理硬件上托管的第一件事。
答案 2 :(得分:-4)
Web服务器:处理所有HTTP请求的服务器称为Web服务器 在哪里 应用服务器:包括Web服务器的服务,即响应HTTP请求,它也响应业务逻辑,因此不仅限于HTTP协议 例如。游戏服务器,聊天室等。