Nginx系列1之部分模块详解
1 内核模块:
名称: daemon
语法: daemon on |off
默认值: on
功能: 决定nginx 在前台执行还是后台守护进程执行的
==================
名称: Env
语法: env var | var=value
默认值: 没有
功能: 该指令用于对环境变量重新定义
===================
名称: debug_points
语法: debug_points [ stop| abort ]
默认值: none
功能: 激活所有设置的调试点
====================
名称: error_log
语法: error_log file [debug | info | notice | warn | error | crit]
默认值: ${prefix}/logs/error.log
功能: 这个指令用于nginx服务器(包括FastCGI)指定错误日志的文件和记录错误的级别。
日志的级别有debug,info,notice,warn,error,crit, debug提供了全部日志,而crit仅仅提 供了关键错误
=====================
名称: include
语法: include file | *
默认值: 没有
功能: 该指令用于载入配置文件,需要注意的要是如果没有指定绝对路径,那么文件的路径就和配置文件的目录相关。换言之,nginx会认为与其配置文件在同一个目录下
=====================
名称: lock_file
语法: lock_file file
默认值: 编译时指定
功能: Nginx使用了连接互斥锁进行顺序的accept()系统调用,如果Nginx使用gcc,Intel,C++ 或者是Sunpro C++在i386,amd64和ppc64编译创建,那么Nginx服务器就自动采用异步互斥进行访问控制,而在其他情况下锁文件会被使用。默认是不使用。
例如: lock_file /var/log/lock_file
=====================
名称: master_process
语法: master_process on | off
默认值: on
功能: 如果设置为on,那么Nginx将会开启多个进程,包括一个主进程(就是master进程)和多个worker进程;如果设置为off即为禁用,那么Nginx将会以独一无二的进程,即master进程来运行。生产环境下不要使用off
=====================
名称: ssl_engine
语法: ssl_engine engine
默认值: 依赖于系统
功能: 该指令设置想要使用的Openssl引擎,可以通过下面的命令查找可以用的引擎。
[root@compute01 ~]# openssl engine -t
(rdrand) Intel RDRAND engine
[ available ]
(dynamic) Dynamic engine loading support
[ unavailable ]
=====================
名称:timer_resolution
语法: timer_resolution 时间
默认值: 没有
功能:该指令用于缩短gettimeofday()系统调用的时间,默认情况下gettimeofday() 在kevent(),epoll,/dev/poll,select()及poll()调用完成之后调用。如果在具体的使用中需要一个毕竟准确的时间来记录$upstream_response_time 或者 $msec变量,那么将会使用到该指令
===================
名称: user
语法:user user [group]
默认值: nobody nobody
功能:如果master进程以root用户运行,那么Nginx将会使用setuid()、getuid()来实现User、Group的接替工作,如果没指定group,Nginx会使用相同User一样的组名称,默认情况下,使用Nobody
===================
名称: worker_cpu_affinity
语法: worker_cpu_affinity cpumask cpumask
默认值: none
功能:设置worker进程和cpu的亲和力,
例子:
worker_processes 4;
worker_cpu_affinity 0001 0010 0100 1000
这种设置将每一个进程绑定到一个CPU上,
worker_processes 2;
worker_cpu_affinity 0101 1010;
这样设置是将第一个worker绑定到CPU0/CPU2,将第二个绑定到CPU1/CPU3上面
===================
名称: worker_priority
语法: worker_priority [-] number
默认值: on
功能: 这个指令用于指定worker的进程的优先级,从-20(最高级)到19(最低级),默认值为0,注意kernel进程运行在-5优先级,因此不建议设置-5或娇小的。
===================
名称: work_processes
语法: worker_processes number
默认值: 1
功能: 如果Nginx提供了SSL,或者是gzip,即对CPU的使用率比较高,并且系统中有2个以上的CPU或者内核,那么可以设置worker_processes的值为CPU的数量,或者内核的数量。如果提供了大量的静态文件,并且总的数量超过了有效的内存大小,那么可以增加该指令的值,以从分利用磁盘的带宽,。
由于以下原因,nginx可以能使用多个worker进程:
1 使用SMP
2 在worker进程阻塞了磁盘I/O时,设置多个worker经常可以减少延迟,具体来说就是如果多个worker进程由于慢的I/O操作被阻塞,那么进入的请求会被转交给其他人的worker进程,
3 当使用了select()/poll()限制了每一个进程的连接数时。
===================
名称: worker_rlimit_core
语法: worker_rlimit_core size
默认值:
功能: 定义了每个进程核心文件的最大值,主要用于debug。
===================
名称: worker_rlimit_nofile
语法: worker_rlimit_nofile limit
默认值: No value specified , so OS default
功能: 该指令用于定义一个worker进程可以同时处理的文件数量。
===================
名称: working_directory
语法: working_directory 路径
默认值: 依赖于--prefix
功能:定义worker进程的工作目录,仅用于定义核心(core)文件的位置,对于该目录,worker进程用户(user指令指定的用户) 必须有写的权限,用于能够写入核心。
===================
Nginx 的内核模块提供了以下两个变量
名称: $pid
功能: 该变量表示当前Nginx服务器的进程ID号
===================
名称: $realpath_root
功能: 没有找到相对应的资料
===================
Nginx事件模块:
用于控制Nginx如何处理连接,该模块的指令即指令的一些参数会对应用程序的性能产生重要的影响。因此在设置时要慎重
名称: accept_mutex_delay
语法:accept_mutex_delay Nms
默认值: 500ms
功能:如果一个工作进程(worker process) 没有互斥锁,那么它至少在这个设定值的时间后才会回收。
===================
名称: debug_connection
语法: debug_connect [ip|CIDR]
默认值: none
功能:
===================
后续工作上用到后后继续补充。。。。。。