Web服务器☞Apache VS Nginx
LZ最近公司有一个项目在Web服务器选型上,在Apache和Nginx之间引起了一些讨论。这两者目前都是业内优秀的web服务器,都实现了HTTP1.1协议。当然,技术从来都是为实现业务而发展的,所以技术选型上,也最好是根据应用场景来决定。接下来,我们对这两种出色的web服务器进行一下对比。
Web服务器,也称为WWW服务器,主要是提供信息浏览服务。应用层使用HTTP协议;HTML文档格式;URL
Apache HTTP Server 是Apache软件基金会的网页服务器,由于其跨平台和安全性。被广泛使用,是最流行的Web服务器端软件之一。快速、可靠并且可通过简单API扩充,将Perl/Python等解释器编译到服务器中。
Nginx(发音同engine x)是一款由俄罗斯程序员Igor Sysoev所开发轻量级的网页服务器、反向代理服务器以及电子邮件(IMAP/POP3)代理服务器。
Apache 和 Nginx相关架构及工作模式,在这里都不多做概述了。可参考学习:https://cloud.tencent.com/developer/news/233604
Apache和Nginx比较
实现上都采用模块化结构设计,都支持通用的语言接口,如PHP、Perl、Python等,同时还支持正向和反向代理、虚拟主机、URL重写、压缩传输、SSL加密传输等。
Web服务器 | Apache | Nginx |
---|---|---|
编译方式 | 动、静态编译 | 静态编译 |
FastCGI | 支持不好 | 非常好 |
处理连接方式 | 不支持epoll | 支持epoll,高性能,低消耗 |
占用空间 | 大 | 小(几百k) |
内存资源占用 | 大 | 小 |
静态处理性能 | 一般 | 高 |
并发 | 一般,阻塞型 | 异步非阻塞 |
模块扩展 | 多 | 一般,社区活跃 |
bug数 | 成熟、bug很少 | 较多 |
rewrite | 强大 | 一般 |
稳定性 | 高 | 非常高 |
安全性 | 好 | 一般 |
高可用性 | 一般,不支持热部署 | Nginx支持热部署,启动速度特别迅速 |
性能 | 一般 | **Nginx是专门为性能优化而开发的,在实现上非常注重效率 ** |
最终方案
由于Apache和Nginx的各自优势,最终决定同时使用这两种。Nginx部署在前,Apache在后。由Nginx做负载均衡和反向代理,以及静态资源文件,Apache处理动态请求。