FAQ

Page Discussion History

CoreModuleJa

Contents

Synopsis

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

Directives

daemon

Syntax: daemon on | off

Default: on

daemon  off;

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

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

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


error_log

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

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

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

  1. main セクション内 - error
  2. HTTP セクション内 - crit
  3. server セクション内 - crit

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

あなたが--with-debugオプションを付けてNginxをビルドした場合、次のように使うかもしれません:

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

error_log offでエラーログを無効にすることは出来ません("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まではconfigure--prefix=<PATH>の相対パスであることに注意してください。デフォルトは/usr/local/nginxです。コンパイル時に指定しなかった場合は絶対パスになります。

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


lock_file

Syntax: lock_file file

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

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

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


pid

Syntax: pid file

Default: compile-time option

Example:

pid /var/log/nginx.pid;

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


ssl_engine

Syntax: ssl_engine engine

Default: 'システムに依存

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

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:

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

Syntax: user user [group]

Default: nobody nobody

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

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にのみ、各ワーカープロセスをバインドします。

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


worker_priority

Syntax: worker_priority [-] number

Default: on

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


worker_processes

Syntax: worker_processes number

Default: 1

e.g.:

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

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

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

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

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

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

worker_processesworker_connectionsからmaxclientsを計算することができます。

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 --prefix==PATH.

Variables (変数)

$pid

プロセスID;

$realpath_root

(undocumented)

References

Original Documentation