最近很多小伙伴来问我Nginx和Apache的区别,这个问题用三言两语也很难解释,于是整理出了这一篇文章与大家共享。除了Nginx和Apache的区别,还比较了各自的优缺点。这是我自学Nginx和工作经验所得,希望能对大家有帮助。
定义
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页,它是一个模块化的服务器,可以运行在几乎所有广泛使用的计算机平台上。其属于应用服务器。
Apache支持模块多,性能稳定,Apache本身是静态解析,适合静态HTML、图片等,但可以通过扩展脚本、模块等支持动态页面等。
Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“Engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个 IMAP/POP3/SMTP 代理服务器。其特点是占有内存少、并发能力强,易于开发,部署方便。Nginx支持多语言通用服务器。
Nginx和Apache的区别
Apache是同步多进程模型,一个连接对应一个进程,而Nginx是异步的,多个连接(万级别)可以对应一个进程。
Nginx轻量级,抗并发,处理静态文件好。
Apache超稳定,对PHP支持比较简单,需要配合其他后端用,处理动态请求有优势,建议使用前端Nginx抗并发,后端Apache集群,配合起来会更好。
两者优缺点比较
1.Nginx配置简洁, Apache复杂 ;Nginx静态处理性能比Apache高3倍以上 ;
2.Apache对PHP支持比较简单,需要配合其他后端用;Apache的组件比Nginx多;
3.Apache是同步多进程模型,一个连接对应一个进程;Nginx是异步的,多个连接(万级别)可以对应一个进程;
4.Nginx处理静态文件好,耗费内存少;动态请求由Apache去做,Nginx只适合静态和反向;
5.Nginx适合做前端服务器,负载性能很好;Nginx本身就是一个反向代理服务器,且支持负载均衡。