【nginx】nginx与apache的优缺点比较

参考:

http://zyan.cc/nginx_php_v6/

nginx相对于apache的优点: 
1.轻量级,同样的web 服务,比apache服务器占用更少的内存及资源 
2.抗并发,nginx在处理请求是异步非阻塞的(epoll),而apache 则是阻塞型的(select),在高并发下nginx 能保持低资源低消耗高性能 
3.高度模块化的设计,编写模块相对简单

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

apache 相对于nginx 的优点: 
1.nginx处理动态请求是鸡肋,一般动态请求要apache去做,nginx只适合静态和反向

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

-----------------------------------------------------------

不管是Nginx还是Squid这种反向代理,其网络模式都是事件驱动。事件驱动其实是很老的技术,早期的select、poll都是如此。后来基于内核通知的更高级事件机制出现,如libevent里的epoll,使事件驱动性能得以提高。事件驱动的本质还是IO事件,应用程序在多个IO句柄间快速切换,实现所谓的异步IO。事件驱动服务器,最适合做的就是这种IO密集型工作,如反向代理,它在客户端与WEB服务器之间起一个数据中转作用,纯粹是IO操作,自身并不涉及到复杂计算。反向代理用事件驱动来做,显然更好,一个工作进程就可以run了,没有进程、线程管理的开销,CPU、内存消耗都小。

Nginx处理静态文件效果也很好,那是因为静态文件本身也是磁盘IO操作,处理过程一样.

Apache或者Resin这类应用服务器,之所以称他们为应用服务器,是因为他们真的要跑具体的业务应用,如科学计算、图形图像、数据库读写等。它们很可能是CPU密集型的服务,事件驱动并不合适。例如一个计算耗时2秒,那么这2秒就是完全阻塞的,什么event都没用。想想MySQL如果改成事件驱动会怎么样,一个大型的join或sort就会阻塞住所有客户端。这个时候多进程或线程就体现出优势,每个进程各干各的事,互不阻塞和干扰。当然,现代CPU越来越快,单个计算阻塞的时间可能很小,但只要有阻塞,事件编程就毫无优势。所以进程、线程这类技术,并不会消失,而是与事件机制相辅相成,长期存在。

总结之,事件驱动适合于IO密集型服务,多进程或线程适合于CPU密集型服务,它们各有各的优势,并不存在谁取代谁的倾向

【nginx】nginx与apache的优缺点比较,布布扣,bubuko.com

时间: 2024-09-27 04:30:23

【nginx】nginx与apache的优缺点比较的相关文章

nginx和apache的优缺点比较

简单的说apache httpd和nginx都是web服务器,但两者适应的场景不同,也就是两者专注于解决不同的问题.apache httpd:稳定.对动态请求处理强,但同时高并发时性能较弱,耗费资源多.nginx:高并发处理能力强.擅长处理静态请求.反向代理.均衡负载.在这篇文章详细列出了apache与nginx的13个异同点,下面我们来一一分析其原理. 1.nginx相对于apache的优点: 轻量级,同样起web 服务,比apache 占用更少的内存及资源 ,抗并发,nginx 处理请求是异

nginx相对于apache的区别

1.nginx相对于apache的优点:轻量级,同样起web 服务,比apache占用更少的内存及资源抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能高度模块化的设计,编写模块相对简单社区活跃,各种高性能模块出品迅速啊apache 相对于nginx 的优点: rewrite ,比nginx 的rewrite 强大动态页面模块超多,基本想到的都可以找到少bug ,nginx 的bug 相对较多 超稳定 存在就是理由,一般来说,

Centos7+Nginx+Keepalived实现Apache服务的高可用&负载均衡

Centos7+Nginx+Keepalived实现Apache服务的高可用&负载均衡 今天是2017年的第一天,昨天也就是2016年的最后一天,我尝试部署了Centos7+Nginx+Keepalived实现WEB服务的高可用负载均衡服务,终于在2017年的第一天前完成了,所以在此分享给有需要的朋友:说到负载均衡,其实在linux下有很多服务可以实现,比如nginx.haproxy.lvs等服务,当前我们在前面的文章有介绍过了,但是对于高可用服务,我们在linux下最常见也是应用最多的是Kee

Nginx为什么比Apache Httpd高效

转载于:http://www.toxingwang.com/linux-unix/linux-basic/1712.html 一.进程.线程? 在回答nginx 为什么比apache更高效之前,必须要先熟悉.了解下概念:什么是进程,什么是线程,什么是程序 ,程序的运行方式? 进程:是具有一定独立功能的,在计算机中已经运行的程序的实体.在早期系统中(如linux 2.4以前),进程是基本运作单位. 线程:在支持线程的系统中(如windows,linux2.6)中,线程才是基本的运作单位,而进程只是

练手nginx反向代理apache实战

先说下原理性的 什么是反向代理 用户访问域名  域名的指向到nginx  nginx把请求转发到apache  apache处理后 返回给用户 整套的逻辑 对于用户来说  就是访问域名 然后返回  没啥感觉. 正向代理  就是用户访问 代理服务器 然后代理服务器访问网络. 思路整理 用户访问域名  域名对应的80端口  所以nginx配置绑定的是80端口   那么80端口被占用了  apache就只能用其他的端口做绑定了 比如8080 详细步骤 1 nginx 需要配置域名访问的文件 并且设置反

Web 服务器基准测试,nginx+php vs Apache+php

本次测试nginx+php与apache+php哪种组合的计算性能及稳定性更佳 操作系统:Centos6.4 x64 硬件环境: 服务器IP 硬件配置 角色 192.168.1.2 4核心 8GB 基准测试服务器 192.168.1.3 略 基准测试客户端 实验思路:在本次测试中打算采用,同版本组合测试,如(nginx1.4.4+php5.5.7)vs (httpd2.4.2+php5.5.7) 和 (nginx+php7) vs(apache+php7),测试程序有两种,分别为算法程序和连接数

nginx 反向代理apache服务器 配置java与PHP共存环境

listen 80; listen 443; ssl on; ssl_certificate /passport.crt; ssl_certificate_key /passport.key; ssl_session_timeout 5m; server_name localhost; index index.html index.htm index.php; root /www/; location ~ .*\.(php|php5)?$ { #fastcgi_pass unix:/tmp/ph

centos6.5搭建nginx反向代理Apache服务并实现动静分离

Nginx反向代理配置步骤: 一.规划网络拓扑 二.配置Apache服务器 三.配置nginx服务器 四.进行测试   一.规划网络拓扑 二.配置Apache服务器 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 安装Apache服务 [[email protected] ~]# yum -y install httpd php 注:由于我们的Apache服务器要负责动态页面的处理,所以要安装PHP.   编辑A

lnmp停用nginx,改用apache

编译安装的lnmp环境 总是出现502错误,修改了各种配置也没用,暂时先放弃nginx,改用apache apache使用yum安装方式 需要注意的事项,将网站根目录的用户组改为 chown apache.apache /home/www -R 由于之前安装的php是编译安装,配置文件php.ini并没有在/etc/php.ini下建立软连接(可能是这个原因),导致apache不能解析php文件.当时解决的办法是先将/etc/php.ini重命名,然后 yum install php 默认会在/