nginx和apache作为webserver的差别

1.两者所用的驱动模式不同。

nginx使用的是epoll的非堵塞模式事件驱动。

apache使用的是select的堵塞模式事件驱动。

2.fastcgi和cgi的差别

当用户请求web服务的时候。web会依据不同的需求将请求发送给不同个cgi来处理。

cgi模式,就是每次有请求的时候都fork一个新的进程来处理这个请求。处理完毕后再关闭这个进程。

fastcgi模式。就是在server启动的时候依据配置文件建立几个cgi接口进程长驻在内存其中,当有请求连接的时候,cgi被激活来处理请求连接。处理完成后cgi进程也不会关闭。会再次等待下次的请求连接。

由于进程的创建和关闭须要占用非常大的内存和cpu资源。所以,相比較而言。处理多请求的情况下fastcgi模式的长处会不言而喻。

3.两者的支持模块

Apache支持的模块非常多。并且也比較稳定。而nginx因为出现的比較晚,所以在这方面可能比不上Apache。

nginx本身就是一个反向代理server,并且支持7层负载均衡。

Apache的rewrit功能比nginx强大很多。

nginx是多线程的,而Apache是多进程的。

nginx是异步堵塞,而Apache是堵塞

nginx处理动态页面非常鸡肋,一般仅仅用与处理静态页面和反向代理。

Apache因为支持的模块比較多。能够支持比較多的动态页面。并且性能比較稳定。

假设须要性能。就使用nginx。假设须要稳定。就使用Apache。

3.1.1 堵塞和非堵塞:

堵塞和非堵塞指的是运行一个操作是等操作结束再返回,还是立即返回。

比方餐馆的服务员为用户点菜,当实用户点完菜后,服务员将菜单给后台厨师,此时有两种方式:

  • 第一种:就在出菜窗体等待,直到厨师炒完菜后将菜送到窗体,然后服务员再将菜送到用户手中。
  • 另外一种:等一会再到窗体来问厨师,某个菜好了没?假设没有先处理其它事情,等会再去问一次;

第一种就是堵塞方式。另外一种则是非堵塞的。

3.1.2 同步和异步:

同步和异步又是另外一个概念。它是事件本身的一个属性。还拿前面点菜为例,服务员直接跟厨师打交道,菜出来没出来,服务员直接指导,但仅仅有当厨师将菜送到服务员手上,这个过程才算正常完毕,这就是同步的事件。

相同是点菜,有些餐馆有专门的传菜人员。当厨师炒好菜后。传菜员将菜送到传菜窗体,并通知服务员,这就变成异步的了。事实上异步还能够分为两种:带通知的和不带通知的。前面说的那种属于带通知的。

有些传菜员干活可能主动性不是非常够,不会主动通知你,你就须要时不时的去关注一下状态。这样的就是不带通知的异步。

对于同步的事件。你仅仅能以堵塞的方式去做。而对于异步的事件。堵塞和非堵塞都是能够的。

非堵塞又有两种方式:主动查询和被动接收消息。

被动不意味着一定不好。在这里它恰恰是效率更高的,由于在主动查询里绝大部分的查询是在做无用功。对于带通知的异步事件,两者皆可。

而对于不带通知的,则仅仅能用主动查询。

时间: 2024-12-07 00:52:45

nginx和apache作为webserver的差别的相关文章

nginx和apache作为webserver的区别

1.两者所用的驱动模式不同. nginx使用的是epoll的非阻塞模式事件驱动. apache使用的是select的阻塞模式事件驱动. 2.fastcgi和cgi的区别 当用户请求web服务的时候,web会根据不同的需求将请求发送给不同个cgi来处理. cgi模式,就是每次有请求的时候都fork一个新的进程来处理这个请求,处理完成后再关闭这个进程. fastcgi模式,就是在服务器启动的时候根据配置文件建立几个cgi接口进程长驻在内存当中,当有请求连接的时候,cgi被激活来处理请求连接,处理完毕

nginx和apache的一些比较

1.两者所用的驱动模式不同. nginx使用的是epoll的非阻塞模式事件驱动. apache使用的是select的阻塞模式事件驱动. 2.fastcgi和cgi的区别 当用户请求web服务的时候,web会根据不同的需求将请求发送给不同个cgi来处理. cgi模式,就是每次有请求的时候都fork一个新的进程来处理这个请求,处理完成后再关闭这个进程. fastcgi模式,就是在服务器启动的时候根据配置文件建立几个cgi接口进程长驻在内存当中,当有请求连接的时候,cgi被激活来处理请求连接,处理完毕

nginx和apache的优缺点比较

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

Nginx对(apache+foreman+puppet)负载均衡

Nginx对(apache+foreman+puppet)负载均衡 一.前提准备 试验环境: OS:Centos 6.5_x86 puppet-server-3.8.3 foreman-1.9.2 foreman-proxy-1.9.2 httpd-2.2.15 服务器已经搭建好了apache+foreman+puppet详情请参考: http://4709096.blog.51cto.com/4699096/1710697 二.修改pupeptmaster相关配置 2.1修改puppetmas

nginx、Apache、IIS中413 Request Entity Too Large问题解决方法

分享下nginx.Apache.IIS三种服务器解决413 Request Entity Too Large问题的方法. 一.nginx服务器 nginx出现这个问题的原因是请求实体太长了.一般出现种情况是Post请求时Body内容Post的数据太大了,如上传大文件过大.POST数据比较多. 处理方法在nginx.conf增加 client_max_body_size的相关设置, 这个值默认是1m,可以增加到8m以增加提高文件大小限制:当然可以设置的更大点.# 在http,server或者loc

Nginx和Apache各自的优缺点

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

nginx and apache

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

nginx和apache日志记录用户真实ip:X-Real-IP

如果结构里有个反向代理,那后端机器的日志记录的就会是代理的ip,真实的ip看不到了,后端代码可以通过在header里设置真实ip来解决,nginx加入下面一段即可: proxy_set_header X-Real-IP $remote_addr; 后端通过X-REAL-IP或者HTTP_X_REAL_IP变量获取. 日志记录的话,nginx可以定义$http_x_real_ip变量,例如:    log_format main '$http_x_real_ip - $remote_user ' 

Nginx与Apache动静分离

. Nginx与Apache动静分离,布布扣,bubuko.com