nginx浅谈之介绍

一、介绍

   Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。

   Nginx是一款轻量级的Web服务器/反向代理服务器以及电子邮件代理服务器,并在一个BSD-like协议下发行。由俄罗斯的程序设计师lgor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。


反向代理

   客户端(用户A)向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端。而客户端始终任务它访问的事原始服务器B而不是服务器Z。由于防火墙作用,只允许服务器Z进出,防火墙和反向代理共同作用保护了院子资源服务器B


正向代理

   正向代理是一个位于客户端A和原始服务器(服务器B)之间的服务器(代理服务器Z),为了从原始服务器取得内容,用户A向代理服务器Z发送一个请求并指定目标(服务器B),然后代理服务器Z向服务器B转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。


二、为什么选择nginx

   现在市面上有比较多的服务,就举例php来说,除了使用nginx,也还可以使用iis,那对于nginx来说,有哪些优势呢?

   1.IO多路复用(epoll)。什么事IO多路复用呢?就是单个线程,通过记录跟踪每个I/O流(sock)的状态,来同时管理多个I/O流 。发明它的原因,是尽量多的提高服务器的吞吐能力。在同一个线程里面, 通过拨开关的方式,来同时传输多个I/O流。相当于时分复用。

epoll.jpg

   2.轻量级web服务。在功能上,nginx只保留了http所需的核心模块。

   3.CPU亲和。所谓CPU亲和,就是把CPU核心和nginx进程绑定,把每个worker进程固定在一个CPU上执行,减少切换CPU和进程迁移带来的损耗,从而提高性能。

   4.采用sendfile,对静态文件的处理有优势。一般的文件处理都是经过硬件-->内核空间-->用户空间-->socket进行处理的,但实际上静态文件并不需要进行这么多的处理。而nginx采用的sendfile则是直接硬件-->内核空间-->socket,减少了用户空间的步骤,避免了内核层与用户层的上线文切换工作,大大减少了系统性能的开销。

   5.取了分阶段资源分配技术,使得CPU与内存的占用率非常低。Nginx官方表示,Nginx保持1万个没有活动的连接,而这些连接只占用2.5MB内存。

头像
QQ登录: