与InfoQ之前访问过的SegmentFault一样,徳问,是新涌现的一家编程领域的社交问答网站。通过社群智慧,让互联网成为一个能为专业难题提供高效解答的宝库,这就是德问的使命。
最近,尚兴跃在上面提出一个问题:LNMPA和LNMP相比,真的比LNMP更有效率吗?
LNMPA是在Nginx后面加入了Apache。由Apache来处理一些动态请求。
这种方式让架构变得有点复杂,但优点似乎也好理解:因为Apache比Nginx在动态处理和伪URL上更加成熟。
大家觉得,这样架构合适吗?还是多此一举呢?
在百度百科上,对LNMPA是这样说的:
LNMP或LAMP的劣势
Nginx是一个小巧而高效的Linux下的Web服务器软件,与Apache相比,消耗资源更少,支持的并发连接,更高的效率,反向代理功能效率高、静态文件处理快等,但动态页面处理能力不如Apache等老牌软件成熟。单独使用Nginx处理大量动态页面时容易产生频繁的502错误。
Apache是一款老牌的Web服务器软件,在高并发时对队列的处理比FastCGI更成熟,Apache的mod_php效率比php-cgi更高且更稳定、对伪静态支持好,不需要转换、多用户多站点权限等方面有着更好的效果,单独使用Apache处理静态页面时,对内存的占用远远超过Nginx。
LNMPA的优势
LNMPA使用Nginx作为前端服务器,能够更快、更及时地使用更少的系统资源处理静态页面、js、图片等文件,当客户端请求访问动态页面时,由Nginx反向代理给作为后端服务器的Apache处理,Apache处理完再交予Nginx返回给客户端。
采用LNMPA能够更好的解决LNMP架构中由于PHP-FPM方面产生的502错误,同时能够以很简单的方式提供更安全的多用户多站点环境。
对此问题,毛杭军的评论是:
Nginx + php-fpm 比 Apache + mod_php 更省内存。如果服务器内存不够大,用php-fpm是个不错的选择,虽然有出现502,不过可以通过负载均衡或动静态分离来解决。
LNMPA和LNMP,这二种方式用的人都还挺多的,不过我觉得第二种运维更加简单。我们目前采用LNMP(php-fpm)
原百度系统部技术总监邵辉这样看待这个问题:
LNMPA还是LNMP真没这么重要,在某个共识的基础上,随大流就好。如果非要找个原则,那么就用满足需求的最简单的方案。
现在硬件的性能这么好,价格也便宜,就用LAMP又如何?性能的瓶颈大多数情况下都在业务逻辑和数据处理部分,静态页面没有必要过多考虑,除非你产品的核心内容就是图片、视频,如果是这样,把静态内容分离就好了。
InfoQ的读者们,你们对这个问题怎么看?欢迎在评论中留下你们的观点!
文章来源://wsw.infoq.com/cn/news/2012/07/is-LNMPA-better
- 看不过瘾?点击下面链接!
- 知乎问答精选:豆瓣网的“护城河”是什么?
- 卢松松:我为什么放弃WordPress
- 奢侈的互联网创业
- 开发者坎坷之路:如何在APP Store取得成功
- 百度今天结果 当初早已注定
- 戴志康谈微信二维码运营:学会注重结果