Apache/Nginx 应该叫做 HTTP Server,即安装后生成httpd服务。

Tomcat 则是一个 Application Server,或者更准确的来说,是一个「Servlet/JSP」应用的容器(Ruby/Python 等其他语言开发的应用也无法直接运行在 Tomcat 上)

**********

一个 HTTP服务器,其关心的是 HTTP 协议层面的传输和访问控制,所以在 Apache/Nginx 上你可以看到代理、负载均衡等功能。

客户端通过 HTTP Server 访问服务器上存储的资源(HTML 文件、图片文件等等)。通过 CGI 技术,也可以将处理过的内容通过 HTTP Server 分发,但是一个 HTTP Server 始终只是把服务器上的文件如实的通过 HTTP 协议传输给客户端。

而应用服务器,则是一个应用执行的容器。它首先需要支持开发语言的 Runtime(对于 Tomcat 来说,就是 Java),保证应用能够在应用服务器上正常运行。其次,需要支持应用相关的规范,例如类库、安全方面的特性。对于 Tomcat 来说,就是需要提供 JSP/Sevlet 运行需要的标准类库、Interface 等。

**********

为了方便,应用服务器往往也会集成 HTTP Server 的功能,但是不如专业的 HTTP Server 那么强大,所以应用服务器往往是运行在 HTTP Server 的背后,执行应用,将动态的内容转化为静态的内容之后,通过 HTTP Server 分发到客户端。

打个比方:

nginx / apache是一辆卡车,上面可以装一些东西如html等(静态的)。但是不能装水(动态的),要装水必须要有桶(容器),Tomcat就是一个桶(装像Java这样的水),而这个桶也可以放在车上,也可以不放在卡车上。

客户端(浏览器):人;

nginx / apache:卡车;

静态页面:毛巾;

tomcat:水桶;

动态页面:水。

人要拿毛巾,可以直接从卡车上拿取;

人要拿水,需要先通过卡车找到车上的桶,才能取得(桶可以不放在车上,把桶单独放在别的地方人也可以取到水);

nginx和apache的区别

1、nginx相对于apache的优点

2、作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎。

3、Nginx 配置简洁, Apache 复杂 ,Nginx 静态处理性能比 Apache 高 3倍以上 ,Apache 对 PHP 支持比较简单,Nginx 需要配合其他后端用 ,Apache 的组件比 Nginx 多 ,现在 Nginx 才是 Web 服务器的首选

##Nginx对动态处理请求弱,这个我想与它本身的实现有关吧,它需要与其他模块结合才能支持PHP等语言,而Apache则支持得较好,如果找到了底层实现的根本原因,欢迎留言指导~

4、最核心的区别在于apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程

nginx、apache和tomcat之间的关系和区别的更多相关文章

  1. JavaWeb - Apache与Tomcat有什么关系和区别

    总结: 1- apache是web服务器,侧重于http server: tomcat是应用(java)服务器,侧重于servlet引擎 2-合作过程详解,请看:JavaWeb - apache和to ...

  2. 【转】Apache与Tomcat有什么关系和区别

    [原文链接:https://www.cnblogs.com/zangdalei/p/8057325.html] Apache 和 Tomcat 都是web网络服务器,两者既有联系又有区别,在进行HTM ...

  3. Apache与Tomcat有什么关系和区别

    Apache 和 Tomcat 都是web网络服务器,两者既有联系又有区别,在进行HTML.PHP.JSP.Perl等开发过程中,需要准确掌握其各自特点,选择最佳的服务器配置. Apache是web服 ...

  4. UIView的alpha、hidden和opaque属性之间的关系和区别[转]

    UIView的alpha.hidden和opaque属性之间的关系和区别 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/ ...

  5. Java基础知识强化98:Apache和Tomcat服务器的联系与区别

    1. Apache 和 Tomcat 都是web网络服务器,两者既有联系又有区别,在进行HTML.PHP.JSP.Perl等开发过程中,需要准确掌握其各自特点,选择最佳的服务器配置. Apache是w ...

  6. apache 与 tomcat、PHP 关系

    Apache:web网络服务器,只支持静态网页,如HTML,C语言开发的 Tomcat:web网络服务器,是apache的扩展,且是个java代码解释器,可脱离apache独立使用,Servlet.J ...

  7. 静态网页、动态网页、apache和tomcat之间区别和联系

    1.静态网页 静态网页:在网站设计中, 纯粹的HTML(标准通用标志语言下的一个应用)格式的网页通常被称为"静态网页",静态网页是标准的HTML文件,它的拓拓展名是.html或者. ...

  8. 进程和线程之间的关系和区别 和 CPU牒

    流程具有一定独立功能的程序关于某个数据集合上的一次执行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立执行的基本单位. 进 ...

  9. UIView的alpha、hidden和opaque属性之间的关系和区别

    转自:http://blog.csdn.net/wzzvictory/article/details/10076323 作者:wangzz 原文地址:http://blog.csdn.net/wzzv ...

随机推荐

  1. 简单docker示例

    创建spring boot工程 工程目录 Controller.java 类说明 主要是接收界面请求,直接返回传入的参数 在启动工程,查看工程运行效果 右键SampleApplication.java ...

  2. Redis06——Redis五大数据类型 list

    list 单键多值 Redis列表是简单的字符串列表,按照插入顺序排序,可以添加左边/右边 底层实际上是一个双向链表,对两端的操作性能好,但是通过索引下标的操作中间节点性能较差  lpush/rpus ...

  3. layui-table 样式

    <!DOCTYPE html> <html> <head> <style> #lay-table { background-color: #fff; c ...

  4. Nexus坑人系列-interface Unknown state L3 Not Ready

    这个情况也容易出现在新使用设备的时候,当设备上没有L3接口模块的时候,这个问题就出现了. 接下来,尤其是如果我们需要运行VPC(并且如果正在运行N5K,N7K等!),则需要在交换机上配置第3层接口. ...

  5. 使用Newtonsoft序列化对象,实现深拷贝

    工作记录 深拷贝:全新创建一个对象,值与复制对象一致,两个对象互不相关,修改一个对象不会影响到另一个对象 浅拷贝:全新创建一个对象,值与复制对象一致,两个对象相关,修改一个对象影响到另一个对象 在工作 ...

  6. PHP array_chunk() 妙用

    定义和用法 array_chunk()函数把一个数组分割为新的数组块. array_chunk(array,size,preserve_keys); 参数 描述 array 必需.规定要使用的数组. ...

  7. springboot的安装与初步使用

    1.引用springboot框架 1.在maven项目底下的pom.xml的中,引用springboot,如下 <?xml version="1.0" encoding=&q ...

  8. jmeter实现SMTP邮件协议压测

    实现目的 通过jmeter的SMTP取样器,调用SMTP协议,批量进行邮件的发送,已达到压测的目的. 脚本实现 User Defined Variables定义用户变量 编辑SMTP Sampler取 ...

  9. winform BackgroundWorker 的用法 - 异步执行

    1.设置 backgroundWorker1.WorkerReportsProgress = true; backgroundWorker1.WorkerSupportsCancellation = ...

  10. queue 官方运用

    import threading import random,time import queue q_init = queue.Queue(maxsize=5) import logging logg ...