下面内容整理自bilibili-尚硅谷-Nginx青铜到王者视频教程
Nginx相关文章
Nginx入门到精通一(基本概念介绍)-CSDN博客
Nginx入门到精通二(安装配置)-CSDN博客
Nginx入门到精通三(Nginx实例1:反向代理)-CSDN博客
Nginx入门到精通四(反向代理2)-CSDN博客
Nginx入门到精通六(高可用配置)-CSDN博客
Nginx入门到精通七(Nginx原理)-CSDN博客
========================================================
Master和Worker
Nginx包含:Master 和 worker 进程;可以有一个master和多个worker;
如果是一个,可以修改配置文件中的worker_processes
Worker如何工作的
1, 用户向Nginx发起请求,首先会到Master节点;Maser节点的作用是管理和监控worker
2, Master告诉Worker现在有请求了;
3, Worker通过争抢机制得到任务,进行反向代理
Master-workers机制好处
1, 对于每个worker进程来说,独立的进程不需要加锁,所以省掉锁带来的开销;编程和问题查找的时候也会方便;
2, 采用独立的worker进程,可以互不影响,一个进程退出后恰进程还在工作,服务不会终端,master进程则很快启动新的worker进程。
3, 便于Nginx热部署 nginx -s reload
需要设置多少个worker进程
Nginx类似Redis采用IO多路复用机制,每个worker都是一个独立进程,每个进程只有一个主线程,通过异步非阻塞方式处理请求,即便成千上万个请求也不在话下。每个进程线程可以把一个CPU性能发挥到极致,worker数和核数相等最为合适;设置少了浪费CPU,设置多了会导致CPU频繁切换带来损耗;
如果Nginx部署在Windows中则无法使用IO多路复用机制;
连接数worker-connection
问:发送一个请求,占用worker几个连接数?
答:2个或者4个连接;如果访问的静态资源,client请求worker, worker返回client;
如果是动态资源,还包含Tomcat的请求和返回;所以是4个连接;
计算最大并发数
问:一个Nginx有一个Master和4个Wroker,每个worker支持最大连接数是1024,问该Nginx支持的最大并发数是多少?
答:假如都是静态请求,最大并发数=1024*4/2 = 2048; 假如请求时动态请求,最大并发数 = 1024*4/4 = 1024 1024;
公式:
静态请求:worker_processes * worker_connections / 2
动态请求:worker_processes * worker_connections / 4