欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

Apache是否优于Nginx?

程序员文章站 2022-04-22 22:20:16
...
最近Nginx总是502,想改成Apache。

回复内容:

Apache是否优于Nginx ?
这个没有谁比谁优秀,只有找到合适自己的才是最好的,出现502错误,先从服务器着手查找原因,再从所使用的软件着手,祝好运。 匿名兄弟回答:“Apache是这个称呼不对,准确的说应该是Apache httpd……”。
其实,连apache网站都存在这个情况。例如官网Q&A页面“What is Apache?”说的就是httpd. wiki.apache.org/httpd/F
其实这是旧名称的延续。十年前,我使用时记得还叫apache. 大概后来项目多了,为了避免混淆。就开始刻意区分了。 电动车是否优于摩托车 Nginx可以和apache一起用的。
nginx是通过fastcgi调用php-fpm来执行php,动态页面如何都和他没关系。 没有谁优于谁,都有各自的长处和短板。
Apache是这个称呼不对,准确的说应该是Apache httpd,因为Apache是一个软件基金会,下面有无数的产品。
Httpd是老牌的Web Server,LAMP里面,A就是代表它,尽管现在因为有了Nginx所以诞生了的LNMP。

httpd的老牌就意味着它诞生的时代比较久远,在当时互联网服务还比较简单,都集中在静态页面和并不算丰富的动态交互,凭借着出色的设计和强大的社区(这是重点)使其成为首选服务器。但是随着网络的不断发展,高并发的需求开始显现,httpd的负载能力就备受考验,而它之所以低效,也是由于架构设计之初并没有预料到这样的情况,采用了传统的select模型,导致现在已经积重难返,重新设计无异于脱胎换骨。

后期之秀Nginx则是顺应互联网发展所诞生的轻量的server,它采用的是全新的网络架构epoll和kqueue模型,在高并发方面基本上甩Apache几条街。但它也存在不足,至少就功能的丰富程度显然还是比不上Apache,尽管现在社区也很火热,但也只是近几年才逐渐被大家认识和接受,并且它并不是万能到可以解决所有问题的。

如何选用它们?
假设你用的是PHP,似乎也只有PHP和这俩是黄金搭档,如果是Java,自然就用tomcat了,所以我们认为你是在使用PHP。
PHP有几种方式和web server整合起来,module(apache的模块),cgi模式,fastcgi模式(更高效的cgi)。从实际运行效果来看,fastcgi是最优选择。
就配置而言,Apache要配置fastcgi很麻烦,而且由于fastcgi的特点,使用Apache来做代理显然不是什么上选,哪怕你用lighthttpd之类的,也都优于Apache。
而Nginx则是极佳的反向代理服务器,它和fastcgi是很好的组合。
如此一来,结果显而易见,那就是Nginx秒掉了Apache。

所以似乎又打击题主了。

最后,还是匿了吧,技术问题一个回答错误就要被喷啊,低调,低调。 如果单纯是这个问题,不建议更换,应该找到问题的根源予以解决。
当前nginx的流行程度已经很高,很多大型网站都有使用,我们公司的项目都是nginx作为webserver,不存在这类问题。
nginx出现502应该查找是否网站程序或者配置问题,换成apache不一定能解决你的问题。
  • php-fpm配置进程数或其他资源是否足够
  • 检查PHP程序,fpm进程有没有被跑死的可能,有没有超越配置所限的资源配额
  • ……
这里有篇经典的帖子,可以看看:blog.s135.com/nginx_php 个人感觉nginx是新潮,尽管apache httpd占用了很大的市场,但nginx凭着其高并发处理的优势会得很很多人的青睐.而且它还是轻量级的,这点也很吸引人. 腾讯的weiyun就用的就是nginx服务器. nginx和apache 都是web server ,关于你说的nginx 出现502错误,我认为是你的配置问题,nginx 在国内大型的网站上应用的还是非常多的,特点是处理静态文件效率高。 最近nginx呈愈演愈烈之势。 各有所长。我觉得Nginx更cool一些。
相关标签: Apache Nginx 502