這里是控制 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 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 daemon off
safely in production mode with runit / daemontools however you can't do a graceful upgrade. master_process off
should never be used in production.
生產(chǎn)環(huán)境中不要使用"daemon"和"master_process"指令,這些選項(xiàng)僅用于開發(fā)調(diào)試。
語法: 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.
應(yīng)該適用于調(diào)試,在調(diào)試器內(nèi)設(shè)置斷點(diǎn)之類的。
語法: error_log file [ debug | info | notice | warn | error | crit ]
缺省值: ${prefix}/logs/error.log
Nginx 添加 --with-debug 編譯參數(shù)
, 你還能夠使用以下配置:
error_log LOGFILE [ debug_core | debug_alloc | debug_mutex | debug_event ]: | debug_http | debug_imap ;
語法: include file | *
缺省值: none
你可以在任意地方使用include指令實(shí)現(xiàn)配置文件的包含,類似于apache中的include方法,可減少主配置文件d。
include
指令還支持像下面配置一樣的全局包含的方法,例如包含一個(gè)目錄下所有以".conf"結(jié)尾的文件:
include vhosts/*.conf;
注意路徑受到configure編譯參數(shù)--prefix=<路徑>指令的影響,如果沒有指定,Nginx默認(rèn)是被編譯在/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 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.
生產(chǎn)環(huán)境中不要使用"daemon"和"master_process"指令,這些選項(xiàng)僅用于開發(fā)調(diào)試。
語法: pid file
缺省值: compile-time option Example:
pid /var/log/nginx.pid;
進(jìn)程id存儲(chǔ)文件??梢允褂?kill -HUP cat /var/log/nginx.pid\
對(duì)Nginx進(jìn)行配置文件重新加載。
語法: 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使用的引擎。你可以通過下面的命令行獲知系統(tǒng)目前支持的openssl引擎
openssl engine -t
例如:
$ openssl engine -t (cryptodev) BSD cryptodev engine : [ available ] (dynamic) Dynamic engine loading support : [ unavailable ]
語法: 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 timer_resolution
.
語法: user user [group]
缺省值: nobody nobody
指定Nginx Worker進(jìn)程運(yùn)行用戶,默認(rèn)是nobody帳號(hào)。
例如:
user www users;
語法: 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,使用該選項(xiàng)可以綁定worker進(jìn)程和CPU.
For example,
worker_proceses 4; worker_cpu_affinity 0001 0010 0100 1000;
Bind each worker process to one CPU only.
分別給每個(gè)worker進(jìn)程綁定一個(gè)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綁定給第一個(gè)worker進(jìn)程,將CPU1/CPU3綁定給第二個(gè)worker進(jìn)程。
語法: worker_priority [-] number
缺省值: on
With this option you can give to all worker processes the priority (nice) you need/wish, it calls setpriority().
使用該選項(xiàng)可以給所有的worker進(jìn)程分配優(yōu)先值。
語法: worker_processes number
缺省值: 1
e.g.:
worker_processes 5;
nginx has the ability to use more than one worker process for several reasons:
nginx可以使用多個(gè)worker進(jìn)程,原因如下:
to use SMP
to decrease latency when workers blockend on disk I/O
to limit number of connections per process when select()/poll() is used
The worker_processes
and worker_connections
from the event sections allows you to calculate maxclients
value: k
max_clients = worker_processes * worker_connections
語法: worker_rlimit_core size
缺省值: '
Maximum size of core file per worker;
語法: worker_rlimit_nofile limit 缺省值: '
Specifies the value for maximum file descriptors that can be opened by this process.
指定
語法: 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 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 --prefix==PATH
.
更多建議: