### Nginx主模塊
這里是控制 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 `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.
生產環境中不要使用"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 添加 `--with-debug 編譯參數`, 你還能夠使用以下配置:
~~~
error_log LOGFILE [ debug_core | debug_alloc | debug_mutex | debug_event
]: | debug_http | debug_imap?;
~~~
### include
**語法:***include file | **
**缺省值:***none*
你可以在任意地方使用include指令實現配置文件的包含,類似于apache中的include方法,可減少主配置文件d。
`include` 指令還支持像下面配置一樣的全局包含的方法,例如包含一個目錄下所有以".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 `cat /var/log/nginx.pid\` 對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`
例如:
~~~
$ 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 `timer_resolution`.
### 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進程,原因如下:
1. to use SMP
1. to decrease latency when workers blockend on disk I/O
1. 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
**語法:***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 `--prefix==PATH`
- 主要文檔
- Nginx功能概述
- 為什么選擇Nginx
- Nginx安裝
- 運行和控制Nginx
- 配置符號參考
- 優化 Nginx
- 常見問題(FAQ)
- 調試 nginx
- 核心模塊
- Nginx主模塊
- Nginx事件模塊
- 基本模塊
- http核心模塊
- HttpIndex模塊
- HttpAccess模塊
- HttpAuthBasic模塊
- HttpAutoindex模塊
- Browser模塊
- Charset模塊
- HttpEmptyGif模塊
- HttpFcgi模塊
- Geo模塊
- HttpGzip模塊
- HttpHeaders模塊
- HttpIndex模塊
- HttpReferer模塊
- HttpLimit zone
- HttpLimitReqest模塊
- HttpLog模塊
- map
- Memcached
- HttpProxy模塊
- HttpRewrite模塊
- HttpSSI模塊
- HttpUserId
- 其他模塊
- Addition模塊
- EmbeddedPerl
- flv
- HttpGzipStatic
- RandomIndex
- HttpGeoIP
- HttpRealIp
- HttpSSL
- StubStatus模塊
- HttpSubstitution
- HttpDav模塊
- GooglePerftools
- HttpXSLT
- HttpSecureLink
- HttpImageFilter
- mail模塊
- MailCore
- MailAuth
- MailProxy
- MailSSL
- 安裝
- nginx在windows上的安裝
- nginx在freebsd上的安裝
- nginx在ubuntu上的安裝
- nginx在fedora上的安裝
- nginx php-fpm安裝配置
- 配置示例和方法
- 完整例子
- 完整例子2
- 虛擬主機
- 負載均衡
- nginx防盜鏈
- HWLoadbalancerCheckErrors