进程运行的模型

nginx怎么做动静分离(nginx监控与调优二)(1)

当启动nginx服务器时,系统会生成一个master进程和多个worker进程,所有worker子进程都是由master进程来生成。master进程不仅仅是会生成worker子进程还会对worker子进程进行监控和管理。

worker子进程会监控所有的用户提交上来的请求,通过socket来监控,当有请求进来时,所以的worker子进程会去抢着来处理这个http请求,这里只可能有一个进程可以处理这个HTTP请求,其它进程会失败,这就是所谓的“惊群”现象。

为了解决“惊群”现象,nginx会引入互斥锁accept_mutex,只有获得accept_mutex的子进程才可以去处理客户端提交的请求。

http请求运行过程

nginx怎么做动静分离(nginx监控与调优二)(2)

nginx配置上下文

nginx配置文件的路径:

/usr/local/nginx/conf/nginx.conf

nginx配置文件有几大组成部分 worker_processes 1; evente { ...... } http { server { ...... local { ...... } } } nginx配置文件包括: 全局变量 events上下文 http上下文 server上下文必须是声明在http上下文中 local上下文必须是声明在server上下文中

常见配置项含义:

user:表示子进程用户,master process是主进程,其它的子进程都是由master process来决定 worker_processes:表示当服务器启动时,生成的子进程数,这个子进程数由CPU的核数来决定 error_log:表示错误日志文件位置 worker_connections:表示每个子进程最多允许的连接数 use eproll:表示IO复用模型 include mime.type:表示传输文件的格式 log_format:表示日志文件的格式 access_log:表示日志文件所在的位置 keepalive_timeout:表示长连接时,请求与请求之间的时间间隔 listen:表示监听的端口 server_name:表示服务器的IP地址

,