最近很多小伙伴来问我 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 须要配合其余后端用,解决动静申请有劣势,倡议应用前端 Nginx 抗并发,后端 apache 集群,配合起来会更好。
两者优缺点比拟
1.Nginx 配置简洁, Apache 简单 ;Nginx 动态解决性能比 Apache 高 3 倍以上 ;
2.Apache 对 PHP 反对比较简单,Nginx 须要配合其余后端用;Apache 的组件比 Nginx 多 ;
3.apache 是同步多过程模型,一个连贯对应一个过程;Nginx 是异步的,多个连贯 (万级别) 能够对应一个过程;
4.Nginx 解决动态文件好,消耗内存少;动静申请由 apache 去做,Nginx 只适宜动态和反向;
5.Nginx 适宜做前端服务器,负载性能很好;Nginx 自身就是一个反向代理服务器,且反对负载平衡。
以上就是 Nginx 和 apache 的区别及优缺点比拟,可能是还不够全面。总的来说,Nginx 负载平衡、反向代理、解决动态文件劣势。Nginx 解决动态申请的速度高于 apache,同时并发性比拟好,CPU 内存占用低,因而能够应答千万级别的网络申请。