闲话

今天从下午三点学到了晚上将近十点,前一章节的高并发给我整的够呛,各种问题,但是自己跟自己约定了,今天一定要结束nginx的学习

基本要点

1、Nginx分为单工作进程和多工作进程两种模式
在单工作进程模式下,除主进程外,还有一个工作进程,工作进程是单线程的;在多工作进程模式下,每个工作进程包含多个线程。nginx默认使单工作进程模式

2、master和worker
1)master进程(管理进程):
接收来自外界的信号、向worker分配任务、监控worker的运行状态、当woker进程退出后(异常情况下),会自动重新启动新的woker进程

2)worker进程
主要是负责接受和处理请求,多个worker采用争抢的方式处理请求

master和worker协作方式如下

Nginx主进程是如何管理子进程的 nginx几个进程_服务器

3、worker数的设置应该和服务器CPU数量一致

4、worker连接数worker_connection
一般为2或者4个,如果worker只访问静态资源时,就只有2个
如果worker既要访问静态资源又要访问动态资源(例如tomcat),那就有4个连接

5、假如一个nginx有一个master和四个worker,每个worker支持的最大连接数是1024,那么nginx支持的最大并发数是多少?
一般这种问题我们就需要分2种情况去考虑
1)普通的静态资源访问时:
最大并发数 = worker_connection*worker_process/2

2)如果nginx还作为反向代理,需要去访问动态资源时
最大并发数 = worker_connection*worker_process/4

6、采用多进程的好处
1)对于每个worker进程来说,独立的进程,不需要加锁,所以省掉了锁带来的开销,而且便于排查问题和编程
2)采用独立的进程,可以让互相之间不会影响,一个进程退出后,其它进程还在工作,服务不会中断,master进程则很快启动新的worker进程。

个人感觉自己分析的不够详细,后面还会回过头来更新

如有错误,欢迎指正