myfreax

Nginx三大模块--核心模块

Nginx核心模块,主要配置的是Nginx的指令,进程管理和安全。在下面的列表中,很多指令是必须在主配置文件中使用且只能使用一次,但是有些指令在多个上下文时是有效的

4 min read
By myfreax
Nginx三大模块--核心模块

Nginx核心模块,主要配置的是Nginx的指令,进程管理和安全。在下面的列表中,很多指令是必须在主配置文件中使用且只能使用一次,但是有些指令在多个上下文时是有效的

daemon

Accepted values: on or off

Syntax: daemon on;

Default value: on

开启或者禁用deamon模式,如果你禁用它,程序将不会在后台启动,会一直停留在前台,在debug时一般使用这种模式

debug_points

Accepted values: stop or abort

Syntax: debug_points stop;

Default value: None

在nginx中激活断点调试,

env

   Syntax:
   env MY_VARIABLE;
   env MY_VARIABLE=my_value;

让你可以重新定义环境变量

error_log

Context: main,http, server, and location

Syntax: error_log /file/path level;

Default value: logs/error.log error.

这里有多个错误日志记录级别 debug, info, notice,warn, error, and crit可以为应用,http服务器,虚拟主机,虚拟主机目录,开启不同级别的错误日志,你也可以将日志重定向到/dev/null相当与禁用日志error_log /dev/null crit

lock_file

Syntax: File path

lock_file logs/nginx.lock;

Default value: Defined at compile time

使用互斥锁文件,默认是禁用的,除非你在编译时启用它

log_not_found

Context: main,http, server, and location

Accepted values: on or off

Syntax: log_not_found on;

Default value: on

开启或者禁用记录http404错误

master_process

Accepted values: on or off

Syntax: master_process on;

Default value: on

如果开启,nginx将会启多个进程,包括主进程和worker进程,如果禁用,nginx只会启用唯一一个进程,当开启一个进程时只能用于测试,不能连接到服务器

pcre_jit

Accepted values: on or off

Syntax: pcre_jit on;

开启或者禁用即时编译正则表达式(PCRE版本必须在8.20或者更高),当开启时可以显著提高nginx处理速度,但是你必须要在构建时打开--enable-jit参数,并指定 --with-pcre-jit参数

pid

Syntax: pid logs/nginx.pid;

Default value: Defined at compile time.

Nginx服务的pid文件的路径,可以在编译时加入默认值

ssl_engine

Syntax: ssl_engine $enginename;

Default value: None

开启可用SSL硬件加速器

thread_stack_size

Syntax: Numeric (size)

Example: thread_stack_size 1m;

Default value: None

定义线程栈的大小

user

Syntax: user username groupname;

Example: user username;

Default value: Defined at compile time. If still undefined, the user
and group of the Nginx master process are used.

让你定义用户帐号并且用户组是可选的,当在nginx启动时会被使用,在考虑安全的情况下,你必须指定一个有限制权限的用户

worker_threads

Syntax: Numeric

Example: worker_threads 8;

Default value: None

定义挂载在每个worker进程的线程数,注意!线程默认是禁用的的

worker_cpu_affinity

Syntax: worker_cpu_affinity 1000 0100 0010 0001;

Example: worker_cpu_affinity 10 10 01 01;

Default value: None

详情看文档

worker_priority

Syntax: Numeric

Example: worker_priority 0;

Default value: 0

Defines the priority of the worker processes, from -20 (highest)
to 19 (lowest). The default value is 0. Note that kernel processes
run at priority level -5, so
定义worker进程的优先级,从-20(highest)到19 (lowest),默认值是0,

注意:内核进程运行的优先级别是-5

worker_processes

Syntax: Numeric, or auto

Example: worker_processes 4;

Default value: 1

定义worker进程数,nginx会分发请求到多个进程,默认值是1,如果你CPU有多个核心,建议增大这个值,如果一个进程处理时遇到慢的IO操作,后来发起的请求将会分发给其它的进程

worker_rlimit_core

Syntax: Numeric (size)

Example: worker_rlimit_core 100m;

Default value: None

Defines the size of core files per worker process.
定义worker进程核心文件大小

worker_rlimit_nofile

Syntax: Numeric

Example: worker_rlimit_nofile 10000;

Default value: None
定义worker进程可能使用文件的数量

worker_aio_requests

Syntax: Numeric

Example: worker_aio_requests 10000;

如果你使用的是异步epoll连接处理方式,这个值设定单个worker进程异步I/O操作数