nginx核心模块常用指令

默认启动Nginx时,使用的配置文件是: 安装路径/conf/nginx.conf 文件,可以在启动nginx的时候,通过-c来指定要读取的配置文件

常见的配置文件有如下几个:

  • nginx.conf:应用程序的基本配置文件
  • mime.types:MIME类型关联的扩展文件
  • fastcgi.conf:与fastcgi相关的配置
  • proxy.conf:与proxy相关的配置
  • sites.conf:配置Nginx提供的网站,包括虚拟主机

核心模块指令:error_log、include、pid、user、worker_cpu_affinity、worker_processes

1、error_log
  日志有6个级别:debug|info|notice|warn|error|crit
Nginx支持将不同的虚拟主机的日志记录在不同的地方,如下示例:

http{
error_log logs/http_error.log error;
  server{
      server_name one;
      access_log logs/one_access.log;
      error_log logs/one_error.log error;
}
  server{
    server_name two;
    access_log logs/two_access.log;
    error_log logs/two_error.log error;
}
}

注意:error_log off不是禁用日志,而是创建一个名为off的日志,要禁用日志,可以这么写:

error_log /dev/null crit;

2、include

你可以包含一些其他的配置文件来完成你想要的功能。

http {
#......
include mime.types;
include proxy.conf;
#......
}

3、其他指令

指令和使用环境

语法和描述

pid

语法:

文件路径:pid logs/nginx.pid

默认值:在编译时定义

用于配置nginx守护进程的pid文件路径

user

语法:

user username ;

user username groupname;

默认值:在编译时定义,若未定义,则使用nginx的master进程的用户和用户组

该指令将允许你定义用户和组别,nginx的worker进程将使用这些设置运行

worker_cpu_affinity

语法:

worker_cpu_affinity 1000 0100 0010 0001;

worker_cpu_affinity 10 10 01 01;

worker_cpu_affinity ;

默认值:无

该指令与woker_processes协同工作,它可以让你的worker进程影响cpu内核,数字序列与worker进程一样多。

如果你配置nginx使用3个worker进程,那么就会有3个数字序列(可以理解为3个块),对于双核cpu,那么每一个块将会有两位数字,worker_cpu_affinity 01 01 10

1、第一块(01)指第一个worker进程会受第二个内核影响

2、第二块(01)指第二个worker进程会受第二个内核影响

3、第三块(10)指第三个worker进程会受第一个内核影响

注意:worker_cpu_affinity只建议针对多核处理器而非超线程处理器

语法:worker_cpu_affinity cpummask [cpumask]

默认值:无

说明:该选项仅适用于Linux,该选项允许你将worker进程绑定到一个CPU上,通过调用sched_setaffinity() 例如:

worker_processes 4;

worker_cpu_affinity 0001 0010 0100 1000;

以上指令实现了将每一个进程绑定到一个cpu

worker_processes 2;worker_cpu_affinity 0101 1010;

以上指令实现了将第一个worker进程绑定到cpu0/cpu2

第二个worker进程绑定到cpu1/cpu3

这适用于超线程(HTT)cpu

worker_processes

语法:

worker_processes 4;

默认值:1

定义工作进程数量,nginx可以将请求的处理分到多个工作进程,如果属于cpu多核建议增加该值,如果一个进程由于慢的I/o操作被阻塞,那么进入的工作进程将转交给其他工作进程

注:根据负载自动调整worker进程设置:worker_processes auto;

上一篇:python操作redis-set


下一篇:Nginx Rewrite相关功能-ngx_http_rewrite_module模块指令