首页 / NGINX / apache和nginx的区别
apache和nginx的区别
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了apache和nginx的区别,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2166字,纯文字阅读大概需要4分钟。
内容图文
![apache和nginx的区别](/upload/InfoBanner/zyjiaocheng/948/92ef2efecfe943cba3ba85edc6a0745b.jpg)
apache / nginx都是web应用服务(web容器)
一:Apache拥有丰富的模块组件支持,稳定性强,BUG少,动态内容处理强。
处理请求方式:异步阻塞型
1:Apache提供一系列多重处理模块,通过这些多重处理模块来使用操作系统的资源,对进程和线程池进行管理,控制处理用户请求。
2:Apache提供了三种多重处理模块:mpm_prefork、mpm_worker、mpm_envent
参考文献:http://www.cnblogs.com/fnng/archive/2012/11/20/2779977.html
https://blog.51cto.com/balich/1743798
1):mpm_prefork:成熟稳定兼容性好,不适合处理高并发
默认的工作模式是Prefork MPM,这种模式采用的是预派生子进程方式,用单独的子进程来处理请求,子进程间互相独立,互不影响,大大的提高了稳定性,每个子进程中只有一个线程,在一个时间点内,只能处理一个请求,进程都会占用内存,所以消耗系统资源过高;
2):mpm_worker:适合处理高并发。但是处理长连接(keep-alive)时比较差,只能等超时释放
Worker MPM是Apche 2.0版本中全新的支持多进程多线程混合模型的MPM,由于使用线程来处理HTTP请求,所以效率非常高,而对系统的开销也相对较低,Worker MPM也是基于多进程的,但是每个进程会生成多个线程,由线程来处理请求,这样可以保证多线程可以获得进程的稳定性;
3):mpm_event:worker升级版,会分配专门的管理线程解决长连接资源浪费
这个是 Apache中最新的模式,在现在版本里的已经是稳定可用的模式。它和 worker模式很像,最大的区别在于,它解决了 keep-alive 场景下 ,长期被占用的线程的资源浪费问题(某些线程因为被keep-alive,挂在那里等待,中间几乎没有请求过来,一直等到超时)。
event MPM中,会有一个专门的线程来管理这些 keep-alive 类型的线程,当有真实请求过来的时候,将请求传递给服务线程,执行完毕后,又允许它释放。这样,一个线程就能处理几个请求了,实现了异步非阻塞。
event MPM在遇到某些不兼容的模块时,会失效,将会回退到worker模式,一个工作线程处理一个请求。官方自带的模块,全部是支持event MPM的。
二:Nginx轻量级,占用资源少,负载均衡,高并发处理强,静态内容处理高效。
处理请求方式:异步非阻塞型
1:Nginx是通过异步的、非阻塞的、事件驱动的方式在实现的。Nginx的工作进程是单线程的,每个线程可以异步的处理大量的用户请求。
三:比较:
nginx比apache:更轻量,占用资源少,抗高并发,处理静态页面性能更好
apahce比nginx:更稳定,模块多,处理动态页面更好
四:核心区别
apache是同步多进程模型,一个连接对应一个进程
nginx是异步的,多个连接(万级别)可以对应一个进程
内容总结
以上是互联网集市为您收集整理的apache和nginx的区别全部内容,希望文章能够帮你解决apache和nginx的区别所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。