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 ...
随机推荐
- ABC类IP地址
A类IP地址一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位 必须是"0", 地址范围从1.0.0.0 到126.0.0.0.可用的A类网络有126个,每个 ...
- BeanUtils实现对象拷贝(三)
package beanutil; import java.lang.reflect.InvocationTargetException; import java.util.Date; import ...
- 从拟阵基础到 Shannon 开关游戏
从拟阵基础到 Shannon 开关游戏 本文中的定理名称翻译都有可能不准确!如果有找到错误的同学一定要联系我! 本文长期征集比较好的例题,如果有比较典型的题可以联系我 目录 从拟阵基础到 Shanno ...
- ScheduledExecutorService中scheduleAtFixedRate方法与scheduleWithFixedDelay方法的区别
ScheduledExecutorService中scheduleAtFixedRate方法与scheduleWithFixedDelay方法的区别 ScheduledThreadPoolExecut ...
- 微信小程序 div选中效果
._left{ position: relative; margin-top: 40rpx; width: 40%; height: 350rpx; border-radius: 12rpx; tex ...
- BUU-CTF[CISCN2019 华东南赛区]Web11
BUU-CTF[CISCN2019 华东南赛区]Web11 页面最下端有提示Build with Smarty ! 确定页面使用的是Smarty模板引擎.输入{$smarty.version}就可以看 ...
- vue 引用高德地图
vue 引用地图之傻瓜式教程(复制粘贴即可用) npm 下载 npm install vue-amap --save main.js 代码 import AMap from 'vue-amap'; V ...
- java多线程 synchronized 与lock锁 实现线程安全
如果有多个线程在同时运行,而这些线程可能会同时运行这段代码.程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的. 通过卖火车票的例子 火车站要卖票,我们模 ...
- Vue组件传值(三)之 深层嵌套组件传值 - $attrs 和 $listeners
$attrs 包含了父作用域中不作为 prop 被识别 (且获取) 的特性绑定 (class 和 style 除外).当一个组件没有声明任何 prop 时,这里会包含所有父作用域的绑定 (class和 ...
- go语言游戏服务端开发(一)——架构
五邑隐侠,本名关健昌,12年游戏生涯. 本教程以Go语言为例. 网络游戏程序分为客户端和服务端.客户端负责图形渲染.交互和一些简单校验处理,服务端负责业务逻辑处理.数据存储. 我们开发一个游戏de ...