Nginx简介

Nginx(engine X)是一个开源、轻量级、高性能的HTTP和反向代理服务器,可以代理HTTP、 IMAP/POP3/SMTP和TCP/UDP协议;
其特点是占用内存少,并发能力强,采用C语言编写,所以在性能方面有一定保证。
Nginx是一个俄罗斯人伊戈尔·赛索耶夫开发的, 第一个公开版本0.1.0发布于2004年10月;截止到2017年7月11日,最新稳定
版是1.12。
与Nginx同类的Web服务有IIS、 Apache、 Tomcat等。

Nginx特性:

 模块化设计
 低内存消耗,高并发
 事件驱动,AIO
 高可靠性,master与worker架构
 支持热更新配置、日志文件滚动、平滑升级
 丰富的扩展模块

Nginx基本功能

 静态资源Web服务器
 基于域名/IP/端口的虚拟主机
 HTTP/HTTPS、 SMTP、 POP3和TCP/UDP反向代理
 负载均衡
 页面缓存
 支持代理FastCGI、 uWSGI等应用服务器
 支持gzip、 expires
 URL Rewrite
 路径别名

 基于IP、用户的访问控制
 支持访问速率、并发限制
 等…

Nginx架构

主进程( master process):
1. 主要功能与外界通信和工作进程管理;
2. 读取nginx配置文件并验证有效性;
3. 建立、绑定和关闭socket;
4. 按照配置文件生成、管理和结束工作进程;
5. nginx重启、停止、重载配置文件、平滑升级、管理日志文件等。

工作进程( worker process):
1. 接收客户端请求,将请求交给各个功能模块处理;
2. 系统IO调用,获取响应的数据,发送响应给客户端;
3. 数据缓存管理;
4. 接收主进程指令,比如重启、关闭等。

缓存索引重建及管理进程( cache loader & cache manager) :
cache模块,主要由缓存索引重建( cache loader)和缓存索引管理( cache manager)两个进程完成,缓存索引重
建进程是在进程在nginx服务启动一段时间之后(默认是1分钟)由主进程生成,对本地磁盘的索引文件在内存中建
立元数据库,包括扫描、过期更新等操作,完成后退出。

Nginx与Apache对比

 Nginx轻量级,比Apache占用内存更少,尤其是prefork模型;
 Nginx更抗并发,单机支持10万+QPS, Nginx处理请求是异步非阻塞的,而Aapche是阻塞的;
 Nginx采用多进程工作模式,而Apache有多进程和多进程多线程两种工作模式;
 Nginx高度模块化设计,有很多丰富的模块,更好的扩展性;
 Apache历史悠久(在九几年就已经流行了),稳定性要比Nginx高;
 采用网络I/O模型不同, Apache采用select, Nginx在Linux2.6+上采用epoll。

网络IO模型

简单来说,网络I/O是用户态和内核态之间的数据交换。
一次网络数据读取操作,大概是这样的:
应用进程通过系统调用( read) ->由用户态转到内核态->内核将请求的数据发送到内核缓冲区->应用进程查看内核
缓冲区是否有数据->如果有则把数据拷贝到用户态->完成I/O操作
 阻塞
 非阻塞
 同步
 异步
 IO多路复用

Nginx 初探的更多相关文章

  1. Nginx初探

    nginx是一款轻量级的web服务器.反向代理服务器和电子邮件服务器,占有内存少,并发能力强. 本文将简单介绍如何安装.启动nginx,部署web项目,应用反向代理. 一.安装 可参考https:// ...

  2. 170731、Nginx初探

    一. 概念 Nginx——Ngine X,是一款自由的.开源的.高性能HTTP服务器和反向代理服务器:也是一个IMAP.POP3.SMTP代理服务器:也就是说Nginx本身就可以托管网站(类似于Tom ...

  3. nginx 初探 之反向代理

    首先要解释的是什么叫做反向代理? 平时我们浏览网页可以输入网址直接访问,  但如果访问国外的网站,  可能就没那么简单('中国特色'),  这时候我们需要配置一个代理服务器, 然后通过此服务器中转来访 ...

  4. nginx初探,下载安装配置负载均衡

    上一篇我讲了正向代理和反向代理的概念,这个是为nginx做准备的前置技能,网上百度nginx可以知道nginx是什么: Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/PO ...

  5. Nginx各个配置块功能详解

    Nginx学习笔记-入门篇 nginx初探 ginx服务器是轻量级web服务器中广受好评的一款产品,常用功能有HTTP代理与反向代理(目前已支持七层与四层代理),负载均衡,web缓存. nginx配置 ...

  6. LNMP之Nginx

    Nginx初探 概念: Nginx是一款免费.开源.高性能的HTTP服务器和反向代理,同时也可作为邮件代理服务器.其因为高性能.稳定.丰富的功能集.配置简单和低系统资源消耗而闻名. Tengine是由 ...

  7. Python和Mysql、Nginx

    链接: python入门和基础: Python 中文学习大本营 你是如何自学 Python 的? 简明 Python 教程 给伸手党的福利:Python 新手入门引导 <Python爬虫学习系列 ...

  8. 《Nginx高性能Web服务器详解》

    第1章 Nginx初探 第2章 Nginx服务器的安装部署 第3章 Nginx服务器架构初探 第4章 Nginx服务器的高级设置 第5章 Nginx服务器的Gzip压缩 第6章 Nginx服务器的Re ...

  9. web开发微信文章目录

    Web开发微信文章目录 2015-12-13 Web开发 本文是Web开发微信的文章目录.通过目录查看文章编号,回复文章编号就能查看文章全文. 回复编号查看全文,搜索分类名可以获得该分类下的文章.   ...

随机推荐

  1. Python中__str__和__repr__的区别

    Python有一个内置的函数叫repr,它能把一个对象用字符串的形式表达出来以便辨认,这就是“字符串表示形式”.repr就是通过__repr__这个特殊方法来得到一个对象的字符串表示形式.如果没有实现 ...

  2. 线段树[To be continued]

    目录 数据结构--线段树 一.定义 二.性质 三.基本操作 0.结构体 1.建树 2.单点查询 3.单点修改 4.区间修改 5.区间查询 四.题目 单点修改.区域查询模板 五.鸣谢 学姐的Blog 百 ...

  3. 【Combinations】cpp

    题目: Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. For ex ...

  4. Leetcode 652.寻找重复的子树

    寻找重复的子树 给定一棵二叉树,返回所有重复的子树.对于同一类的重复子树,你只需要返回其中任意一棵的根结点即可. 两棵树重复是指它们具有相同的结构以及相同的结点值. 下面是两个重复的子树: 因此,你需 ...

  5. c++11特性使用

    #include <list> #include <iostream> int main(){ list<int> lst; for(list<int> ...

  6. Linux抓包工具tcpdump命令详解

    1.简介      用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中 ...

  7. 学习RMQ-ST表

    RMQ一般是一个二维数组,用$dp[i][j]$表示起点为i开始连续数$2^j$个元素其中的最值,由于对于一个闭区间有:$R-L+1=len$因此也可以用另外一种记法:闭区间为$[i,i+2^j-1] ...

  8. [luogu1357] 花园 [dp+矩阵快速幂]

    题面: 传送门 思路: 把P形花圃记录为0,C形记录为1,那么一段花圃就可以状态压缩成一个整数 那么,我们可以有这样的状压dp: dp[i][S]表示前i个花圃,最后m个的状态为S的情况 如果这是一条 ...

  9. 【CCF】URL映射 模拟

    #include<iostream> #include<cstdio> #include<cstring> #include<string> #incl ...

  10. [暑假集训--数论]poj1365 Prime Land

    Everybody in the Prime Land is using a prime base number system. In this system, each positive integ ...