写点什么

和 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:5611282
用户头像

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

关注

评论

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

高并发请求下 TiDB 集群的业务无损升级

TiDB 社区干货传送门

TiDB Binlog 支持 Oracle 目标库功能用户手册

TiDB 社区干货传送门

迁移

5分钟搞定 MySQL 到 TiDB 的数据同步

TiDB 社区干货传送门

实践案例

TiDB在个推的落地实践 | 解决热点难题,提升性能超千倍

TiDB 社区干货传送门

性能调优

JOIN 查询的执行计划 比较

TiDB 社区干货传送门

性能调优 TiDB 底层架构

TiDB 如何在 LVS FULL NAT 模式下显示客户端真实 IP

TiDB 社区干货传送门

实践案例

TiDB 悲观事务模式和Mysql的表象区别

TiDB 社区干货传送门

dm-V1.0.5使用汇总

TiDB 社区干货传送门

管理与运维

关于TiDB数据脱敏的一些想法

TiDB 社区干货传送门

实践案例

探索TiDB Lightning源码来解决发现的bug

TiDB 社区干货传送门

TiDB 底层架构

TiSpark数据写入过程解析(源码解析)

TiDB 社区干货传送门

TiDB 底层架构

TiCDC 4.0.15 初体验

TiDB 社区干货传送门

实践案例

骏彩竞猜分布式解决方案之路

TiDB 社区干货传送门

安装 & 部署

一言难尽的Prometheus监控实践

TiDB 社区干货传送门

实践案例

传统行业数据架构发展变化

TiDB 社区干货传送门

数据库架构选型

大事务的处理方式对比

TiDB 社区干货传送门

实践案例

TiDB学习之路

TiDB 社区干货传送门

实践案例

前缀索引在特殊场景下的优化尝试

TiDB 社区干货传送门

实践案例 TiDB 底层架构

记一次TiDB的临时救场

TiDB 社区干货传送门

实践案例

使用 TiUP 安装部署 TiDB 集群实验流程

TiDB 社区干货传送门

版本升级 集群管理 管理与运维 安装 & 部署 扩/缩容

TiSpark On Kubernetes实践

TiDB 社区干货传送门

实践案例

TiDB体系结构

TiDB 社区干货传送门

TiDB 底层架构

TiDB监控Prometheus磁盘内存问题

TiDB 社区干货传送门

故障排查/诊断

TiDB BR 备份至 MinIO S3 实战

TiDB 社区干货传送门

管理与运维

【考试指南】TiDB 5.0认证指南之PCTA PCTP

TiDB 社区干货传送门

TiDB 底层架构

TiDB 运维基础操作脑图

TiDB 社区干货传送门

TiDB 元信息管理方式

TiDB 社区干货传送门

TiDB 底层架构

TiDB 在 Cisco Webex 架构中的部署和应用

TiDB 社区干货传送门

TiDB 如何获取集群创建时间

TiDB 社区干货传送门

实践案例 TiDB 底层架构

使用SPM固定执行计划

TiDB 社区干货传送门

记一次简单的Oracle离线数据迁移至TiDB过程

TiDB 社区干货传送门

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