CoreModuleChs

= Nginx Main Module = 这里是控制 Nginx 的基本功能的指令.

指令

 * [#daemon daemon]
 * [#debug_points debug_points]
 * [#error_log error_log]
 * [#include include]
 * [#lock_file lock_file]
 * [#master_process master_process]
 * [#pid pid]
 * [#ssl_engine ssl_engine]
 * [#timer_resolution timer_resolution]
 * [#user user group]
 * [#worker_cpu_affinity worker_cpu_affinity]
 * [#worker_priority worker_priority]
 * [#worker_processes worker_processes]
 * [#worker_rlimit_core worker_rlimit_core]
 * [#worker_rlimit_nofile worker_rlimit_nofile]
 * [#worker_rlimit_sigpending worker_rlimit_sigpending]
 * [#working_directory working_directory]

daemon
语法: daemon on | off

缺省值: on

daemon off; Do not use the "daemon" and "master_process" directives in a production mode, these options are mainly used for development only. You can use  safely in production mode with runit / daemontools however you can't do a graceful upgrade. should never be used in production.

生产环境中不要使用"daemon"和"master_process"指令，这些选项仅用于开发调试.

debug_points
语法: debug_points [stop | abort] 

缺省值: none

debug_points stop; There are some assertion points inside nginx that allow to stop nginx to attach the debugger, or to abort and to create the core file.

应该适用于调试，在调试器内设置断点之类的.

error_log
语法: error_log file [ debug | info | notice | warn | error | crit ] 

缺省值: ${prefix}/logs/error.log

Nginx 添加, 你还能够使用以下配置:

error_log LOGFILE [ debug_core | debug_alloc | debug_mutex | debug_event ]: | debug_http | debug_imap ;

include
语法: include file | *

缺省值: none

你可以在任意地方使用include指令实现配置文件的包含，类似于apache中的include方法，可减少主配置文件d.

指令还支持像下面配置一样的全局包含的方法，例如包含一个目录下所有以".conf"结尾的文件:

include vhosts/*.conf; 注意路径受到configure编译参数--prefix=<路径>指令的影响，如果没有指定，Nginx默认是被编译在/usr/local/nginx.

语法: lock_file file

缺省值: compile-time option

lock_file /var/log/lock_file; nginx uses accept mutex to serialize accept syscalls. If nginx is built by gcc, Intel C++, or SunPro C++ compilers on i386, amd64, sparc64, and ppc64, then nginx uses the atomic instructions to implement the mutex. In other cases the lock file would be used.

master_process
语法: master_process on | off

缺省值: on

master_process off; Do not use the "daemon" and "master_process" directives in a production mode, these options are mainly used for development only.

生产环境中不要使用"daemon"和"master_process"指令，这些选项仅用于开发调试.

pid
语法: pid file

缺省值: compile-time option Example:

pid /var/log/nginx.pid; 进程id存储文件. 可以使用 kill -HUP  对Nginx进行配置文件重新加载.

ssl_engine
语法: ssl_engine engine

缺省值: system dependent

Here you can set your preferred openssl engine if any available. You can figure out which one do you have with the commandline tool:

该指令用于指定openssl使用的引擎. 你可以通过下面的命令行获知系统目前支持的openssl引擎

例如:

$ openssl engine -t (cryptodev) BSD cryptodev engine
 * [ available ]

(dynamic) Dynamic engine loading support
 * [ unavailable ]

timer_resolution
语法: timer_resolution t

缺省值: none

Example:

timer_resolution 100ms; The directive allows to decrease number gettimeofday syscalls. By default gettimeofday is called after each return from kevent, epoll, /dev/poll, select, poll.

But if you need an exact time in logs when logging $upstream_response_time, or $msec variables, then you should use.

user
语法: user user [group] 

缺省值: nobody nobody

指定Nginx Worker进程运行用户，默认是nobody帐号.

例如:

user www users;

worker_cpu_affinity
语法: worker_cpu_affinity cpumask [cpumask...] 

缺省值: none

Linux only.

With this option you can bind the worker process to a CPU, it calls sched_setaffinity.

仅适用于linux，使用该选项可以绑定worker进程和CPU.

For example,

worker_proceses    4; worker_cpu_affinity 0001 0010 0100 1000; Bind each worker process to one CPU only.

分别给每个worker进程绑定一个CPU.

worker_proceses    2; worker_cpu_affinity 0101 1010; Bind the first worker to CPU0/CPU2, bind the second worker to CPU1/CPU3. This is suitable for HTT.

将CPU0/CPU2绑定给第一个worker进程，将CPU1/CPU3绑定给第二个worker进程.

worker_priority
语法: worker_priority [-] number

缺省值: on

With this option you can give to all worker processes the priority (nice) you need/wish, it calls setpriority.

使用该选项可以给所有的worker进程分配优先值.

worker_processes
语法: worker_processes number

缺省值: 1

e.g.:

worker_processes 5; nginx has the ability to use more than one worker process for several reasons:

nginx可以使用多个worker进程，原因如下：

The  and   from the event sections allows you to calculate   value: k
 * 1)  to use SMP
 * 2)  to decrease latency when workers blockend on disk I/O
 * 3)  to limit number of connections per process when select/poll is used

max_clients = worker_processes * worker_connections

worker_rlimit_core
语法: worker_rlimit_core size

缺省值: ' 

Maximum size of core file per worker;

worker_rlimit_nofile
语法: worker_rlimit_nofile limit 缺省值: '

Specifies the value for maximum file descriptors that can be opened by this process.

指定

worker_rlimit_sigpending
语法: worker_rlimit_sigpending limit 缺省值: ' 

(Since Linux 2.6.8) Specifies the limit on the number of signals that may be queued for the real user ID of the calling process.

working_directory
语法: working_directory path 缺省值: --prefix 

This is the working directory for the workers. It's used for core files only. nginx uses absolute paths only, all relative paths in configuration files are relative to.