【Nginx那些事】系列

【Nginx那些事】nginx 安装及常用指令
【Nginx那些事】Nginx 配置文件说明
【Nginx那些事】nginx原理解析
【Nginx那些事】nginx配置实例(一)反向代理
【Nginx那些事】nginx配置实例(二)负载均衡
【Nginx那些事】nginx配置实例(三)动静分离
【Nginx那些事】nginx配置实例(四)搭建高可用集群

【Nginx那些事】nginx原理解析

  • nginx的master和worker关系
  • 思考

nginx的master和worker关系

master只有一个,是领导,负责管理、监控。worker有很多个,是打工者,负责处理领导分发的任务。

但master不会去分配任务,而是会通知各位worker一声,各位worker再去争夺资源(客户端),已经抢到的不会再去争夺下一个资源,争夺到后worker开始读取请求-解析请求-处理请求,数据彻底返回客户端之后,这个worker争夺事件就算结束,可以继续争夺下一个资源。

思考

1、一个master和多个woker的好处
对于每个worker进程来说,独立的进程,不需要加锁,所以省掉了锁带来的开销,同时在编程以及问题查找时,也会方便很多。其次,采用独立的进程,可以让互相之间不会影响,一个进程退出后,其它进程还在工作,服务不会中断,master进程则很快启动新的worker进程。当然,worker进程的异常退出,肯定是程序有bug了,异常退出,会导致当前worker上的所有请求失败,不过不会影响到所有请求,所以降低了风险。

2、设置多少个woker合适
Nginx同redis类似都采用了io多路复用机制,每个worker都是一个独立的进程, 但每个进程里只有一个主线程,通过异步非阻塞的方式来处理请求,即使是千上万个请求也不在话下。每个worker的线程可以把一个cpu的性能发挥到极致。所以worker数和服务器的cpu数相等是最为适宜的(一般设置work数与cpu数一致)。设少了会浪费cpu,设多了会造成cpu频繁切换上下文带来的损耗。

3、连接数worker_ connection计算
这个值是表示每个worker进程所能建立连接的最大值,所以,一个nginx 能建立的最大连接数,应该是worker_connections * worker_processes。当然,这里说的是最大连接数,对于HTTP 请求本地资源来说,能够支持的最大并发数量是worker_connections * worker_processes,如果是支持http1.1的浏览器每次访问要占两个连接,所以普通的静态访问最大并发数是: worker_connections * worker_processes / 2, 而如果是HTTP作为反向代理来说,最大并发数量应该是worker_connections * worker_proceses/4. 因为作为反向代理服务器,每个并发会建立与客户端的连接和与后端服务的连接,会占用两个连接
worker_connections :连接数
worker_processes:worker数

【Nginx那些事】nginx原理解析相关推荐

  1. Nginx的原理解析

    本文来说下Nginx相关的原理 文章目录 概述 worker 是如何工作的 一个 master 和多个 worker 的好处 设置多少个 worker 合适 相关思考 本文小结 概述 Nginx 启动 ...

  2. Nginx的核心原理解析

    Nginx 反向代理VS正向代理: 反向代理服务器对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置.客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向 ...

  3. 【Nginx那些事】nginx配置实例(三)动静分离

    [Nginx那些事]系列 [Nginx那些事]nginx 安装及常用指令 [Nginx那些事]Nginx 配置文件说明 [Nginx那些事]nginx原理解析 [Nginx那些事]nginx配置实例( ...

  4. 【Nginx那些事】nginx配置实例(二)负载均衡

    [Nginx那些事]系列 [Nginx那些事]nginx 安装及常用指令 [Nginx那些事]Nginx 配置文件说明 [Nginx那些事]nginx原理解析 [Nginx那些事]nginx配置实例( ...

  5. 【Nginx那些事】nginx配置实例(一)反向代理

    [Nginx那些事]系列 [Nginx那些事]nginx 安装及常用指令 [Nginx那些事]Nginx 配置文件说明 [Nginx那些事]nginx原理解析 [Nginx那些事]nginx配置实例( ...

  6. 【Nginx那些事】Nginx 配置文件说明

    [Nginx那些事]系列 [Nginx那些事]nginx 安装及常用指令 [Nginx那些事]Nginx 配置文件说明 [Nginx那些事]nginx原理解析 [Nginx那些事]nginx配置实例( ...

  7. 【Nginx那些事】nginx 安装及常用指令

    [Nginx那些事]系列 [Nginx那些事]nginx 安装及常用指令 [Nginx那些事]Nginx 配置文件说明 [Nginx那些事]nginx原理解析 [Nginx那些事]nginx配置实例( ...

  8. 【Nginx系列】Nginx配置使用与工作原理

    热门系列: [Linux系列]Linux实践(一):linux常用命令 程序人生,精彩抢先看 目录 1.Nginx介绍 1.1 什么是Nginx? 1.2 Nginx能做什么 1.3 为什么要选择用N ...

  9. nginx配置文件及工作原理详解

    nginx配置文件及工作原理详解 1 nginx配置文件的结构 2 nginx工作原理 1 nginx配置文件的结构 1)以下是nginx配置文件默认的主要内容: #user nobody; #配置用 ...

最新文章

  1. 7.Set集合总结(TreeSet集合和HashSet集合)
  2. 安利 10 个 Intellij IDEA 实用插件
  3. 【Tools】cmake 常用变量和常用环境变量查表手册---整理
  4. python multiprocessing — 基于进程的并行
  5. WatchOS系统开发大全(4)-WatchApp生命周期
  6. node.js知识点总结
  7. 轻量级自动化运维工具ansible之一:初步介绍及简单运用
  8. 数不清的Gmail邀请发放中……
  9. 机器学习、深度学习教程和代码资源帖
  10. 《Arduino实战》——1.7 为代码编写注释
  11. 从来都是少数决定多数
  12. 《信息化项目文档模板一——项目需求说明书》
  13. 用matlab进行函数插值的几种方法
  14. eclipse简单导入xtend项目
  15. 企业级Docker容器镜像仓库Harbor的搭建
  16. 三、Fiddler抓包——Fiddler过滤器-Fiddler抓包数据筛选
  17. 云南农业大学matlab,云南农业大学关于公第七届学生科技.doc
  18. 阿里云游戏盾价格(收费标准)
  19. openmeetings 2.0 汉化文件
  20. Wpf开发VLC播放器(万能播放器)

热门文章

  1. python——适用于py3的pillow图像处理模块plist组图分割
  2. Linux命令基本格式(详解版)
  3. 【ICLR2019】Oral 论文汇总
  4. 初识构造方法 c# 1613698729
  5. linux-vim编辑器简览
  6. linux_ELF静态注入
  7. 【翻译】ANDROID KTX – 使用Kotlin进行Android开发
  8. Java使用递归实现全排列的代码
  9. Debian系linux系统常用配置软件源
  10. 在 远程桌面 权限不足无法控制 UAC 提示时,可使用 计划任务 绕开系统的 UAC 提示...