写点什么

和 LNMP 相比,LNMPA 是否效率更高?

  • 2012-07-17
  • 本文字数:1024 字

    阅读完需:约 3 分钟

与 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 的读者们,你们对这个问题怎么看?欢迎在评论中留下你们的观点!

2012-07-17 21:5611100
用户头像

发布了 479 篇内容, 共 172.3 次阅读, 收获喜欢 52 次。

关注

评论

发布
暂无评论
发现更多内容

将JSON中对于集合的数据,如何解析成对象集合

卢卡多多

集合 Stream<T> 9月日更

翻转未来!钢铁之城重添色彩

白洞计划

狄刚谈区块链:技术上去中心化并不等于管理去中心化

CECBC

【墨天轮专访第四期】华为云GaussDB:发挥生态优势,培养应用型DBA

华为云数据库小助手

GaussDB 交流 华为云数据库 人物访谈

阿里巴巴开源数据库--OceanBase从使用聊到架构剖析

hanaper

Python代码阅读(第27篇):将变量名转换成驼峰形式

Felix

Python 编程 Code Programing 阅读代码

这可能是最细的ArrayList详解了!

程序员阿杜

Java ArrayList

Who is Mavenir?

俞凡

Mavenir

灯塔之上:vivo X70背后的影像进化史

脑极体

全方位解读服务网格(Service Mesh)的背景和概念

xcbeyond

Service Mesh 服务网格 引航计划

【Flutter 专题】50 图解动画小插曲之 Lottie 动画

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 9月日更

这可能是最细的HashMap详解了!

程序员阿杜

Java JVM ArrayList

redis主从实践(一)

风翱

redis 9月日更

【VueRouter 源码学习】第九篇 - router-view 组件的实现

Brave

源码 vue-router 9月日更

NDK-AAudio

Changing Lin

9月日更

北鲲云SaaS平台让生物医学关键环节不再靠“猜”

北鲲云

人才缺口超70万,15所高校新设区块链专业

CECBC

5 个网站将您的前端技能从 1 倍提升到 100 倍

云原生

学习 大前端 全栈

【优化技术专题】「线程间的高性能消息框架」深入浅出Disruptor的使用和原理

码界西柚

Disruptor LinkedBlockingQueue ArrayBlockingQueue 9月日更

什么?语音合成开源代码不会跑,Follow me!

华为云开发者联盟

tensorflow 语音合成 Tacotron2 DeepMind 深度神经网络模型

号外!号外!极客时间出插件了😎

IT蜗壳-Tango

极客时间 9月日更 浏览器插件

模块七作业

seawolflin

架构实战营

redis--zset解析

en

redis Zset 引航计划

【网络安全】Spring框架漏洞总结(二)

网络安全学海

黑客 网络安全 信息安全 WEB安全 漏洞挖掘

14 种编程语言书写关机脚本,真香

梦想橡皮擦

9月日更

RocksDB原理及应用

hanaper

深入理解rtmp(三)之手把手实现握手协议

轻口味

音视频 RTMP 9月日更

详解css中清除浮动的四种方式,float浮动怎么用更为合理

你好bk

最佳实践 方法论 大前端 html/css 语言 & 开发

通过编程训练题来讲讲链表操作

Regan Yue

算法 链表 9月日更

Vite + Vue3 + OpenLayers

德育处主任

大前端 地图 vite Vue3 openlayers

Python——函数正确调用

在即

9月日更

和LNMP相比,LNMPA是否效率更高?_Web框架_郑柯_InfoQ精选文章