[TOC] #### 1. 前言 --- 熟悉 nginx 运行原理的都知道,nginx 服务启动后,会有一个 master 进程和多个 worker 进程,master 进程负责管理所有的 worker 进程,worker 进程负责处理和接收用户请求 在这里我们所要研究的是 master 进程一定要创建 worker 进程吗 ?以及能够创建多少个 worker 进程呢 ? 这些内容其实我们都可以通过修改 nginx 的配置文件来进行指定,接下来我们来学习一些相关的配置指令 #### 2. master_process --- master_process 是全局块配置,配置文件中默认没有该参数,用来指定是否开启 worker 进程 ``` # 开启(默认值) master_process on; # 关闭 master_process off; ``` 打开 nginx.conf 文件,添加 master_process 指令关闭 worker 进程 ```bash # 编辑 nginx.conf vim /usr/local/nginx/conf/nginx.conf # 添加内容 master_process off; # 查看 nginx.conf 前 7 行 cat /usr/local/nginx/conf/nginx.conf | head -n 7 ``` ![](https://img.itqaq.com/art/content/4f57acfb32523ff505bb3ee28d30c802.png) 一般情况下,修改配置文件后,运行重载配置命令后就会生效,但是 master_process 不会生效 ```bash /usr/local/nginx/sbin/nginx -s reload ``` 必须重启 nginx 服务才会生效,也就是先停止 nginx 服务,再重新启动 nginx 服务 ```bash /usr/local/nginx/sbin/nginx -s stop /usr/local/nginx/sbin/nginx ps -ef | grep nginx ``` ![](https://img.itqaq.com/art/content/279233e1fd03981edaa9ff4fc6497038.png) #### 3. worker_processes --- worker_processes 也是全局块配置,用于配置 nginx 生成 worker 进程的数量,是 nginx 实现并发处理服务的关键所在 理论上来说,worker_processes 的值越大,生成的 worker 进程的数量就越多,可以支持的并发处理量也越多 但事实上,这个值的设定会受到来自服务器本身的限制,实际配置过程中,关于它的配置,内核数,磁盘,服务器的负载等等都有相关因素,不能因为某一个元素来决定配置多少个数量,建议将该值和服务器 CPU 的内核数保持一致 配置示例: ``` # 生成两个 worker 进程(默认值) worker_processes 1; # 生成两个 worker 进程 worker_processes 2; # 自动分配 worker_processes auto; ``` 测试效果:将 worker_processes 的数量修改为 2 重载配置是不生效的,需要重启 nginx 服务,然后查看 nginx 相关进程即可 ```bash /usr/local/nginx/sbin/nginx -s stop /usr/local/nginx/sbin/nginx ps -ef | grep nginx ``` ![](https://img.itqaq.com/art/content/a6960f7483568408a3a5f401d5f0e460.png)