nginx工作原理解析

目录

1、master-workers 的工作机制介绍

2、master-workers 的机制的好处

3、设置多少个 worker

4、最大连接数和支持的最大并发数的计算


1、master-workers 的工作机制介绍

nginx在启动后,会有一个master进程和一个或者多个相互独立的worker进程

过来的请求由master管理,worker进行争抢式的方式去获取请求。

2、master-workers的机制的好处

可以使用nginx -s reload热部署,利用nginx进行热部署

其次,采用独立的进程,可以让互相之前不会影响,一个进程退出后,其他进程还在工作,服务不会中断,master进程很快启动新的workerj进程。当workerj进程异常退出后,会导致当前的worker上的所有请求失败,但是不会影响到所有请求,降低了风险。

3、设置多少个worker

nginx同redis类似都采用了io多路复用机制,每个worker都是一个独立的进程,但每个进程只有一个主线程,通过异步非阻塞的方式来处理请求,即使是千万个请求也不在话下。每个worker的线程可以把一个cpu的性能发挥到极致.

补充:

使用nproc命令查看服务器cpu个数

设置worker进程数的方法步骤

在Nginx中,worker进程是负责处理客户端请求的进程。可以通过更改worker进程数来优化Nginx的性能。

要设置worker进程数,需要编辑Nginx的配置文件nginx.conf。在该文件中,有关worker进程数的配置可以在http块中找到。例如,要将worker进程数设置为4,可以添加下面的配置:

```
http {
  ...
  worker_processes 4;
  ...
}
```

这样会启动个worker进程。建议将worker进程数设置为CPU核心数的2倍。这可确保每个CPU核心都有几个worker进程在运行,从而充分利用系统资源。

保存文件并重新启动Nginx服务,以使更改生效


测试!!!

4、最大连接数和支持的最大并发数的计算

这个值表示每个worker进程所能建立连接的最大值,所以一个nginx能建立的最大连接数,应该是

worker_connections * worker_processes

而所支持的最大并发数为:

    普通的静态访问最大并发数是: worker_connections * worker_processes /2,
    而如果是 HTTP 作为反向代理来说,最大并发数量应该是 worker_connections * worker_processes/4。

注意:发送请求,占用了 woker 2个或者4个链接数(静态资源2个, HTTP 作为反向代理则为4个)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/530723.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

4个关键提示:打造符合规范的网页设计

网页设计也属于UI设计的范畴,是近年来的热门话题。随着互联网时代的到来,越来越多的企业开始关注网页UI设计。正因为如此,UI设计可以说是目前设计行业薪酬最高的存在。 那么,对于目前学习网页设计的小伙伴来说,如何才…

电脑远程控制esp32上的LED

1、思路整理 首先esp32需要连接上wifi 然后创建udp socket 接受udp数据 最后解析数据,控制LED 2、micropython代码实现 import network from socket import * from machine import Pin p2Pin(2,Pin.OUT)def do_connect(): #连接wifi wlan network.WLAN(network.…

SpringBoot项目如何国际化操作,让你可以随意切换语言

1.前言 最近接触的项目需要中文/英文或者其他国家语言的切换,在后台的时候有一个选择,你可以选择中文还是英文,或者其他语言,选择完毕界面语言就都变了,咱不知道前端怎么操作的,但是后台在处理提示语的时候…

Qt/C++推流组件使用说明

2.1 网络推流 公众号:Qt实战,各种开源作品、经验整理、项目实战技巧,专注Qt/C软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发。 公众号:Qt入门和进阶,专门介绍Qt/C相关知识点学…

ppt从零基础到高手【办公】

第一章:文字排版篇01演示文稿内容基密02文字操作规范03文字排版处理04复习&作业解析第二章:图形图片图表篇05图形化表达06图片艺术化07轻松玩转图表08高效工具&母版统一管理09复习&作业解析10轻松一刻-文字图形小技巧速学第三章:…

[dvwa] xss dom

xss dom 0x01 low <script>alert(document.cookie)</script>弹个窗 script被写入html 0x02 medium 过滤<script 考虑使用img标签&#xff0c;其onerror属性在该元素加载src错误时触发 注入元素被写入value&#xff0c;就在value闭合option 和 select标签…

DP:子数组模型

一、最大子数组和 . - 力扣&#xff08;LeetCode&#xff09; 二、环形子数组的最大和 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int maxSubarraySumCircular(vector<int>& nums) {//动态规划思想解决 //环形数组问题&#xff0c;尝试转…

SpringBoot之SpringBoot整合MyBatis

本章详情 使用SpringBoot和MyBatis通过注解的方式操作数据库使用SpringBoot和MyBatis通过XML配置文件的方式操作数据库 项目搭建 1. 打开idea,选择Create New Project 2.选择Spring Initializer,然后点击Next 3.填写组织&#xff0c;坐标等信息&#xff0c;然后点击Next 4.选…

Qt | QObject 类中的成员函数存取属性值与动态属性、用反射机制获取属性的信息

1、注册自定义类型与 QMetaType 类 ①、QMetaType 类用于管理元对象系统中命名的类型,该类用于帮助 QVariant 中的类型以及队列中信号和槽的连接。它将类型名称与类型关联,以便在运行时动态创建和销毁该名称。 ②、QMetaType::Type 枚举类型定义了 QMetaType 支持的类型。其…

婴儿专用洗衣机有必要吗?精选4款品质婴儿洗衣机疯狂安利!

宝宝衣服的清洗对父母来说都很重要&#xff0c;所以挑选一款适合宝宝的小型洗衣机显得尤为重要。也许有许多人认为&#xff0c;为婴儿购买独立的洗衣机是不必要的&#xff0c;但是你是否了解呢&#xff1f;新生婴儿的肌肤要比成人更脆弱&#xff0c;更易受到感染而受到伤害&…

无人零售革新购物体验

无人零售革新购物体验 在智能化技术不断进步的今天&#xff0c;无人零售作为一种整合了尖端科技的新型零售方式&#xff0c;正在快速转变我们的消费体验。这种零售模式&#xff0c;凭借其高效与便捷性&#xff0c;不仅极大地丰富了消费者的购物方式&#xff0c;同时也为零售行…

xss.pwnfunction-Ah That‘s Hawt

<svg/onloadalert%26%2340%3B1%26%2341%3B> <svg/>是一个自闭合形式 &#xff0c;当页面或元素加载完成时&#xff0c;onload 事件会被触发&#xff0c;从而可以执行相应的 JavaScript 函数

flask 访问404

当你的项目有自己的蓝图&#xff0c;有添加自己的前缀&#xff0c;也注册了蓝图。 在访问的路由那里也使用了自己的蓝图&#xff0c;如下图 然后你访问的地址也没问题&#xff0c;但是不管怎么样访问就是返回404&#xff0c;这个时候不要怀疑你上面的哪里配置错误&#xff0c;…

JVM规范中的运行时数据区

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a;每天一个知识点 ✨特色专栏&#xff1a…

[网鼎杯 2020 玄武组]SSRFMe-反弹shell

[网鼎杯 2020 玄武组]SSRFMe 因为用常规方法一直写不出来&#xff0c;所以就换了一种 反弹shell 参考文章 很经典的一道CTF-WriteUP[网鼎杯 2020 玄武组]SSRFMe - FreeBuf网络安全行业门户

大厂Java笔试题之判断字母大小写

/*** 题目&#xff1a;如果一个由字母组成的字符串&#xff0c;首字母是大写&#xff0c;那么就统计该字符串中大写字母的数量&#xff0c;并输出该字符串中所有的大写字母。否则&#xff0c;就输出* 该字符串不是首字母大写*/ public class Demo2 {public static void main(St…

[dvwa] sql injection

sql injection 0x01 low sql语句没有过滤 经典注入&#xff0c;通过逻辑or为真相当于select * from users where true&#xff0c;99换成1也成 用union select 对齐列数&#xff0c;查看数据库信息 1’ union select 1,2# order by探测对齐列数更方便 1’ or 11 order b…

盛最多水的容器(双指针)

11. 盛最多水的容器 - 力扣&#xff08;LeetCode&#xff09; 题目描述 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 …

爱因斯坦求和约定 含代码

目录 一、简介 1.自由标 2.哑标 二、torch实现 1.计算迹 2.取矩阵对角线 3.计算外积 4.batch矩阵乘法 5.带有子列表和省略号 6.变换维度 7.双线性变换&#xff0c;类似于torch.nn.functional.bilinear 一、简介 爱因斯坦求和约定(Einstein summation convention)是一…

Execute-Assembly(1)

原理 在《Cobalt Strike 原理分析》一文中&#xff0c;介绍了内存加载程序集(Assembly)的主要有四步&#xff1a; 1 加载CLR环境 2 获取程序域 3 装载程序集 4 执行程序集 在odzhan的Shellcode: Loading .NET Assemblies From Memory所描述的那样&#xff0c;.Net Framework随着…