Apache是否优于Nginx?
程序员文章站
2022-04-22 22:20:16
...
最近Nginx总是502,想改成Apache。
这个没有谁比谁优秀,只有找到合适自己的才是最好的,出现502错误,先从服务器着手查找原因,再从所使用的软件着手,祝好运。 匿名兄弟回答:“Apache是这个称呼不对,准确的说应该是Apache httpd……”。
其实,连apache网站都存在这个情况。例如官网Q&A页面“What is Apache?”说的就是httpd. http://wiki.apache.org/httpd/FAQ#What_is_Apache.3F
其实这是旧名称的延续。十年前,我使用时记得还叫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不一定能解决你的问题。
回复内容:
Apache是否优于Nginx ?这个没有谁比谁优秀,只有找到合适自己的才是最好的,出现502错误,先从服务器着手查找原因,再从所使用的软件着手,祝好运。 匿名兄弟回答:“Apache是这个称呼不对,准确的说应该是Apache httpd……”。
其实,连apache网站都存在这个情况。例如官网Q&A页面“What is Apache?”说的就是httpd. http://wiki.apache.org/httpd/FAQ#What_is_Apache.3F
其实这是旧名称的延续。十年前,我使用时记得还叫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进程有没有被跑死的可能,有没有超越配置所限的资源配额
- ……
下一篇: 如何在多个源代码文件中 找到某段代码?
推荐阅读
-
隐藏Nginx或Apache以及PHP的版本号的方法,nginxapache
-
深入Apache与Nginx的优缺点比较详解_PHP
-
APACHE+PHP vs NGINX+PHP 性能评测(译文)
-
Nginx 0.7.x + PHP 5.2.9(FastCGI)搭建胜过Apache十倍的Web服
-
nginx 错误记录 nginx apache nginx php nginx rewrite
-
让Apache 和nginx支持跨域访问
-
nginx+apache+mysql+php+memcached+squid集群web环境 (1/6)_PHP教程
-
linux中查看nginx、apache、php、mysql配置文件路径实例
-
linux查看nginx、apache、php、php-fpm、mysql及配置项所在目录
-
nginx,apache开启文件目录浏览功能