请问一下nginx和apache分别是什么?

nginx和apache分别是什么?


繁花不似锦
浏览 989回答 4
4回答

DIEA

nginx相对于apache的区别是:轻量级,同样起web 服务,比apache 占用更少的内存及资源抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能高度模块化的设计,编写模块相对简单社区活跃,各种高性能模块出品迅速apache 相对于nginx 的优点:rewrite ,比nginx 的rewrite 强大模块超多,基本想到的都可以找到少bug ,nginx 的bug 相对较多存在就是理由,一般来说,需要性能的web 服务,用nginx 。如果不需要性能只求稳定,那就apache 吧。后者的各种功能模块实现得比前者,例如ssl 的模块就比前者好,可配置项多。这里要注意一点,epoll(freebsd 上是 kqueue )网络IO 模型是nginx 处理性能高的根本理由,但并不是所有的情况下都是epoll 大获全胜的,如果本身提供静态服务的就只有寥寥几个文件,apache 的select 模型或许比epoll 更高性能。当然,这只是根据网络IO 模型的原理作的一个假设,真正的应用还是需要实测了再说的。

炎炎设计

简单来看,ng的写法更容易看懂,而apache的rewrite指令看起来很复杂,除非你看过apache文档里面对几个rewrite指令的讲解,并且能理解apache对rewriterule的处理过程(可以参考这篇文章Apache Rewrite 理解)。 值得注意的两点: 1.写在apche的rewrite规则通常写在分布式配置文件.htaccess里面,那么apache在接受请求的时候就会在相应目录里面找这个文件,然后执行里面的指令。而在ng里面,似乎是出于效率的考虑,没有这种把配置文件分布在各处,临时加载的做法。 2.apache里面的rewrite规则中正则()的有些用法,比如RewriteRule反向引用,是apache里面特有的。
打开App,查看更多内容
随时随地看视频慕课网APP