精华内容
下载资源
问答
  • 最近在web开发中,对Web 服务器与应用服务器,以及容器的概念一直含糊不清,在查阅了一些资料后,将个人的理解整理如下,如有偏颇,还请大家指正交流哈~ //------------------------------------------------------...

    最近在web开发中,对Web 服务器与应用服务器,以及容器的概念一直含糊不清,在查阅了一些资料后,将个人的理解整理如下,如有偏颇,还请大家指正交流哈~

    //---------------------------------------------------------------------------------------------------------------

    首先,整理下服务器的概念:

     从硬件上来看:服务器就是一台PC机器,只不过配置比较高,如果你愿意,自己手头的笔记本也可以作为服务器来用。

     而从软件角度,根据用途来看,又可以分为:
    web服务器:在PC机器安装web服务软件,提供web服务
    数据库服务器:在PC机器安装了数据库软件,提供数据管理服务
    邮件服务器:在PC机器上安装了可以收发邮件服务软件


    //---------------------------------------------------------------------------------------------------------------

    Web 服务器与应用服务器、以及容器的区别是什么?


    web服务器

     在用户在浏览页面时,客户端(浏览器)和服务器之间的通信使用超文本传输​​协议(HTTP)进行,严格意义上讲,在这个过程中Web服务器只负责处理HTTP协议,其主要功能是存储,处理和传递页面给用户,但只能发送静态页面的内容(最常见的是HTML文档,除了文本内容之外,还可能包含图像,样式表和脚本)。常见的Web服务器包括Nginx,Apache,IIS等。而JSP,ASP,PHP等动态内容需要通过CGI、FastCGI、ISAPI等接口交给其他程序去处理。这个其他程序就是应用服务器。


    应用服务器

     所谓的应用服务器,就是提供应用的服务器,WebLogic,JBoss、Tomcat等都属于应用服务器。然而如今的应用服务器,开始添加越来越多的基于HTTP的通信功能,因此与Web 服务器中间的界限也变得越来越模糊。但是应用服务器的HTTP协议部分仅仅是支持,一般不会做特别优化,所以很少有见Tomcat直接暴露给外面,而是和Nginx、Apache等Web服务器配合,只让Tomcat处理JSP和Servlet部分。

     PS:当与Nginx搭配使用时,Nginx同时作为负责均衡器,实现反向代理,解决大量用户同时访问产生的高负载问题。

    容器

     在Java开发web应用的过程中,由于servlet没main()方法,需要交给另一个java应用才能运行,这个java应用称为容器(Container),Tomcat就是这样的容器,当Web服务器(Apache)得到一个指向servlet请求时,服务器不是把这个请求交给servlet本身,而是交给部署该servlet的容器。要由容器向servlet提供HTTP请求和响应,而且要由容器调用servlet的方法。

     综上,Nginx等Web服务器专注于处理HTTP协议,传递静态页面内容;而Tomcat等服务器,从功能来看,可以看做是一个应用服务器,而从角色来看,可以看做是一个容器。

    展开全文
  • 平时我们经常看到各种容器名称:Servlet容器、WEB容器、Java WEB容器、Java EE容器等,还有各种服务器名称:应用服务器、WEB服务器、WEB应用服务器、JavaWEB应用服务器、Java EE服务器等,这么多相似名称,难以弄...

     平时我们经常看到各种容器名称:Servlet容器、WEB容器、Java WEB容器、Java EE容器等,还有各种服务器名称:应用服务器、WEB服务器、WEB应用服务器、JavaWEB应用服务器、Java EE服务器等,这么多相似名称,难以弄明白它们之间的区别与联系。

           下面我们尝试从它们的定义中,区分它们,找出他们之间的联系,最后通过Apache、nginx、tomcat等举例说明容器以及服务器的联系。

    1、容器与服务器的联系


           如上图,我们先来看下容器与服务器的联系:容器是位于应用程序/组件和服务器平台之间的接口集合,使得应用程序/组件可以方便部署到服务器上运行。

    2、各种容器的区别/联系

    2-1、容器(Containers

           容器通常理解就是装东西的,我们这里说技术上的容器就是可以部署应用程序,并在上面运行的环境

           一般来说,它处理屏蔽了服务器平台的复杂性,使得应用程序在它的基础上可以方便快捷的部署;而对于应用程序来说,它就是位于应用程序和平台之间的接口集合

           容器管理组件的生命周期,向应用程序组件分派请求,并提供与上下文数据(如关于当前请求的信息)的接口。

           注意,容器技术虚拟化(如Docker 应用容器引擎)不在本文关注范围内。

    2-2、Servlet容器

           Servlet:属于Java EE重要技术规范,构建了"接收请求--调用servlet程序处理--返回响应"基本模型。

           Servlet程序:Java提供了开发Servlet程序的API,该API可以说Servlet容器的一部分,它对接应用程序与Servlet容器;

           Servlet容器:就是实现了Servlet技术规范的部署环境,它可以部署运行Servlet程序。

    2-3、Java WEB容器

           WEB容器:可以部署多个WEB应用程序的环境。

           Java WEB容器:实现了Java EE规定的WEB应用技术规范的的部署环境。

           Java EE WEB应用技术规范:Servlet、JSP(JavaServer Pages)、Java WebSocket等。

           所以,完整的Java WEB容器包含Servlet容器。

    2-4、Java EE容器

           Java EE容器:实现了Java EE技术规范的部署环境。

           Java EE技术规范:除了上面说的Servlet、JSP等Java EE WEB应用技术规范,还包括EJB(Enterprise JavaBeans)等许多技术规范。

           所以,完整的Java EE容器包含Java WEB容器(Servlet容器)、EJB容器等。

    3、各种服务器的区别/联系


    3-1、服务器(Server

           服务器是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

           简单来说,服务器是提供某些服务的设备

    3-2、应用服务器

           应用程序:是指为针对使用者的某种应用目的所编写的软件。

           应用服务器:就是运行应用程序,提供应用程序所实现服务的设备

           通常来说,服务器端的应用程序实现各种业务逻辑,应用服务器通过各种协议把这些业务逻辑曝露给客户端的程序。它提供了访问商业逻辑的途径,以供客户端应用程序使用。应用服务器使用此业务逻辑就像调用对象的一个方法一样。

    3-3、WEB服务器

           WEB:现广泛译作网络、互联网等技术领域。表现为三种形式,即超文本(hypertext)、超媒体(hypermedia)、超文本传输协议(HTTP)等。

           WEB服务器:一般指网站服务器,可以向浏览器等WEB客户端提供文档浏览、数据文件下载等WEB服务。

           简单来说,WEB服务器是提供网上信息浏览等WEB服务的设备

    3-4、WEB应用服务器

           上面我们把应用服务器和WEB服务器严格区分:应用服务器通过应用程序接口(通常是网络请求API)把业务逻辑暴露给客户端应用程序。而WEB服务器通过HTTP提供静态内容给浏览器等客户端。

           如果不严格区分,应用服务器包含WEB服务器,因为WEB服务器是WEB服务应用程序实现的。

           WEB应用服务器:结合应用服务器和WEB服务器,可以说,它是带应用服务器的Web服务器,接收HTTP请求后,既能返回页面等静态内容,又能处理业务逻辑返回数据

    3-5、Java EE服务器

           Java EE服务器是实现Java EE技术规范,并提供标准Java EE服务的应用程序服务器。

           Java EE服务器有时称为应用服务器,因为它们允许您向客户端提供应用数据,就像Web服务器向Web浏览器提供Web页面一样。

    4、举例说明容器以及服务器的联系

    4-1ApacheNginxIIS

           Apache、Nginx、IIS是目前最主流的三个Web服务器。

           但是可以用它们来构建WEB应用服务器,通常它们发现一个请求是动态请求,就通过CGI、ISAPI、特殊管道等协议接口调用后面的应用服务器来协同处理请求。如Nginx通过fastCGI模块来调用ZendEngine执行PHP应用来处理PHP请求。

    4-2TomcatJettyWebLogicWebsphereJBoss

           Tomcat、Jetty、WebLogic、Websphere、JBoss都是Java(EE) WEB应用服务器。

           拿最常用的Tomcat来说,Tomcat是Java Servlet,JavaServerPages,Java Expression Language和JavaWebSocket(Java EE)技术的开源实现。

           因为可以通过HTTP提供HTML页面等静态内容的请求访问,所以是一个WEB服务器;

           因为实现了Servlet规范,所以也是一个Servlet容器,可以运行Servlet程序;

           因为可以通过Servlet容器,调用Servlet处理动态请求,所以也是一个应用服务器;

           所以,可以说Tomcat是Java(EE) WEB应用服务器。

    4-3、Nginx + Tomcat的WEB应用服务器(集群)


           一般在实际应用中,先是通过Nginx反向代理服务器接收请求,匹配分离动态/静态请求(动静分离),如果是静态请求,则转发到另外的Nginx WEB服务器上,返回静态内容;如果是动态请求,则转发到后面的Tomcat应用服务器,处理动态请求的业务逻辑。

     

    展开全文
  • Docker解读(什么是容器

    万次阅读 多人点赞 2018-04-20 21:10:40
    容器映像是一个软件的轻量级独立可执行软件包,包含运行它所需的一切:代码,运行时,系统工具,系统库,设置。不管环境如何,集装箱化软件都可以运行相同的Linux和Windows应用程序。容器将软件与其周围环境隔离开来...

    一、What Is A Container
    容器映像是一个软件的轻量级独立可执行软件包,包含运行它所需的一切:代码,运行时,系统工具,系统库,设置。不管环境如何,集装箱化软件都可以运行相同的Linux和Windows应用程序。容器将软件与其周围环境隔离开来,例如开发环境和登台环境之间的差异,并有助于减少在同一基础架构上运行不同软件的团队之间的冲突。
    这里写图片描述

    二、Docker容器的特点
    1.轻量级
    在一台机器上运行的Docker容器共享该机器的操作系统内核; 他们立即开始并使用更少的计算和内存。图像由文件系统层构建并共享公用文件。这最大限度地减少了磁盘使用量,图像下载速度更快。
    2.标准
    Docker容器基于开放标准,可在所有主要Linux发行版,Microsoft Windows以及任何基础架构(包括虚拟机,裸机和云中)上运行。
    3.安全
    Docker容器将应用程序彼此隔离并从底层基础架构中分离出来。Docker提供了最强大的默认隔离功能,可以将应用程序问题限制在一个容器中,而不是整个机器上。

    三、比较容器和虚拟机
    容器和虚拟机具有相似的资源隔离和分配优势,但功能不同,因为容器虚拟化操作系统而不是硬件。容器更便携和高效。
    1.首先看一下容器
    这里写图片描述
    容器是应用程序层的抽象,它将代码和依赖关系打包在一起。多个容器可以在同一台机器上运行,并与其他容器共享操作系统内核,每个容器在用户空间中作为孤立进程运行。容器占用的空间少于虚拟机(容器映像的大小通常为几十MB),并且几乎立即启动。
    2.虚拟机
    这里写图片描述
    虚拟机(VM)是将一台服务器变成多台服务器的物理硬件的抽象。管理程序允许多台虚拟机在单台机器上运行。每个VM都包含一个操作系统的完整副本,一个或多个应用程序,必需的二进制文件和库 - 占用数十GB。VM也可能启动缓慢。

    展开全文
  • 首先,docker究竟是什么玩意呢?我们可以把它看成虚拟机,能在一台服务器上隔离出若干个互不干扰的环境,还能限制资源的使用量。 我们先来瞧一瞧,没有使用docker容器部署应用的时候的场景: 哈二的公司开发了3个...

    近些年来,微服务被捧上了天,不会docker好像都不好意思说自己是后端研发。首先,docker究竟是什么玩意呢?我们可以把它看成虚拟机,能在一台服务器上隔离出若干个互不干扰的环境,还能限制资源的使用量。

    我们先来瞧一瞧,没有使用docker容器部署应用的时候的场景:

    哈二的公司开发了3个基于java8的web应用,然后部署,仅仅需要放三个jar包到服务器。然后突然某一次更新,其中一个服务出了一个严重的BUG,把整个服务器的资源吃光了,导致另外两个服务也无法响应。
    随着哈二公司得力的运营推广,三个应用的用户量激增,单服务器已经无法应对。所以紧急扩展了5台服务器来支撑,这个时候,每次更新就需要操作5台服务器。虽然可以通过自动化脚本来自动部署,但是每次扩容,都带来复杂又不稳定的部署问题。
    固定的扩容已经带来复杂的运维了,然后得力的运营同学还搞起来限时活动,每一次活动时刻,都需要扩充数倍服务器资源。但是每次活动前都需要手动扩充资源,活动结束后释放资源,对于一家普通企业是无法忍受的。
    更可怕的事情还是来了,一个新的应用用了一个新的依赖包,但是该依赖包不兼容以前的版本的依赖包。旧应用又不能短时间迁移过去,新应用又不能降级依赖包。那么只好使用虚拟环境和新开服务器的解决方案了。但是对于分布式系统(简单的说就是多台服务器)来说,只能对不起运维同学了。
    依赖包的问题还没摆平,研发部门又要拥抱微服务了,一个团队用一种语言,java6,7,8都出现了。然后python2,python3,php还各种版本。本来线下好好地,结果一放到服务器就各种错误。可怕的还因为测试环境,开发环境与生产环境有细微的差别,结果在生产环境出现了error,还难以发现。

    这个时候,为了解决研发层面的这些问题,哈二决定使用docker容器部署应用。由于docker容器可以限制cpu和内存的使用,所以一个应用出了问题,仅仅影响到它所属容器。其它容器依旧可以正常响应,问题一解决。

    然后docker支持容器编排,并且有docker swarm,mesos,k8s等跨服务器的编排工具。当配置好docker集群,当应用需要扩展的时候,编排软件自行部署到不同的服务器,自此问题二解决。

    k8s已经支持配置cpu和内存阈值弹性自动伸缩实例,并且docker集群的扩展相对容易,因此问题3也解决。docker天生就是隔离文件的,所以一台服务器可以跑不同的容器,各个容器还可以基于不同的操作系统,什么应用之间依赖包相互影响的问题也解决了。

    并且,开发,测试,生产都是基于同一个镜像,环境问题亦迎刃而解,从起不担心环境问题了。

    哈二的一个朋友听说哈二成功全容器化部署应用解决了很多部署问题,还大大提高了研发效率,也很想把容器化引入自己的研发团队,但是又担心自己这边只是一个小团队,没能力驾驭容器化。对此,哈二提供了以下的建议:

    第一步可以仅仅用docker保持线上和开发环境的一致性,本地代码调试基于的镜像跟线上保持一致,并且对于本地来说还可以基于vagrant打包virtualbox镜像(包含了docker环境的),那么新员工还可以省去了环境的配置。
    第二步,部署应用,以前是上传jar,二进制等来部署的,现在变成基于docker镜像的部署。反正现在云服务商提供了镜像仓库服务,本地打包好上传,服务器直接拉取即可。
    第三步,可以用一下docker compose来管理各个应用的容器部署
    再进一步,可以部署自己的docker swarm集群,在此之前强力建议上CI持续集成来构建,部署应用
    k8s或者mesos这种功能强大的,还是先不要上,当有那个需求的时候,团队已经能有对应的架构师来扛住了

    https://baijiahao.baidu.com/s?id=1617292788361683642&wfr=spider&for=pc

    展开全文
  • 首先 Tomcat是一个servlet容器而不是服务器 ,或者也可以勉强称为软件服务器,他只是个运行在物理服务器上的容器程序。 类比JDBC接口 数据库厂商根据JDBC规范去实现了Connection,Statement接口和PrepareStatement...
  • 什么是JSP容器什么是Web服务器? 看到这些东西,真的是头都大了。不过作为一个Java Web开发方向的从业者,对这些概念还是必须理解透彻的。 JSP引擎与JSP容器指的是同样的东西,他们都指用来统一管理和运行...
  • Web容器Web服务器及常见的Web容器有哪些?  一、引言  首先来理解一下简单的一个请求发送到响应的过程。 首先,客户端,通常是浏览器或者一些应用发送请求到你的服务器地址,比如访问你的Url或者其他的东西。而...
  • 什么是容器云?

    千次阅读 2019-06-24 11:30:10
    作者:宝哥@devops运维 链接:http://t.cn/ECwSNgj容器技术是近几年云行业发展中不可缺少的一环。Docker和k8s的大热极大可能会推动云计算P...
  • web容器是一种服务程序,在服务器一个端口就有一个提供相应服务的程序,而这个程序就是处理从客户端发出的请求。实际上,Web容器是一种服务程序,给处于其中的应用程序组件提供环境,使其直接跟容器中的环境变量交互...
  • web服务器、Web中间件和Web容器的区别

    万次阅读 多人点赞 2018-11-25 20:36:21
    我们经常会被Web服务器、Web容器和Web中间件这三个概念搞混。因为我们常见的很多网站要么是由IIS搭建,要么是由Apache、Tomcat、Ngnix搭建。所以,我们会把他们都叫成是Web服务器,因为他们都提供了Web服务,可以让...
  • Web服务器(软件): Apache http server, 这个它的网址,http://httpd.apache.org/download.cgi#apache24,实现的是HTTP协议,提供的是静态网页服务。 替代者有Nginx Web容器: tomcat, ...
  • Web服务器、Servlet容器和Servlet

    千次阅读 2017-11-14 22:30:35
    想要知道什么是Servlet容器,我们首先要知道什么是Web服务器。 Web服务器使用HTTP协议来传输数据。 最简单的一种情况是,用户在浏览器(客户端,client)中输入一个URL(如,...
  • 使用 VSCODE 连接远程服务器上的容器

    千次阅读 热门讨论 2020-03-11 17:54:03
    自从 VSCODE 出现以来,我就立马从 pycharm 转入了。厌倦了 pycharm 的笨重...有些功能 pycharm 可能自带,但是 VSCODE 就需要自己各种折腾,比如说本文的主题:本地连接远程服务器上的容器。 先说需求:使用 VSCOD...
  • 通俗讲解:什么是容器?为什么我们要使用它?

    万次阅读 多人点赞 2018-12-17 10:35:04
    作为程序员,让我们回忆我们每天从事的熟悉得不能再熟悉的软件开发工作: 在本地搭好开发环境,进行开发工作,...比如代码从程序员的笔记本电脑切换到测试服务器,或者从一台物理服务器切换到公有云/私有云上; 代码...
  • 本文将写关于VScode如何连接远程服务器上已有的容器。 本文操作环境为本地是windows10系统,安装有vscode;远程服务器为ubuntu18.04,主要工作是用来做深度学习训练。 1、创建容器 关于docker和nvidia docker(用来支持...
  • 在JavaEE 开发Web中,我们经常会听到Web服务器(Web Server)、Web容器(Web Container)、应用服务器(Application Server),等容易混淆不好理解名词。本文介绍对三者的理解,以及区别与联系,如果有不正确的地方还请...
  • 最近在看书的过程中,发现了许多有关Web服务器,Web服务器应用,J2EE应用服务器以及容器的相关知识点,为了不引起混淆,将通过该篇博客从概念定义功能原理上对这几个名词做一详细的阐述。 Web服务器什么 Web...
  • 区分Web服务器、HTTP服务器、应用程序服务器

    万次阅读 多人点赞 2018-04-04 16:58:08
    进程听到和看到web服务器、HTTP服务器、应用程序服务器,但一直不知道它们有什么区别,迷惑了好久,今天查看的很多博客,终于算是梳理通了,下面我就来总结一下它们的区别,顺别了解一些服务器。 首先我们要知道web...
  • 服务器集群是什么

    万次阅读 多人点赞 2018-11-22 17:36:48
    随着用户越来越多,访问量越来越大,硬盘、CPU、内存越来越吃紧,一台服务器满足不了这还有文件服务器 数据服务与应用服务分离,我们给应用服务器配置更好的CPU、内存 给数据服务器更好更快的硬盘 缓存提高访问...
  • 新钛云服已为您服务1000天迁移在许多情况下都是不可避免的。硬件升级、数据中心变化、过时的操作系统,所有这些都可能成为迁移的触发点。Docker容器迁移通常是迁移任务的一部分。今天我们将看...
  • tomcat是干什么的? 什么叫web容器以及作用?

    千次阅读 多人点赞 2019-10-30 14:18:58
    tomcat是干什么的? 我家有一台机器,可以把石头变成金子。你快递给我一箱子石头,让我把它们变成一箱子金子再快递给你。 这个机器就是web项目。石头是请求,金子是响应,我家就是服务器。如果你把一箱石头邮到我家...
  • 可以看出,Web容器本身具备了做为一个Web服务器的功能,事实上通常实现Web容器功能的服务器就是一个Web服务器.比如Tomcat , IIS ,Jetty。 主流Web容器 包括Tomcat , IIS ,Jetty 。 还有比较多使用WebSphere,WebLogic...
  • 转载自...1、什么是服务器? 2、Web服务器,Web容器和应用服务器的区别?3、Apache和Tomcat的区别?4、都是服务器,那么我们经常还听到Nginx这样的服务器,和Apache的区别? 1、什么是服务器 ...
  • 什么是 Servlet 容器

    万次阅读 多人点赞 2019-04-30 23:10:08
    1、什么是 Web 服务器? 2、什么是 Servlet 容器? 3、什么是 Servlet? 4、Servlet 容器和 Web 服务器如何处理一个请求的? 5、JVM 的作用 我们简单的谈一谈关于Web服务器,Servlet 容器及其与JVM 的关系。其实...
  • 理解Servlet和Servlet容器、Web服务器等概念

    万次阅读 多人点赞 2017-03-29 21:39:59
    什么是Web应用程序呢?在Sun公司发布的Java Servlet规范中,对Web应用程序做出了如下的定义:“一个Web应用程序是由一组Servlet、HTML页面、类,以及其他的资源组成的运行在Web服务器上的完整的应用程序。它可以在多...
  • 虚拟机和容器什么不同

    千次阅读 多人点赞 2020-07-20 23:00:06
    虚拟机的好处受欢迎的虚拟机提供商什么是容器容器种类集装箱的好处受欢迎的集装箱供应商虚拟机使用与容器使用虚拟机与容器有什么不同 虚拟机和容器都可以充分利用计算机硬件和软件资源。容器是新兴的事物,但是...
  • WEB服务器,容器及tomcat之间的关系

    千次阅读 2018-03-28 18:18:09
    首先一个博客讲的已经挺详细了https://blog.csdn.net/tjiyu/article/details/531481741、什么是WEB服务器Web服务器是指能够为发出请求的浏览器提供文档的程序。服务器是一种被动程序,只有浏览器发出请求的时候才会...
  • 首选我们准备两台服务器 192.168.56.10 192.168.56.11 我们先使用docker在192.168.56.10服务器上部署amsvue项目 注意:config下的index.js文件一定要是如下,如果写的是原本容器的IP地址会出错 具体部署...
  • 重启操作系统后,发现docker 服务未启动,容器也未启动,怎么才能重启后自动启动呢 解决问题两个问题: 1. 重启docker服务 systemctl enable docker.service 2. 重启容器 在运行docker容器时可以加如下参数来保证...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 484,618
精华内容 193,847
关键字:

服务器容器是什么