Nginx、 Apache、Tomcat对比

image description

Nginx、 Apache、Tomcat对比

Nginx和 Apache ,Tomcat对比!三个行业鼎鼎有名的服务器软件! 程序员可以不知道蔡徐坤,但是没有不知道他们的!

Apache:

Apache 服务器可以运行在几乎所有广泛使用的计算机平台上,Linux、Unix、Windows等,Apache 是世界上使用最为广泛的 Web 服务器。 因为其具有高效、功能强大、超强可扩展性等特点。同时Apache是一个强大的模块化服务器!有着非常强大Apache扩展模块!可以帮助web应用更加的灵活和更加的强大。但是要知道Apache本身是静态资源服务器!只支持静态页面HTML,ASP,PHP,Freemarke访问!也就是说当客户端访问Apache服务器,Apache服务器如实返回给请求的客户端!如果想访问动态页面,例如Java的jsp和servlet等, Apache服务器就无法解析了,Apache服务器很诚实!不会编译执行动态页面结果而直接返回文件,如果需要返回java程序的动态页面结果!需要Tomcat在Apache后台支撑,也就是说由Apache接受请求!转发给Tomcat进行处理!但是相对复杂的配置文件以及模块化学习成本较高,和后期nginx更加轻量级的http服务器出现!让Apache逐步走下神坛!Apache支持功能:1.支持最新的HTTP/1.1通信协议2.拥有简单而强有力的基于文件的配置过程3.支持通用网关接口4.支持基于IP和基于域名的虚拟主机5.支持多种方式的HTTP认证6.集成Perl处理模块7.集成代理服务器模块8.支持实时监视服务器状态和定制服务器日志9.支持服务器端包含指令(SSI)10.支持安全Socket层(SSL)11.提供用户会话过程的跟踪12.支持FastCGI13.通过第三方模块可以支持JavaServletsApache模块化服务器软件,支持相关模块:1. 并发限制模块2. 日志监控模块3. 压缩模块4. 带宽限制模块5. 负载均衡模块6. 图像处理模块

Tomcat:

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,Tomcat 支持JavaEE的动态页面Jsp和Servlet解析。因为Tomcat性能稳定,配置简单而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的JavaWeb 应用服务器。但是要知道他Tomcat和IIS等Web服务器一样,也具有处理HTML等静态页面的功能!但是处理静态资源的性能远没有apache强大!Tomcat服务器属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。Tomcat是Apache 服务器的扩展,但运行时它是独立运行的。Apache和tomcat可以结合使用!正确的搭配姿势,Apache 为HTML等静态页面服务,而Tomcat 实际上运行JSP 页面和Servlet等动态资源!

Nginx:

Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。Nginx一出生就打着处理高并发的口号!强大的并发处理能力也顺应了当今web开发的发展趋势!大用户量大并发处理给用Nginx展示了施展才华的舞台!中国使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。但是我们要知道nginx服务器也不直接处理请求,如果需要访问servlet或者动态的jsp页面!还是需要nginx讲请求转发到tomcat等应用服务器处理请求!如果让一个tomcat面对大量的并发请求会有些应接不暇!我们可以通过nginx和tomcat结合负载均衡配置,大大提高web项目吞吐量,数据距离能力!Nginx起到一个代理服务器的角色(即反向代理),通过轮询,权重,ip分配等方式将请求转发到不同的tomcat处理!多个tomcat共同完成了一件事情,性能大大提升!理解每个作用! 简单总结下对比!Apache,Nginx对比Tomcat: Tomcat好比一个饭店的厨师!当饭店很小的时候!他不仅的做厨师自己还得做服务员!来人吃饭他询问客人吃什么,了解需求以后!还需要去后台做饭,在端给客人,客人走了他还要说句“OK 200”。Tomcat手艺不错,吃饭的人越来越多!Tomcat有点应接不暇!点菜,做菜,端菜。饭店决定,聘请一个服务员,再聘请一个厨师!服务员就是apache或者nginx,他负责接收客人的需求,但是他们不做菜,将菜单转发给厨师!厨师也轻松很了多,只负责做菜,而且还多了一个厨师,他的压力也减轻了一半!Nginx/Apache负责前端接收请求,转发请求。tomcat进行请求处理!Apache和Nginx:因为他们的角色有点重叠!我们从技术层面进行对比!Nginx:epoll 异步非阻塞nginx在开启时,会生成一个master进程,然后,master进程会fork多个worker子进程,最后每个用户的请求由worker的子线程处理。可以配置nginx的upstream实现nginx的反向代理。支持7层负载均衡静态文件、反向代理、前端缓存等处理方便支持高并发连接,每秒最多的并发连接请求理论可以达到 50000 个配置文件简单用线程处理用户请求,而线程是共享内存的,只需要开启少量进程,多个线程就可以共享进程的内存,占用内存小一个进程死掉时,会影响到多个用户的使用,稳定性差Apache:稳定rewrite强大select 同步阻塞一个连接对应一个进程用进程处理用户请求,用MPM(多处理模块)来绑定到网络端口上,接受请求,调度子进程处理请求当用户请求过多时,开启的进程较多,占用内存大,每秒最多的并发连接请求最多不超过 3000 个一个进程死掉时,不会影响其他的用户。

    ArithmeticJia         0         339         Other         10    

David Ramon

ArithmeticJia

www.guanacossj.com

Life is Short,You need Python

Related Posts

You may like these post too

image description

假设你是个妹子......

假设你是个妹子,你有一位男朋友,于此同时你和另外一位男生暧昧不清,比朋友好,又不是恋人。你随时可以甩了现任男友,另外一位马上就能补上。这是冷备份。 假设你是个妹子,同时和两位男性在交往,两位都是你男朋友。并且他们还互不干涉,独立运行。这就是双机热备份。 假设你是个妹子,不安于男朋友给你的

image description

Redis主从同步

##写在最前面: 今天想和大家分享有关 Redis 主从同步(也称「复制」)的内容。 我们知道,当有多台 Redis 服务器时,肯定就有一台主服务器和多台从服务器。一般来说,主服务器进行写操作,从服务器进行读操作。 那么这里有存在一个问题:从服务器如何和主服务器进行数据同步的呢?

Comments on this post

0 comments

Leave a comment

it’s easy to post a comment

image description
image description
image description
image description
image description
image description
image description
image description
image description

Copyright © 2019.Company name All rights reserved.苏ICP备19007197号