nginx和apache的区别,选择哪个好?

news/2024/7/7 21:47:27 标签: nginx, apache, 运维

Apache和Nginx最核心的区别在于 apache 是同步多进程模型,一个连接对应一个进程;而 nginx 是异步的,多个连接(万级别)可以对应一个进程。下面本篇文章就来给大家介绍一下Apache和Nginx的区别有那些,选择哪个好?希望对你们有所帮助。 

一、Nginx特点


  1、轻量级,采用C进行编写,同样的web服务,会占用更少的内存及资源。

  2、抗并发,nginx以epollandkqueue作为开发模型,处理请求是异步非阻塞的,负载能力比apache高很多,而apache则是阻塞型的。在高并发下nginx能保持低资源低消耗高性能,而apache在php处理慢或者前端压力很大的情况下,很容易出现进程数飙升,从而拒绝服务的现象。 

  3、nginx在开启时,会生成一个master进程,然后,master进程会fork多个worker子进程,最后每个用户的请求由worker的子线程处理。 

  4、可以配置nginx的upstream实现nginx的反向代理。 

  5、nginx作为负载均衡服务器,支持7层负载均衡。 

  6、nginx处理静态文件好,静态处理性能比apache高三倍以上。

  7、支持高并发连接,每秒最多的并发连接请求理论可以达到50000个。 

  8、nginx配置简洁,正则配置让很多事情变得简单,而且改完配置能使用-t测试配置有没有问题,apache配置复杂,重启的时候发现配置出错了,会很崩溃。 

  9、用线程处理用户请求,而线程是共享内存的,只需要开启少量进程,多个线程就可以共享进程的内存,占用内存小。 

  10、一个进程死掉时,会影响到多个用户的使用,稳定性差。

  11、nginx的设计高度模块化,编写模块相对简单。

  12、nginx本身就是一个反向代理服务器,而且可以作为非常优秀的邮件代理服务器。

  13、启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动,还能够不间断服务的情况下进行软件版本的升级。

  14、社区活跃,各种高性能模块出品迅速。

 

 

二、Apache特点 


  1、select同步阻塞。

  2、一个连接对应一个进程。

  3、用进程处理用户请求,用MPM(多处理模块)来绑定到网络端口上,接受请求,调度子进程处理请求。

  4、当用户请求过多时,开启的进程较多,占用内存大,每秒最多的并发连接请求最多不超过3000个。

  5、一个进程死掉时,不会影响其他的用户

  6、apache的rewrite比nginx强大,在rewrite频繁的情况下,用apache。 

  7、apache发展到现在,模块超多,基本想到的都可以找到。 

  8、apache更为成熟,少bug,nginx的bug相对较多。 

  9、apache超稳定。 

  10、apache对php支持比较简单,nginx需要配合其他后端用。 

  11、apache在处理动态请求有优势,一般动态请求要apache去做,nginx适合静态和反向。

  12、apache仍然是目前的主流,拥有丰富的特性,成熟的技术和开发社区。

两者最核心的区别在于apache是同步多进程模型,一个连接对应一个进程,而nginx是异步的,多个连接(万级别)可以对应一个进程。一般来说,需要性能的web服务,用nginx。如果不需要性能只求稳定,更考虑apacheapache的各种功能模块实现比nginx好,例如ssl的模块就比nginx好,可配置项多。epoll(freebsd上是kqueue)网络IO模型是nginx处理性能高的根本理由,但并不是所有的情况下都是epoll大获全胜的,如果本身提供静态服务的就只有寥寥几个文件,apache的select模型或许比epoll更高性能。当然,这只是根据网络IO模型的原理作的一个假设,真正的应用还是需要实测。更为通用的方案是,前端nginx抗并发,后端apache集群,配合起来会更好。


http://www.niftyadmin.cn/n/1098671.html

相关文章

VUE项目利用Axios实现好用的API层请求接口封装

讲之前先了解下axios的使用 get请求: 一般多用于获取数据 //无参数时 方式一axios({ method: get, url: /ulr }) //无参数时 方式二axios.get(/url) //有参数时 方式一 请求的地址实际为 localhost:8080/url?id12axios({ method: get, url: url, p…

Jquery Ajax实例(一)

先直接上一个简单的实例: aspx页面: View Code <html xmlns"http://www.w3.org/1999/xhtml"> <head runat"server"><title>Ajax简单实例</title><script src"http://code.jquery.com/jquery-latest.js"></scri…

C专家编程(Expert C Programming)(二)

C专家编程(Expert C Programming)&#xff08;二&#xff09; 1、程序内存布局 2、运行时数据类型 堆栈 函数内部的局部变量&#xff0c;函数调用时的维护性信息&#xff0c;暂时存储区&#xff08;通过alloca分配的内存就是位于此&#xff0c;它将被下一个函数调用覆盖&…

802.11n和802.11ac的MCS速率表

一.802.11n在双天线时&#xff0c;最高可达到300Mbps。红色是常听到和接触到的速率 空间流 MCS标号 调制方式 码率 HT20 数据速率(Mbps) HT40 数据速率(Mbps) GI800ns GI400ns GI800ns GI400ns 1x1 0 BPSK 1/2 6.5 7.2 13.5 15.0 1 QPSK 1/2 13.0 14.2 …

优秀雇员必备六大关键技能(1)

Why do I need Key Skills? 为什么我需要关键技能? Key Skills are basic skills that affect everything else you do - they can help you achieve higher grades and do better at work. Because employers, colleges and universities value Key Skills, they can help y…

802.11a/b/g/n/ac速率表

1、802.11b&#xff0c;最高速率11Mbps调制方式速率&#xff08;Mbps&#xff09;DSSS1DSSS2CCK5.5CCK112、802.11a/g&#xff0c;最高速率54Mbps调制方式码率速率&#xff08;Mbps&#xff09;BPSK1/26BPSK3/49QPSK1/212QPSK3/41816-QAM1/22416-QAM3/43664-QAM2/34864-QAM3/45…

最常见的9种叫床方式,你喜欢哪种?

常用的就是以下几种&#xff1a; 1. 手机闹钟铃声 2. 普通床头闹钟 3. 那种会满地打滚的变态闹钟 4. 被爸妈拎耳朵起床 5. 被同床的人一脚踢下床 6. 每天早上都叫人短信叫床 7. 每天早上都叫人电话叫床 8. 音响到点自动播放 9. 不要叫床&#xff0c;睡觉睡到自然醒 结…

C专家编程(Expert C Programming)1

C专家编程(Expert C Programming) 一基本概念 1、与时间相关的几个函数 char *ctime( const time_t *timer ); Each of these functions returns a pointer to the character string result. If time represents a date before midnight, January 1, 1970, UTC, the functi…