一、介绍

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

Nginx是一款轻量级的Webserver/反向代理server以及电子邮件代理server。并在一个BSD-like协议下发行。由俄罗斯的程序设计师lgor
Sysoev所开发,供俄国大型的入口站点及搜索引擎Rambler使用。

其特点是占有内存少。并发能力强。其实nginx的并发能力确实在同类型的网页server中表现较好。

Nginx相较于Apache\lighttpd具有占有内存少。稳定性高等优势,而且依靠并发能力强。丰富的模块库以及友好灵活的配置而闻名。

在Linux操作系统下。nginx使用epoll事件模型,得益于此。nginx在Linux操作系统下效率相当高。同一时候Nginx在OpenBSD或FreeBSD操作系统上採用类似于Epoll的高效事件模型kqueue.

二、名词解释

代理server

通常是指局域网内部的机器通过代理server发送请求到互联网上的server,代理server一般作用在client。

反向代理

client(用户A)向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将推断向何处(原始server)转交请求,并将获得的内容返回给client。而client始终任务它訪问的事原始serverB而不是serverZ。

因为防火墙作用。仅仅同意serverZ进出,防火墙和反向代理共同作用保护了院子资源serverB。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGl1dGVuZ3RlbmcxMzA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

用途:将防火墙后面的server提供给Internet用户訪问。反向代理还能够为后端的多台server提供负载平衡或为后端较慢的server提供缓冲服务。

正向代理

正向代理是一个位于clientA和原始server(serverB)之间的server(代理serverZ),为了从原始server取得内容,用户A向代理serverZ发送一个请求并指定目标(serverB)。然后代理serverZ向serverB转交请求并将获得的内容返回给client。client必需要进行一些特别的设置才干使用正向代理。

用途:在防火墙内的局域网client提供訪问Internet的途径。还能够使用缓冲特性降低网络使用率。

从安全性来讲:

正向代理同意client通过它訪问随意站点而且隐藏client自身,因此你必须採取安全措施以确保仅为经过授权的client提供服务。

反向代理对外都是透明的。訪问者并不知道自己訪问的是一个代理。

三、Nginx VSApache

同样点:

1、都是HTTPserver软件

2、功能上都採用模块化结构设计

3、都支持通用的语言接口。如PHP、Perl、Python等

4、支持正向、反向代理、虚拟主机、URL重写、压缩传输、SSL加密传输

不同点:

1、Apache处理速度非常慢。占用非常多内存资源

2、功能上,Apache全部模块支持动静态编译,Nginx模块都是静态编译的

3、对Fcgi的支持:Apache支持的非常不好,Nginx支持非常好

4、处理连接方式:Nginx支持epoll,Apache不支持

5、空间使用上:Nginx安装包仅几百K

四、Nginx优势

1、作为Webserver,Nginx处理静态文件、索引文件,自己主动索引的效率很高

2、作为代理server,Nginx能够实现无缓存的反向代理加速,提高站点执行速度

3、作为负载均衡server,Nginx既能够在内部直接支持Rails和PHP。也能够支持HTTP代理server对外进行服务,同一时候还支持简单的容错和利用算法进行负载均衡

4、在性能方面,Nginx是专门为性能优化而开发的。实现上非常注重效率。

它採用内核Poll模型。能够支持很多其它的并发连接。最大能够支持对5万个并发连接数的响应,并且仅仅占用非常低的内存资源

5、在稳定性方面,Nginx採取了分阶段资源分配技术,使得CPU与内存的占用率很低。Nginx官方表示。Nginx保持1万个没有活动的连接,而这些连接仅仅占用2.5MB内存,因此,类似DOS这种攻击对Nginx来说基本上是没有不论什么作用的

6、在高可用性方面,Nginx支持热部署,启动速度特别迅速。因此能够在不间断服务的情况下。对软件版本号或者配置进行升级,即使执行数月也无需又一次启动,差点儿能够做到7x24小时不间断地执行

Nginx具有非常高的稳定性;支持热部署。代码质量非常高。代码非常规范,手法成熟。模块扩展也非常easy;採用了一些os提供的最新特性如对sendfile(Linux2.2+),accept-filter(FreeBSD4.1+),TCP_DEFER_ACCEPT(Linux
2.4+)的支持,从而大大提高了性能。

Nginx系列(一)--nginx是什么?的更多相关文章

  1. nginx系列 3 nginx.conf介绍(1)

    一. nginx.conf 文件结构概述 在第一篇中讲到nginx的安装,安装完后,默认的nginx服务器配置文件都存在安装目录conf中,主配置文件名为nginx.conf.下面是我linux系统安 ...

  2. 死磕nginx系列--使用nginx做cache服务

    配置文件 nginx.conf 主配置文件 worker_processes 1; events { worker_connections 1024; } http { include mime.ty ...

  3. 【Nginx系列】Nginx虚拟主机的配置核日志管理

    Nginx配置段 #user nobody; worker_processes 1;// 有1个工作的子进程,可以自行修改,但太大无益,因为要争夺CPU,一般设置为 CPU数*核数 #error_lo ...

  4. 【Nginx系列】Nginx编译与安装

    Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器.Nginx是由Igor Sysoev为俄罗斯访问第二的Rambler.ru站点开发的. 一.Nginx ...

  5. 死磕nginx系列--使用nginx做负载均衡

    使用nginx做负载均衡的两大模块: upstream 定义负载节点池. location 模块 进行URL匹配. proxy模块 发送请求给upstream定义的节点池. upstream模块解读 ...

  6. 【Nginx系列】Nginx之location

    语法: location [=|~|~*|^~] patt { } 一.分类 中括号可以不写任何参数,此时称为一般匹配 也可以写参数 因此,大类型可以分为3种 location = patt {} [ ...

  7. Nginx系列 | [转]Nginx 上传文件:client_max_body_size 、client_body_buffer_size

    原文:http://php-note.com/article/detail/488 client_max_body_size client_max_body_size 默认 1M,表示 客户端请求服务 ...

  8. 死磕nginx系列--nginx 目录

    死磕nginx系列--nginx入门 死磕nginx系列--nginx配置文件 死磕nginx系统-nginx日志配置 死磕nginx系列--nginx服务器做web服务器 死磕nginx系列--使用 ...

  9. 死磕nginx系列--配置文档解读

    nginx配置文件主要分为四个部分: main(全局设置) http ( ) upstream(负载均衡服务器设置) server(主机设置) location(URL匹配特点位置的设置) serve ...

  10. 死磕nginx系列

    死磕nginx系列 死磕nginx系列--nginx入门 死磕nginx系列--nginx配置文件 死磕nginx系统--nginx日志配置 死磕nginx系列--nginx服务器做web服务器 死磕 ...

随机推荐

  1. 紫书 例题 10-10 UVa 10491(概率计算)

    公式很好推,表示被高中生物遗传概率计算虐过的人 这个公式简直不需要动脑 #include<cstdio> using namespace std; int main() { double ...

  2. python3+opencv+tkinter开发简单的人脸识别小程序

    学校里有门图像处理的课程最终需要提交一个图像处理系统, 正好之前对于opencv有些了解,就简单的写一个人脸识别小程序吧 效果图如下 笔者IDE使用Pycharm,GUI编程直接使用内置的tkinte ...

  3. 协变 & 逆变

    都跟里氏替换原则有关. 协变:你可以用一个子类对象去替换相应的一个父类对象,这是完全符合里氏替换原则的,和协(谐)的变.如:用Swan替换Bird. 逆变:你可以用一个父类对象去替换相应的一个子类对象 ...

  4. 赵雅智_运用Bitmap和Canvas实现图片显示,缩小,旋转,水印

    上一篇已经介绍了Android种Bitmap和Canvas的使用,以下我们来写一个详细实例 http://blog.csdn.net/zhaoyazhi2129/article/details/321 ...

  5. (hdu step 7.2.1)The Euler function(欧拉函数模板题——求phi[a]到phi[b]的和)

    题目: The Euler function Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...

  6. UITableView去掉最后切割线的一种方法

    UITableView以style:UITableViewStylePlain方式创建时.仅仅要有cell,就会有一条黑线 哪怕至于一个cell也会有,如图 在网上找了集中方法,都不好使,比方http ...

  7. 10.MongoDB:将Json数据直接写入MongoDB的方法

    Json转Bson MongoDB中是以Bson数据格式进行存储的,Json字符串没有办法直接写入MongoDB 可以将Json字符串转换成DBObject或者Document,然后写入MongoDB ...

  8. AtCoder Beginner Contest 067 C - Splitting Pi

    C - Splitting Pile Time limit : 2sec / Memory limit : 256MB Score : 300 points Problem Statement Snu ...

  9. 使用form-create动态生成vue组件

    使用form-create动态生成vue自定义组件和嵌套表单组件 [github] | [说明文档] 示例 let rule = [ { type:'row', children:[ { type:' ...

  10. JQ each 各种标签

    类选择器: $("input[class=class1]").each(function(){ alert($(this).val()); }); ID选择器: $("i ...