Nginx 初探
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 初探的更多相关文章
- Nginx初探
nginx是一款轻量级的web服务器.反向代理服务器和电子邮件服务器,占有内存少,并发能力强. 本文将简单介绍如何安装.启动nginx,部署web项目,应用反向代理. 一.安装 可参考https:// ...
- 170731、Nginx初探
一. 概念 Nginx——Ngine X,是一款自由的.开源的.高性能HTTP服务器和反向代理服务器:也是一个IMAP.POP3.SMTP代理服务器:也就是说Nginx本身就可以托管网站(类似于Tom ...
- nginx 初探 之反向代理
首先要解释的是什么叫做反向代理? 平时我们浏览网页可以输入网址直接访问, 但如果访问国外的网站, 可能就没那么简单('中国特色'), 这时候我们需要配置一个代理服务器, 然后通过此服务器中转来访 ...
- nginx初探,下载安装配置负载均衡
上一篇我讲了正向代理和反向代理的概念,这个是为nginx做准备的前置技能,网上百度nginx可以知道nginx是什么: Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/PO ...
- Nginx各个配置块功能详解
Nginx学习笔记-入门篇 nginx初探 ginx服务器是轻量级web服务器中广受好评的一款产品,常用功能有HTTP代理与反向代理(目前已支持七层与四层代理),负载均衡,web缓存. nginx配置 ...
- LNMP之Nginx
Nginx初探 概念: Nginx是一款免费.开源.高性能的HTTP服务器和反向代理,同时也可作为邮件代理服务器.其因为高性能.稳定.丰富的功能集.配置简单和低系统资源消耗而闻名. Tengine是由 ...
- Python和Mysql、Nginx
链接: python入门和基础: Python 中文学习大本营 你是如何自学 Python 的? 简明 Python 教程 给伸手党的福利:Python 新手入门引导 <Python爬虫学习系列 ...
- 《Nginx高性能Web服务器详解》
第1章 Nginx初探 第2章 Nginx服务器的安装部署 第3章 Nginx服务器架构初探 第4章 Nginx服务器的高级设置 第5章 Nginx服务器的Gzip压缩 第6章 Nginx服务器的Re ...
- web开发微信文章目录
Web开发微信文章目录 2015-12-13 Web开发 本文是Web开发微信的文章目录.通过目录查看文章编号,回复文章编号就能查看文章全文. 回复编号查看全文,搜索分类名可以获得该分类下的文章. ...
随机推荐
- play后面加the不加the如何分辨
play表示“参加(某种球类运动或棋牌类的活动)”时,不需要定冠词the,后面直接加球类运动名称或棋牌类活动名称,可根据实际情况翻译成“打,踢,下”等.例如: 1) He often plays fo ...
- 介绍 Active Directory 域服务 (AD DS) 虚拟化
TechNet 库 Windows Server Windows Server 2012 R2 和 Windows Server 2012 服务器角色和技术 Active Directory Acti ...
- [oldboy-django][5python基础][高级特性]Iterator迭代器
# 区分可迭代对象iterable, 迭代器iterator, 生成器generator a. iterable 可直接用for循环的对象,都称为可迭代对象, from collections imp ...
- 集训队日常训练20181110 DIV2 题解及AC代码
4375: 孪生素数 Time Limit(Common/Java):1000MS/3000MS Memory Limit:65536KByteTotal Submit: 324 ...
- Python获取程序运行目录和脚本目录
Python获取程序运行目录和脚本目录 import os import sys #获取脚本所在目录 print os.path.split( os.path.realpath( sys.argv[0 ...
- django学习——通过get_FOO_display 查找模型中的choice值
在django的models.py 中,我们定义了一些choices的元组,类似一些字典值,一般都是下拉框或者单多选框,例如 0对应男 1对应女等. class Area(models.Model): ...
- Treblecross(uva 10561)
题意:一个 1 × n 的棋盘,有 X 和 :,当棋盘上出现三个连续的X 时游戏结束,两人轮流操作,每次能把一个 : 变成 X,问先手必胜方案数以及先手可以放的位置. /* 对于先手,当有一个'X'时 ...
- 【HDOJ5521】Meeting(最短路)
题意:有n个点,m个点集,每个点集中有e[i]个点,同一点集的点互相之间到达需要t[i]单位的时间,求min(max(dis(1,i),dis(i,n))),i属于[1,n] 输出最小值并増序输出所有 ...
- 【CF1073B】Vasya and Books(模拟)
题意:给你一个栈里书的编号,每次能捞出栈顶的一本书,每次询问捞出某本编号的书需要捞几次 n<=2e5 思路: #include<cstdio> #include<cstring ...
- Javascript&Html-history对象
Javascript&Html-history对象 history对象保存着用户的上网记录,这些记录从用户打开浏览器开始. 用户借助history对象实现的跳转. history.go(-1) ...