web-dev-qa-db-ja.com

nginxデーモンのオン/オフオプションの違いは何ですか?

これは私の最初のWebサーバー管理経験であり、nginxをWebサーバーとして使用するdockerコンテナーを構築したいと思います。すべてのdockerチュートリアルdaemon off;オプションはメイン.confファイルですが、それに関する説明は省略されています。

私はそれについてインターネットで検索しましたが、daemon on;およびdaemon off;オプション。一部の人々は、daemon off;は生産用です。なぜですか?

この2つのオプションの違いは何ですか、なぜdaemon off;生産中ですか?

30
KopBob

通常の運用(サーバー上)では、デフォルトのdaemon on;ディレクティブを使用して、Nginxサーバーがバックグラウンドで起動するようにします。このようにして、Nginxと他のサービスが実行され、互いに通信しています。 1つのサーバーで多くのサービスを実行します。

Dockerコンテナ(またはデバッグ)の場合、daemon off;ディレクティブはNginxにフォアグラウンドにとどまるように指示します。コンテナの場合、これは便利です。ベストプラクティスは、1つのコンテナ= 1つのプロセスです。 1つのサーバー(コンテナー)には1つのサービスのみがあります。

daemon off;の設定は、サービスを制御する Supervisor などのサードパーティツールがある場合にも役立ちます。スーパーバイザを使用すると、サービスの束のステータスを一度に停止/開始/取得できます。

daemon off;を使用してNginxの設定を調整し、サービスを完全に強制終了して再起動します。これにより、構成を迅速にテストできます。完了したら、デフォルトのdaemon on;を使用します。

61
johntellsall

this SO thread で述べたように、「その初期プロセスはすぐにマスターnginxプロセスと一部のワーカーを生成し、その後終了します。Dockerは元のコマンドのPID、コンテナは停止します。」

daemon offディレクティブ 、それはもともとnginxコード開発を目的としていたように見えますが、 [〜#〜] faq [〜#〜]

10
johncosta