昨天看了一篇文章,说是ngxin做前端apache做后端, 这样就能发挥出两个服务器的最大优势, 感觉说的也很有道理,为何这种配置在市场是看的不多?

rwrqrwr 发布于 2016/08/12 11:47
阅读 810
收藏 0
昨天看了一篇文章,说是ngxin做前端apache做后端, 这样就能发挥出两个服务器的最大优势, 感觉说的也很有道理,为何这种配置在市场是看的不多?
加载中
2
南湖船老大
南湖船老大

年轻人,看问题要带着历史的,发展的眼光来看。

ngxin做前端apache做后端,这是PHP里常见的说法。Nginx进入中国,并且火起来的时候,大概在2009年这个样子。那个时候,想要跑PHP只有apache这一种服务器(当然,lighttpd出现的历史更早,但使用的人真的很少)。我还忘了IIS,哈哈

Nginx进入中国后,很快火起来了。那个时候PHP的fastcgi还很不稳定,虽然PHP 5.2的时候,就出现了FPM,但那时候FPM还不是官方模块,不够稳定。直到PHP 5.3,FPM模块才成为PHP的官方SAPI模块,逐渐稳定下来。在PHP的fastcgi还不稳定的时候,apache的mod模式却是相对稳定的。所以就形成了Apache跑PHP,nginx在前端跑静态文件这种组合。其实Apache也是可以跑CGI模式的,同样很不稳定,这个我是玩过的。

时间来到2012年,PHP5.4发布了也开始流行了,FPM已经足够稳定了性能也提升了,也就不需要Apache了。

结论:要不,你看看你看的那篇文章的发布日期?

eechen
eechen
其实还有个原因,就是Apache走的路线比如2.4默认的event MPM是一个线程化的MPM,这跟PHP走多进程的路线不合,所以PHP源代码主干才快速吸收了多进程架构的PHP-FPM.
开源观光团团长
开源观光团团长
补充一下船老大的,这种模式现在依然很常见,使用第三方PHP程序或者虚拟主机商,此种方案一般是为了适应程序只提供了apache伪静态配置的。
rwrqrwr
rwrqrwr
是的, 刚刚看了那个博客的日期, 是2009年的。我去, 原来都快7年前了
南湖船老大
南湖船老大
回复 @ping_xu : 我只能说建议你看看你看的那篇文章的发布日期。。
rwrqrwr
rwrqrwr
哦哦, 你的意思是 其实现在ngxin跑php 也是达到apache 跑php稳定的程度了, 所以可以直接使用ngxin了么?
1
张亦俊
张亦俊

用apache去当php的容器跟直接用php-fpm比又没有明显的好处,反倒是有运维复杂度变高这个明显的坏处

eechen
eechen
回复 @Mooke : 把里面的CentOS换成Ubuntu就是主流了.
Mooke
Mooke
赞同。apache显得笨重。主流搭建方案:centos + nginx + php-fpm + mysql
1
eechen
eechen
因为PHP从5.3开始就可以用PHP-FPM了.
有了PHP-FPM这个PHP的FastCGI服务,就可以直接跟Nginx的fastcgi_pass/upstream配合了.
PHP-FPM只负责处理PHP请求,Nginx处理所有静态资源.
PHP-FPM有很多PHP功能是Apache所没有的,比如任意超时杀request_terminate_timeout,比如隔离的进程池,比如运行状态信息pm = static,比如定量重启pm.max_requests,比如慢日志记录slowlog.
http://my.oschina.net/eechen/blog/541139

护目评论
护目评论
我们要允许你这种混了四五年OSC依然是个复制粘贴的菜鸟PHPer自娱自乐找优越感的啦。不过那么多年过去了,@eechen 你也好歹长进些吧,你看看那些曾经入门时被你唬住的小朋友们,如今多数都已独当一面了,而你还在那四线城镇里自鸣得意…… via DB
护目评论
护目评论
回复 @eechen : 不是什么东西都能粗略的呀,你这代码,真要拿来用的时候,那多出来的数据会加入你后续排序和计算欧几里得距离的过程,影响性能的呀。而且这种影响是毫无意义的浪费,要是写php都像你这么浪费,谁还敢用php. --via 张亦俊
护目评论
护目评论
我们要允许你这种混了四五年OSC依然是个复制粘贴的菜鸟PHPer自娱自乐找优越感的啦。不过那么多年过去了,@eechen 你也好歹长进些吧,你看看那些曾经入门时被你唬住的小朋友们,如今多数都已独当一面了,而你还在那四线城镇里自鸣得意…… via DB
护目评论
护目评论
osc的大神 @eechen 和他的盗版在知乎惨遭吊打,osc的小伙伴赶紧过去支援,传送门:https://www.zhihu.com/question/48350013 via falconchen
eechen
eechen
回复 @ping_xu : 别给我扣帽子.1995年6月8日,丹麦人Rasmus Lerdorf在新闻组comp.infosystems宣布发布了Personal Home Page Tools version 1.0,一组C语言开发的CGI程序.记住了,丹麦人Rasmus Lerdorf才是PHP之父.
下一页
0
Edwyn王
Edwyn王

nginx 和 alache都是 web服务器,功能上严格来说都是做你说的“前端”的。

另外,web服务器基础功能就是对于静态页面的发布,但是我们部署一个系统的时候,一般肯定要有动态的内容,那么这些动态的内容来源就是你说的“后端”,显然apache是搞不定这些动态东西的,还是要依靠tomcat,iis,jboss等这些轻量或者重量级的应用服务器来做。

另外,他们各自也有不同的优势,但是总体来说功能重合度高,分作前后端时该有的功能不具备,基本玩不转!

rwrqrwr
rwrqrwr
回复 @Edwyn王 : 嗯啊,其实你回答的很好, 但是我一开始没理解你的意思, 现在懂了, 谢谢大神
Edwyn王
Edwyn王
回复 @ping_xu : 你说的apache相对稳定,这一点不敢苟同,不知道有没有证据支持?据我所知nginx的稳定性是历史级别的。 另外,你说的这些,其实直接没有apache参与的话,貌似也没有任何影响啊,那为什么要加个apache呢。。。多复杂?成本会提高多少?分布式的情况下,加一个中转,一个请求时间消耗在网络层就几ms,完全没必要吧。
rwrqrwr
rwrqrwr
哦,我的意思是 不管是ngxin 还是apche 都是可以做web服务器的, 而ngxin有一个优势就是可以反向代理的功能,同时占内存比较小, 而apache相对稳定,,, 。。 竟然如此, 其实完全可以把二者配置在一起, 客户端直接访问的是ngxin服务器, 由这台服务器做反向代理,处理动态的数据还是用apche服务器来处理的, 这种模式是不是更好点? 为何在市场上见得并不多?
0
公孙二狗
公孙二狗

Nginx 做负载均很和反向代理,静态文件服务器,Apache 做 Web 服务器处理 PHP

公孙二狗
公孙二狗
回复 @ping_xu : Nginx 的负载均衡和静态文件的缓存比 Apache Server 强,Apache Server 的 PHP 比 Nginx 强
rwrqrwr
rwrqrwr
对的,为何这种架构 我感觉是市面上见得并不多啊?
0
tinshen
tinshen

要看应用场景。

不然都是瞎说。。。

0
abcijkxyz
abcijkxyz
Nginx 搞定一切喜欢这种配置方式   受到了Lighttpd 影响
abcijkxyz
abcijkxyz
回复 @eechen : 不想和你说话
eechen
eechen
德国佬的Lighttpd被俄国人的Nginx压着打呀.
返回顶部
顶部