nginx工作原理解析

2024-04-09 16:44
文章标签 工作 nginx 原理 解析

本文主要是介绍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个)

这篇关于nginx工作原理解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/888692

相关文章

C++ 右值引用(rvalue references)与移动语义(move semantics)深度解析

《C++右值引用(rvaluereferences)与移动语义(movesemantics)深度解析》文章主要介绍了C++右值引用和移动语义的设计动机、基本概念、实现方式以及在实际编程中的应用,... 目录一、右值引用(rvalue references)与移动语义(move semantics)设计动机1

Nginx错误拦截转发 error_page的问题解决

《Nginx错误拦截转发error_page的问题解决》Nginx通过配置错误页面和请求处理机制,可以在请求失败时展示自定义错误页面,提升用户体验,下面就来介绍一下Nginx错误拦截转发error_... 目录1. 准备自定义错误页面2. 配置 Nginx 错误页面基础配置示例:3. 关键配置说明4. 生效

Nginx更新SSL证书的实现步骤

《Nginx更新SSL证书的实现步骤》本文主要介绍了Nginx更新SSL证书的实现步骤,包括下载新证书、备份旧证书、配置新证书、验证配置及遇到问题时的解决方法,感兴趣的了解一下... 目录1 下载最新的SSL证书文件2 备份旧的SSL证书文件3 配置新证书4 验证配置5 遇到的http://www.cppc

Nginx之https证书配置实现

《Nginx之https证书配置实现》本文主要介绍了Nginx之https证书配置的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起... 目录背景介绍为什么不能部署在 IIS 或 NAT 设备上?具体实现证书获取nginx配置扩展结果验证

MySQL 筛选条件放 ON后 vs 放 WHERE 后的区别解析

《MySQL筛选条件放ON后vs放WHERE后的区别解析》文章解释了在MySQL中,将筛选条件放在ON和WHERE中的区别,文章通过几个场景说明了ON和WHERE的区别,并总结了ON用于关... 今天我们来讲讲数据库筛选条件放 ON 后和放 WHERE 后的区别。ON 决定如何 "连接" 表,WHERE

Java线程池核心参数原理及使用指南

《Java线程池核心参数原理及使用指南》本文详细介绍了Java线程池的基本概念、核心类、核心参数、工作原理、常见类型以及最佳实践,通过理解每个参数的含义和工作原理,可以更好地配置线程池,提高系统性能,... 目录一、线程池概述1.1 什么是线程池1.2 线程池的优势二、线程池核心类三、ThreadPoolE

Nginx 访问控制的多种方法

《Nginx访问控制的多种方法》本文系统介绍了Nginx实现Web访问控制的多种方法,包括IP黑白名单、路径/方法/参数控制、HTTP基本认证、防盗链机制、客户端证书校验、限速限流、地理位置控制等基... 目录一、IP 白名单与黑名单1. 允许/拒绝指定IP2. 全局黑名单二、基于路径、方法、参数的访问控制

Mybatis的mapper文件中#和$的区别示例解析

《Mybatis的mapper文件中#和$的区别示例解析》MyBatis的mapper文件中,#{}和${}是两种参数占位符,核心差异在于参数解析方式、SQL注入风险、适用场景,以下从底层原理、使用场... 目录MyBATis 中 mapper 文件里 #{} 与 ${} 的核心区别一、核心区别对比表二、底

Nginx服务器部署详细代码实例

《Nginx服务器部署详细代码实例》Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,:本文主要介绍Nginx服务器部署的相关资料,文中通过代码... 目录Nginx 服务器SSL/TLS 配置动态脚本反向代理总结Nginx 服务器Nginx是一个‌高性

nginx跨域访问配置的几种方法实现

《nginx跨域访问配置的几种方法实现》本文详细介绍了Nginx跨域配置方法,包括基本配置、只允许指定域名、携带Cookie的跨域、动态设置允许的Origin、支持不同路径的跨域控制、静态资源跨域以及... 目录一、基本跨域配置二、只允许指定域名跨域三、完整示例四、配置后重载 nginx五、注意事项六、支持