一、介绍

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. 一个美丽的java烟花程序

    <img src="http://img.blog.csdn.net/20150625104525974?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi ...

  2. Lesson 2 Building your first web page: Part 3

    Time to build your first HTML page by hand I could go on with more theory and send half of you to sl ...

  3. 37.微信跳一跳辅助开发(C语言+EasyX)

    一.开发环境 开发环境 使用语言:C/C++ IDE:VS2010+ 其他三方库 EasyX(http://www.easyx.cn/downloads/) ADB(链接:https://pan.ba ...

  4. HDU 2435 There is a war Dinic 最小割

    题意是有n座城市,n号城市不想让1号城市可达n号,每条道路有一条毁坏的代价,1号还可以修一条不能毁坏的道路,求n号城市所需的最小代价最大是多少. 毁坏的最小代价就直接求一遍最大流,就是最小割了.而可以 ...

  5. 【转】Android应用底部导航栏(选项卡)实例

    现在很多android的应用都采用底部导航栏的功能,这样可以使得用户在使用过程中随意切换不同的页面,现在我采用TabHost组件来自定义一个底部的导航栏的功能. 我们先看下该demo实例的框架图: 其 ...

  6. FreeBSD是UNIX系统的重要分支,其命令与Linux大部分通用,少部分是其特有。

    FreeBSD是UNIX系统的重要分支,其命令与Linux大部分通用,少部分是其特有. 1: man 在线查询 man ls2: ls 查看目录与档案 ls -la3: ln 建立链接文件 ln -f ...

  7. Spring Cloud学习笔记【三】服务消费者Feign

    Feign 是一个声明式的 Web Service 客户端,它的目的就是让 Web Service 调用更加简单.它整合了 Ribbon 和 Hystrix,从而让我们不再需要显式地使用这两个组件.F ...

  8. 洛谷—— P1086 花生采摘

    https://www.luogu.org/problem/show?pid=1086#sub 题目描述 鲁宾逊先生有一只宠物猴,名叫多多.这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着 ...

  9. 洛谷 P1324 矩形分割

    P1324 矩形分割 题目描述 出于某些方面的需求,我们要把一块N×M的木板切成一个个1×1的小方块. 对于一块木板,我们只能从某条横线或者某条竖线(要在方格线上),而且这木板是不均匀的,从不同的线切 ...

  10. FragmentTransaction的commit和commitAllowingStateLoss的差别

    1.什么是FragmentTransaction? 使用Fragment时.能够通过用户交互来运行一些动作.比方添加.移除.替换等. 全部这些改变构成一个集合,这个集合被叫做一个transaction ...