0


Nginx与Apache的区别

定义

  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 高 2倍以上 ;

  2.Apache 对 PHP 支持比较简单,Nginx 需要配合其他后端用;Apache 的组件比 Nginx 多 ;

  3.apache是同步多进程模型,一个连接对应一个进程;Nginx是异步的,多个连接(万级别)可以对应一个进程;

  4.Nginx处理静态文件好,耗费内存少;动态请求由apache去做,Nginx只适合静态和反向;

  5.Nginx适合做前端服务器,负载性能很好;Nginx本身就是一个反向代理服务器 ,且支持负载均衡。

总结

两者最核心的区别在于 apache 是同步多进程模型,一个连接对应一个进程,而 nginx 是异步的,多个连接(万级别)可以对应一个进程

一般来说,需要性能的 web 服务,用 nginx 。如果不需要性能只求稳定,更考虑 apache ,后者的各种功能模块实现得比前者,例如 ssl 的模块就比前者好,可配置项多。epoll(freebsd 上是 kqueue ) 网络 IO 模型是 nginx 处理性能高的根本理由,但并不是所有的情况下都是 epoll 大获全胜的,如果本身提供静态服务的就只有寥寥几个文件,apache 的 select 模型或许比 epoll 更高性能。当然,这只是根据网络 IO 模型的原理作的一个假设,真正的应用还是需要实测了再说的。

更为通用的方案是,前端Nginx抗并发,后端apache集群,配合起来会更好。

标签: apache nginx 服务器

本文转载自: https://blog.csdn.net/qq_50665872/article/details/125359870
版权归原作者 初夏_learning 所有, 如有侵权,请联系我们删除。

“Nginx与Apache的区别”的评论:

还没有评论