0
点赞
收藏
分享

微信扫一扫

Nginx 全局模块及events模块 02

乌龙茶3297 2022-04-17 阅读 224
nginxlinux

目录

一、 全局块

1.1 概况

1.2 nginx用户权限

1.3 master及其works进程控制

1.3.1 master_process:

1.3.2 worker_processes

1.4 其他控制

1.4.1 daemon

1.4.2 access_log

1.4.3 error_log

1.4.4 include

二、events模块

2.1 简介

2.2 配置

2.2.1 accept_mutex,设置Nginx网络连接序列化

2.2.2 multi_accept,用来设置是否允许同时接收多个网络连接

2.2.3 worker_connections:用来配置单个worker进程最大的连接数

2.2.4 use:用来设置Nginx服务器选择哪种事件驱动来处理网络消息

三、关于epoll介绍

3.1  select 、poll、epoll对比



一、 全局块

1.1 概况

        全局模块主要是用于配置关于master和work进程相关内容,以及nginx的用户(权限)、日志等。

1.2 nginx用户权限

1.2.1 user

        

值       释义
username 用于配置nginx用户;eg: user nobody;

注意: ① 默认值为 nobody。

            ② 配置静态文件等情况,有无法访问的时候,需要查看文件权限及其所属用户信息。

1.3 master及其works进程控制

1.3.1 master_process:

值       释义
on        开启master进程(默认值) eg: master_process on;
off                    关闭master进程,此时将只有一个nginx进程进行服务提供

注意: ①默认开启master进程。

            ②关闭后,不在有master进程和worker进程区别,只有一条进程进行服务提供。

1.3.2 worker_processes

值       释义
number worker进程数量:  eg:  worker_processes 1;

注意:① 只有master_process on;开启时才会生效

           ② 默认值为1,值大小需要具体情况具体分析,但是一般设置为cpu处理核数量。

1.4 其他控制

1.4.1 daemon

        设定Nginx是否以守护进程的方式启动,不会随着终端关闭而停止。

值       释义
on        开启守护进程 (默认值) eg:  daemon: on;
off                    关闭守护进程。eg: daemon: off;

1.4.2 access_log

值       释义
filePath

指定access_log文件路径    eg:   access_log: logs/access.log 

注意: ① 上文用了相对路径,即相对于prefix路径(/usr/local/nginx)

            ② 这个配置既可以作为全局配置,也可以为server、location单独配置

1.4.3 error_log

值       释义
filePath

指定error_log文件路径    eg:   error_log: logs/error.log 

注意: ① 上文用了相对路径,即相对于prefix路径(/usr/local/nginx)

            ② 这个配置既可以作为全局配置,也可以为server、location单独配置

1.4.4 include

值       释义
filePath

指定其他模块的conf文件,eg: include: other/*.conf

注意:

        ① 当nginx要配置多个模块的时候,比如多个service,那么为了方便模块管控,一个service可以使用一个conf文件进行配置

        ② 可以使用*.conf进行通配匹配,我们一般会将这些放到一个我们定制的目录之中


二、events模块

2.1 简介

        主要用于配置nginx处理请求时的相关配置

2.2 配置

2.2.1 accept_mutex,设置Nginx网络连接序列化

值       释义
filePath

指定其他模块的conf文件,eg: include: other/*.conf

        开启该选项表示所有worker进程轮流的接受新的请求。默认情况下,一旦有新的请求都会通知所有的worker进程。如果新连接的数量较低,那所有请求都会通知一遍worker进程,造成系统资源浪费。 

        建议开启,以免引起惊群效应

2.2.2 multi_accept,用来设置是否允许同时接收多个网络连接

值       释义
on        开启  eg:  multi_accept: on;
off                    关闭 (默认值)。eg: multi_accept: off;

        如果multi_accept被禁止了,nginx一个工作进程只能同时接受一个新的连接。否则,一个工作进程可以同时接受所有的新连接。

        建议开启,否则效率太低了

2.2.3 worker_connections:用来配置单个worker进程最大的连接数

值       释义
number

eg: worker_connections: 512 (默认值)

        这里的连接数不仅仅包括和前端用户建立的连接数,而是包括所有可能的连接数。另外,number值不能大于操作系统支持打开的最大文件句柄数量。

2.2.4 use:用来设置Nginx服务器选择哪种事件驱动来处理网络消息

值       释义
method

eg: use: epoll       (默认值:系统方案) 

注意:① 一般有  select、poll、epoll三种方案,默认为系统方案

           ② 建议使用epoll

三、关于epoll介绍

3.1  select 、poll、epoll对比

         select和poll都是直接使用linux内核的文件集,但是select有所限制,poll没有限制,故poll比select会高效一些。

        epoll方式则是,linux内核会创建一个epoll文件集的红黑树,其单独的空间检索更为快速,处理也就更快,且没有限制,故为高效。

        具体详见搞懂Select,Poll,Epoll的区别-IT乾坤技术博客

参考资料:  1. 黑马程序员介绍

                    2. 博客:搞懂Select,Poll,Epoll的区别-IT乾坤技术博客

上一节:Nginx简介及其基本结构 01 

下一节: nginx信号控制 03 

举报

相关推荐

0 条评论