CoreModuleJa

= Synopsis = これらはNginxを機能させる基本的なディレクティブです.

= Directives =

daemon
Syntax: daemon on | off

Default: on

daemon off;

daemon や master_process ディレクティブをプロダクションモード(サービス提供時)に使用しないで下さい. これらのオプションは主に開発用に用意されています. runit/daemontoolsと併用することで をプロダクションモードで安全に使用することができますが、アップグレード出来ません. はプロダクションモードで使用すべきではありません.

env
Syntax: env VAR|VAR=VALUE

Default: TZ

Context: main

The instruction allows to limit a set of variables of environment, to change it values or to create new variables for following cases:


 * inheritance of variables during upgrading the binary with zero downtime ;
 * for use by the embedded Perl module
 * for use by working processes. However it is necessary to keep in mind, that management of behaviour of system libraries in a similar way probably not always as frequently libraries use variables only during initialization, that is still before they can be set by means of the given instruction. Exception to it is the above described updating an executed file with zero downtime.

If variable TZ is not described obviously it is always inherited and is always accessible to the embedded Perl module.

Example of use: env MALLOC_OPTIONS; env PERL5LIB=/data/site/modules; env OPENSSL_ALLOW_PROXY_CERTS=1;

By default, nginx wipes all its environment variables except TZ variable.
 * "env NAME" allows to keep NAME variable value got from parent process, i.e., shell.
 * "env NAME=val" sets NAME variable value.

debug_points
Syntax: debug_points [stop | abort] 

Default: none

debug_points stop;

Nginx内のいくつかのアサーションポイントをデバッグポイントとして指定できます.

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

Default: ${prefix}/logs/error.log

server(とfastcgi)のエラーログを指定できます. エラーレベルのデフォルト値:


 * 1)  main セクション内 -
 * 2)  HTTP セクション内 -
 * 3)  server セクション内 -

バーチャルホストごとにエラーログを記録することがサポートされています. これはユニークな機能であり、lightedの実装では拒否されました. エラーログを別々にする例は以下を参照してください. SeparateErrorLoggingPerVirtualHost and this mailing list thread on separating error logging per virtual host.

あなたが オプションを付けてNginxをビルドした場合、次のように使うかもしれません: error_log LOGFILE [debug_core | debug_alloc | debug_mutex | debug_event | debug_http | debug_imap];

でエラーログを無効にすることは出来ません("off"というファイルに書き込まれます). 無効にするには次のようにします: error_log /dev/null crit;

ver 0.7.53までは、設定ファイルをロードするまでコンパイル時のエラーログの場所を使用することに注意してください. Nginxの実行ユーザが、この場所への書き込み権限を持っていない場合は次のようなエラーメッセージが表示されます:

[alert]: could not open error log file: open "/var/log/nginx/error.log" failed (13: Permission denied)

include
Syntax: include file | *

Default: none

設定ファイルをインクルード出来ます.

バージョン0.4.4からは、次のようにファイルネームを グロビングできます: include vhosts/*.conf;

バージョン0.6.7までは 時 の相対パスであることに注意してください. デフォルトは です. コンパイル時に指定しなかった場合は絶対パスになります.

バージョン0.6.7からはnginx.confのディレクトリではなく、nginxのプリフィックスディレクトリからの相対パスです.

lock_file
Syntax: lock_file file

Default: ''コンパイル時のオプション"

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
Syntax: master_process on | off

Default: on

master_process off; daemon や master_process ディレクティブをプロダクションモード(サービス提供時)に使用しないで下さい. これらのオプションは主に開発用に用意されています.

pid
Syntax: pid file

Default: compile-time option

Example: pid /var/log/nginx.pid; pidファイルです. killコマンドでシグナルを送るなどに使います. 例えば設定ファイルをリロードする場合は次のように使用します.

ssl_engine
Syntax: ssl_engine engine

Default: 'システムに依存''

お好みの利用可能なopensslエンジンを設定することができます. どのopensslエンジンが使用可能かは、次のコマンドで把握することができます.

For example:

$ openssl engine -t (cryptodev) BSD cryptodev engine [ available ] (dynamic) Dynamic engine loading support [ unavailable ]

timer_resolution
Syntax: timer_resolution t

Default: 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
Syntax: user user [group] 

Default: nobody nobody

もしマスタープロセスがrootで実行されている場合、NginxはUSER/GROUPにsetuid/setgid します. グループが固有ではない場合、USERと同じ名前をグループ名として使用します. デフォルトは と または です. もしくは の と です.

Example: user www users;

worker_cpu_affinity
Syntax: worker_cpu_affinity cpumask [cpumask...] 

Default: none

Linuxのみ.

このオプションを使用すると、sched_setaffinityでワーカープロセスをCPUにバインドすることが出来ます.

For example, worker_processes    4; worker_cpu_affinity 0001 0010 0100 1000;

1つのCPUにのみ、各ワーカープロセスをバインドします. worker_processes    2; worker_cpu_affinity 0101 1010;

CPU0/CPU2へ最初のワーカーをバインドし、CPU1/CPU3に２番目のワーカーをバインドしています. これはHTT(Hyper-Threading Technology)に適しています.

worker_priority
Syntax: worker_priority [-] number

Default: on

あなたの望む優先度(nice値)をワーカープロセスに与えられます. これはsetpriorityを呼び出します.

worker_processes
Syntax: worker_processes number

Default: 1

e.g.: worker_processes 4;

ワーカープロセスはシングルスレッドプロセスです.

もしCPUの処理能力を必要とする処理(SSLやgzip圧縮など)を行なっていて、あなたが2つのCPU/core以上のプロセッサを持っているなら、CPUまたはコアの数と等しくなるようにワーカープロセスを設定することができます.

静的ファイルの合計サイズが使用可能なメモリ量より大きい場合、ディスク帯域幅を利用するためにワーカープロセスを増やすことができます.

worker_cpu_affinityを使ってすべてのワーカープロセスを1つのCPU/coreにスケジュールすることもできます.

Nginxには次のような理由で、複数のワーカープロセスを使用する能力があります.


 * 1)  SMPを使用するため.
 * 2)  ディスクI/Oのブロックエンド時の遅延を減少させるため.
 * 3)  select/pollが使用される時のプロセスあたりの接続数を制限するため.

と から を計算することができます.

max_clients = worker_processes * worker_connections

worker_rlimit_core
Syntax: worker_rlimit_core size

Default:  

デバッグ時に使用される. ワーカあたりのコアファイル最大サイズ.

worker_rlimit_nofile
Syntax: worker_rlimit_nofile limit

Default: ''OSのデフォルト'

プロセスがオープンできる最大ファイルディスクリプタ数を設定する.

worker_rlimit_sigpending
Syntax: worker_rlimit_sigpending limit

Default:  

(Linux 2.6.8以降）呼び出し元プロセスの実ユーザーIDに対して、キューに入れられるシグナル数に上限を指定します. (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
Syntax: working_directory path

Default: --prefix

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

= Variables (変数) =

$pid
プロセスID;

$realpath_root
(undocumented)

= References = Original Documentation