nginx与apache的区别

说实话,之前我对 Nginx 和 Apache 想了很多。
我们来谈谈建筑。
Nginx 使用异步非阻塞 epoll/kqueue 模型,该模型在并发连接上效果最好。
之前我正在做一个电子商务项目。
我后台使用Nginx处理8 000个并发实例,内存才达到1 .2 G。
Apache 在同步多个进程方面是诚实和务实的。
每一段关系都有一个过程,这个过程简单而原始。
但如果搭建一个平台系统,使用Apache来处理动态PHP请求,那么高端控制台下的进程堆可能会很可怕。
当我运行一个 1 00 万用户的站点时,Apache 进程的数量达到了 3 00 多个,CPU 几乎被烧毁了。

有趣的是,从实用的角度来看,Nginx非常擅长处理静态资源。
我在上传 1 M 图像时遇到问题。
Nginx的响应时间稳定在5 0毫秒,Apache应该运行2 00毫秒。
当谈论数字时,这种差距尤其明显。
但 Apache 擅长像 PHP 一样进行动态处理。
我已经搭建了一个PHP项目的环境,需要使用Nginx直接处理PHP。
结果这个问题问的很混乱。
后来我添加了PHP-FPM反向代理来解决这个问题。
这意味着什么? Nginx 被证明作为静态代理是强大的,但动态请求必须依赖更复杂的驱动程序,例如 Apache。
Nginx 在配置方面确实存在不足。
一行常规规则删除了十多个 Apache 配置。
我正在写 Nginx 配置。
进行任何更改后,我将使用 nginx -t 命令测试它们,如果有问题我会立即知道。
阿帕奇非常复杂。
上次给客户端配置SSL证书,花了很长时间才改配置文件。
当我重新启动服务时,我感到很困惑,不得不尝试每个模块。
不过,Apache的模块生态系统确实很丰富,包括安全模块、日志模块等等,这是Nginx无法比拟的。

最后我们来谈谈生态。
毕竟,Apache是​​许多主要制造商使用的长期服务器,并且拥有深厚的技术专业知识。
但Nginx近年来变得非常流行,尤其是在高并发场景下。
我遇到过极端的情况,比如一个只托管几张图片的小网站。
使用 Apache 的选择模型Nginx 效率更高。
这很有趣,说明你记不住哪一个更好。
其实我在做项目的时候,看到很多人都是用Nginx做前端反并发,后端挂载Apache集群,所以性能和功能都要兼顾。
这是一笔交易吗?老实说,我仍然不明白哪种解决方案绝对是最好的。

Apache和nginx的比较

说实话,在论坛上互相较量的时候,Apache和Nginx我都玩得很好。
说白了,主要的区别就是设计理念不同。
您选择哪一种取决于您的具体需求。

我们先来说说Nginx。
这东西确实是一个性能怪物。
我记得他们使用 Nginx 运行 5 0,000 个并发连接的测试。
CPU和内存都相当稳定。
这时阿帕奇可能已经爆炸了。
我亲眼见过一个电子商务网站使用Nginx作为反向代理。
限时抢购期间,数千并发请求涌入,Nginx 持续处理,不掉链。
由于其异步非阻塞模型,单个线程可以处理数千个连接,并且资源占用率低得可怜。
对于Apache来说,它必须为每个连接打开一个进程。
一旦并发量增加,内存和CPU就会立即耗尽。

在静态内容处理领域,Nginx也把Apache打得落花流水。
想想看,Nginx 处理图像、CSS 和 JS 等静态文件的速度比 Apache 快得多。
我之前有一个项目,我用 Nginx 替换了所有 Apache 来提供静态服务。
加载速度明显很快。
另外,Nginx可以热部署,升级版本不需要关闭服务。
这不太适合需要 2 4 /7 在线的系统。

但是话虽如此,阿帕奇人也不是吃素的。
Apache在动态内容处理方面比Nginx要好得多。
是。
当我搭建PHP开发环境时,不得不使用Apache。
主要原因是 Apache 对 PHP 模块的支持非常好。
mod_php安装后,开发效率大大提高。
另外,Apache的模块生态非常丰富。
安全认证、缓存等上千个模块供您选择。
都是经过海浪扫过的,大家可以放心使用。
Apache的重写规则也很神奇,复杂的URL重写得一塌糊涂。

技术的选择取决于您的业务场景。
如果你正在构建大量静态内容、高并发场景的流量密集型应用,Nginx 绝对是首选。
我有一个朋友运行一个使用 Nginx 的 CDN,效果非常好。
但是,如果您正在使用 PHP 和 Python 开发带有大量动态脚本的传统 Web 应用程序,或者需要复杂的模块支持,则需要使用 Apache。
在社区领域,Apache 更为成熟,拥有丰富的专业知识,更容易为中小型企业使用。

需要明确的是,这两种产品之间没有绝对的区别,哪一种更好,哪一种更差。
这取决于您如何使用它们。
就像开车一样,如果你是长途旅行,在高速公路上高铁肯定会更快,但如果你是在农村地区运输货物,你就需要一辆可靠的卡车。