设为首页 收藏本站
查看: 881|回复: 0

[经验分享] nginx与apache的区别及优缺点比较

[复制链接]

尚未签到

发表于 2018-11-19 13:15:51 | 显示全部楼层 |阅读模式
  本文绝大多数资料都是摘抄网上,自己做的只就是整合网上零散的资源然后加上自己的一点见解。简单的说apache httpd和nginx都是web服务器,但两者适应的场景不同,也就是两者专注于解决不同的问题。apache httpd:稳定、对动态请求处理强,但同时高并发时性能较弱,耗费资源多。nginx:高并发处理能力强、擅长处理静态请求、反向代理、均衡负载。
       1、nginx相对于apache的优点:轻量级,同样起web服务,比apache占用更少的内存及资源,并发能力强,nginx处理请求是异步非阻塞模式,而apache则是同步阻塞模式,在高并发下nginx能保持低资源低消耗高性能,高度模块化的设计,编写模块相对简单,社区活跃,高性能模块出品迅速。

             apche相对于nginx的优点:rewrite能力比nginx强大,模块超多,基本想到的都可以找到。apache的bug相比于nginx较少,比较稳定。一般来说,需要性能的web 服务,用nginx 。如果不需要性能只求稳定,那就用apache。
  同步、异步、阻塞和非阻塞区别:
  (1)同步:所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。

  (2)异步:异步的概念和同步相对。当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。
  (3)阻塞:阻塞调用是指调用结果返回之前,当前线程会被挂起。函数只有在得到结果之后才会返回。有人也许会把阻塞调用和同步调用等同起来,实际上它们是不同的。对于同步调用来说,很多时候当前线程还是激活的,只是从逻辑上当前函数没有返回而已。
  (4)非阻塞:非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。
         2、nginx配置简单,apache配置复杂,nginx静态处理性能比apache高3倍以上,但对动态处理请求弱。apache对PHP支持比较简单,nginx需要配合其他后端用,apache的组件比nginx多,现在nginx才是web服务器的首选。

         3、最核心的区别在于apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程。nginx与apache两者处理请求的模型不同,直接导致了两点:(1) nginx的抗并发能力强很多。(2)nginx对资源需求更少。
         4、nginx与apache结合使用。nginx的负载能力强,静态处理性能高,可以用作前端负责进行抗并发、负载均衡、做静态文件缓存,apache相对稳定,可用作后端处理动态请求。
          5、nginx处理动态请求是鸡肋,一般动态请求要apache去做,nginx只适合静态和反向。
         6、nginx优于apache的主要两点:1.nginx本身就是一个反向代理服务器 2.nginx支持7层负载均衡;其他的当然,nginx可能会比apache支持更高的并发,但是根据NetCraft的统计,2011年4月的统计数据,apache依然占有62.71%,而Nginx是7.35%,因此总得来说,apache依然是大部分公司的首选。
          7、nginx配置文件简洁,正则配置让很多事情变得简单,运行效率高,占用资源少,代理功能强大,很适合做前端响应服务器。
           8、作为 Web 服务器:相比 apache,nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎。在高连接并发的情况下,nginx是apache服务器不错的替代品: nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一. 能够支持高达 50,000 个并发连接数的响应, 感谢nginx为我们选择了 epoll and kqueue 作为开发模型。nginx作为负载均衡服务器: Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务, 也可以支持作为 HTTP代理 服务器对外进行服务。nginx采用C进行编写, 不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多.作为邮件代理服务器: nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器), Last.fm 描述了成功并且美妙的使用经验。nginx 是一个安装非常的简单 , 配置文件非常简洁(还能够支持perl语法), Bugs 非常少的服务器: Nginx 启动特别容易, 并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-637040-1-1.html 上篇帖子: web服务之Apache实现的https访问 下篇帖子: Apache Prefork、Worker和Event三种MPM详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表