Nginx 全局块配置 worker 进程的两个指令

1. 前言 熟悉 nginx 运行原理的都知道,nginx 服务启动后,会有一个 master 进程和多个 worker 进程,master 进程负责管理所有的 worker 进程,worker 进程负责处理和接收用户请求 在这里我们所要研究的是 master 进程一定要创建 worker 进程吗 ?以及能够创建多少个 worker...

1. 前言


熟悉 nginx 运行原理的都知道,nginx 服务启动后,会有一个 master 进程和多个 worker 进程,master 进程负责管理所有的 worker 进程,worker 进程负责处理和接收用户请求

在这里我们所要研究的是 master 进程一定要创建 worker 进程吗 ?以及能够创建多少个 worker 进程呢 ?

这些内容其实我们都可以通过修改 nginx 的配置文件来进行指定,接下来我们来学习一些相关的配置指令

2. master_process


master_process 是全局块配置,配置文件中默认没有该参数,用来指定是否开启 worker 进程

  1. # 开启(默认值)
  2. master_process on;
  3. # 关闭
  4. master_process off;

打开 nginx.conf 文件,添加 master_process 指令关闭 worker 进程

  1. # 编辑 nginx.conf
  2. vim /usr/local/nginx/conf/nginx.conf
  3. # 添加内容
  4. master_process off;
  5. # 查看 nginx.conf 前 7 行
  6. cat /usr/local/nginx/conf/nginx.conf | head -n 7

一般情况下,修改配置文件后,运行重载配置命令后就会生效,但是 master_process 不会生效

  1. /usr/local/nginx/sbin/nginx -s reload

必须重启 nginx 服务才会生效,也就是先停止 nginx 服务,再重新启动 nginx 服务

  1. /usr/local/nginx/sbin/nginx -s stop
  2. /usr/local/nginx/sbin/nginx
  3. ps -ef | grep nginx

3. worker_processes


worker_processes 也是全局块配置,用于配置 nginx 生成 worker 进程的数量,是 nginx 实现并发处理服务的关键所在

理论上来说,worker_processes 的值越大,生成的 worker 进程的数量就越多,可以支持的并发处理量也越多

但事实上,这个值的设定会受到来自服务器本身的限制,实际配置过程中,关于它的配置,内核数,磁盘,服务器的负载等等都有相关因素,不能因为某一个元素来决定配置多少个数量,建议将该值和服务器 CPU 的内核数保持一致

配置示例:

  1. # 生成两个 worker 进程(默认值)
  2. worker_processes 1;
  3. # 生成两个 worker 进程
  4. worker_processes 2;
  5. # 自动分配
  6. worker_processes auto;

测试效果:将 worker_processes 的数量修改为 2

重载配置是不生效的,需要重启 nginx 服务,然后查看 nginx 相关进程即可

  1. /usr/local/nginx/sbin/nginx -s stop
  2. /usr/local/nginx/sbin/nginx
  3. ps -ef | grep nginx

评论0

首页 导航 会员 客服