10.3 Nginx
Nginx介绍
engine X,2002年开发,分为社区版和商业版(nginx plus)
2019年 f5 Networks 6.7亿美元收购nginx
Nginx 免费 开源 高性能
http 和反向代理服务器,邮件代理服务器
tcp和udp代理服务器
解决c10k 问题(10k connections) 二次发行版
tengine
openresty 安全
Nginx功能介绍
静态的web资源服务器(html,image,js,css,txt等)
http/https协议的反向代理
支持fastcgi/uwsgi/scgi等协议反向代理动态请求
四层反向代理
imap4/pop3协议反向代理
基础特性
模块化设计,较好的扩展性
高可靠性
支持热部署:不停机更新配置文件,升级版本,更换日志文件
低内存消耗:1w个keep-alive非活动连接,仅需2.5M内存
事件驱动,aio,mmap,sendfile等
web服务相关的功能
虚拟机主机
支持keep-alive,和管道连接(利用一个连接做多次请求)
访问日志
url rewrite
路径别名
基于ip及用户访问控制
支持速率限制及并发数限制
重新配置和在线升级而无需中断客户的工作工作进程
Nginx主进程
* Nginx 服务器启动时运行的主要进程,它的主要功能是与外界通信和对内部其他进程进程管理
* 读取Nginx配置文件并验证其有效性和正确性
* 建立,绑定和关闭Socket
* 按照配置生成,管理和结束工作进程
* 接收外界指令,比如重启,升级,及推出服务器等指令
* 平滑重启
* 平滑升级,失败回滚
* 开启日志文件,获取文件描述符
* 编译和处理Perl脚本
工作进程
* 由主进程生成,生成数量可以通过Nginx配置文件指定,正常情况下生存与主进程的整个生命周期
* 接收客户端请求
* 将请求一次送入各个功能模块进行滤处理
* IO调用,获取相应数据
* 与后端服务器通信,接受后端服务器处理结果
* 数据缓存,访问缓存索引,查询和调用缓存数据
* 发送请求结果,响应客户端请求
* 接收程序指令,比如重启,升级和退出等指令
缓存索引创建及管理进程
* 在nginx启动一段时间后(默认一分钟)有主进程生成,在缓存元数据重建完成就退出
* 根据本地磁盘上的缓存文件在内存中建立索引元数据库,
* 负责在索引元数据更新完成后,对元数据库是否过期做出判断
http连接建立和请求处理过程
Nginx启动时,Master进程:加载配置文件
Master进程:初始化监听socket
master:fork出多个worker进程
worker进程,竞争新的连接,获胜方通过三次握手,建立socket连接,并处理请求
nginx架构图

nginx 模块图

10.3 Nginx的更多相关文章
- ubuntu 16.10安装nginx
1 : cd /usr/local 2 : sudo wget http://nginx.org/download/nginx-1.2.8.tar.gz 3 : sudo tar -zxvf ngin ...
- Nginx 笔记与总结(10)Nginx 与 PHP 整合
Apache + PHP 的编译 和 Nginx + PHP 的编译,区别: Apache 一般把 PHP 当作自己的一个模块来启动: Nginx 则是把 HTTP 请求变量(如 get,user_a ...
- 转 10 个 Nginx 的安全提示
Nginx是当今最流行的Web服务器之一.它为世界上7%的web流量提供服务而且正在以惊人的速度增长.它是个让人惊奇的服务器,我愿意部署它. 下面是一个常见安全陷阱和解决方案的列表,它可以辅助来确保你 ...
- win 10安装Nginx,php,mysql 小计
一直没有尝试Nginx作为Web服务器,时常用的是apache,在Ubuntu下,输入一些安装命令就可以把LAMP环境比较轻松的搭建起来. 系统: windows 10 NT ,Nginx-1.14. ...
- 10、nginx+uwsgi+django部署(动静分离)
10.1.说明: 1.介绍: 创建Django项目,可以通过 pyhon3 manage.py runserver 0.0.0.0:8080 & 命令更方便地调试程序,但是如果当一个项目完成了 ...
- Nginx系列(10)- Nginx配置文件详解
nginx文件结构 ... #全局块 events { #events块 ... } http #http块 { ... #http全局块 server #server块 { ... #server全 ...
- 10.6 Nginx 高并发连接
Nginx 高并发连接 什么是IO,输入输出 Web服务器IO的整个详细过程 (1)客户发起请求到服务器网卡: (2)服务器网卡接受到请求后转交给内核 ...
- window 7/8/10 安装nginx
1.百度 nginx 找到 http://nginx.org/ 官网 2.找到一个nginx 版本 如 最新版本 2018-12-25 nginx-1.15.8 mainline v ...
- 【10】Nginx:后面有无 / 的区别
写在前面的话 在 nginx 中,我们很多时候都有一个疑问,在 proxy_pass 或者 root 或者 location 后面需不需要加上 /,加和不加有啥区别. root / alias 后面 ...
- 10.13 Nginx 负载均衡
七层负载均衡server { listen 80; server_name localhost; location / { proxy_pass http://name; //调用集群 } } ups ...
随机推荐
- excel控件只为简单写入数据表--github找到ExcelUtil笔记
github地址 https://github.com/SargerasWang/ExcelUtil 文档地址 https://sargeraswang.com/blog/2018/11/27/exc ...
- Go: 复合数据类型slice
slice slice 表示用于相同类型元素的可变长度的序列. slice有三个属性:指针.长度和容量. 指针:slice存储数据的内部结构是数组,指针指向的是数组的地址 长度:保存slice中的元素 ...
- Spring Boot集成Redis集群(Cluster模式)
目录 集成jedis 引入依赖 配置绑定 注册 获取redis客户端 使用 验证 集成spring-data-redis 引入依赖 配置绑定 注册 获取redis客户端 使用 验证 异常处理 同样的, ...
- Ubuntu 16.04 + Win10双系统 启动Ubuntu进入命令行 无界面
Ubuntu 16.04 + Win10双系统,启动Ubuntu时候报错,并入命令行(无界面). 原因:可能是双系统兼容性问题 解决办法: 重启系统,进入Win10 然后在Win10中重启电脑. 重启 ...
- .Net中异步任务的取消和监控
相关类型: CancellationTokenSource 主要用来创建或取消令牌 CancellationToken 监听令牌状态,注册令牌取消事件 OperationCanceledExcepti ...
- centos7 wget安装Tomcat7
2021-07-15 1.环境介绍 操作系统:centos7 jdk版本:jdk1.8.0.211 tomcat版本:tomcat7.0.109 2. 检查系统中是否已经安装 jdk ,如未安装, 请 ...
- 基于Linux系统的网络服务——高速缓存DNS及企业级域名解析服务
1.DNS域名系统 DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数 ...
- 手写AVL平衡二叉搜索树
手写AVL平衡二叉搜索树 二叉搜索树的局限性 先说一下什么是二叉搜索树,二叉树每个节点只有两个节点,二叉搜索树的每个左子节点的值小于其父节点的值,每个右子节点的值大于其左子节点的值.如下图: 二叉搜索 ...
- Python - 面向对象编程 - __init__() 构造方法
什么是构造方法 在创建类时, 可手动添加一个 __init__() 方法,称为构造方法,这是一个实例方法 构造方法用于创建实例对象时使用,每当创建一个类的实例对象时,Python 解释器都会自动调 ...
- tornado2.2安装教程
最近要用到vxworks 系统,所以避免不了要安装tornado 软件,进行相关的开发. 自己在安装过程中遇到了点点问题,这里记录下来,免得以后再次安装时遇到同样的问题. 1. 首先提供一个tor ...