作者:k78283381 | 2021-09-01 19:09
最近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进程有没有被跑死的可能,有没有超越配置所限的资源配额
- ……
这里有篇经典的帖子,可以看看:
http://blog.s135.com/nginx_php_v6/ 个人感觉nginx是新潮,尽管apache httpd占用了很大的市场,但nginx凭着其高并发处理的优势会得很很多人的青睐.而且它还是轻量级的,这点也很吸引人. 腾讯的weiyun就用的就是nginx服务器.
nginx和apache 都是web server ,关于你说的nginx 出现502错误,我认为是你的配置问题,nginx 在国内大型的网站上应用的还是非常多的,特点是处理静态文件效率高。
最近nginx呈愈演愈烈之势。
各有所长。我觉得Nginx更cool一些。