2016-12-14 8 views
0

私はdebugging section of NGINXを読んでおり、デバッグを有効にするためには、nginxをある方法でコンパイルまたは起動してからconfigオプションを変更する必要があります。私はなぜこれが2つのステップのプロセスであるのか分かりませんし、 "悪いのでデバッグメッセージをロギングしていなくても、長い間デバッグモードでnginxを実行したくない"ということを推測しています。いつもnginx-debugを実行するのは悪いですか?

コンフィグレーションオプション(error_log)はすでにロギングレベルを設定しているので、デバッグレベルのログを表示するときに、デバッグモードで常にコンパイル/実行して設定を変更できませんでしたか?これには何が欠点ですか?デバッグメッセージをロギングしていなくても、コンパイル/デバッグモードで起動すると、nginxが遅く動作しますか?

答えて

1

最初に、nginxをデバッグで実行するには、nginx docsで説明されているように、通常のnginxではなくnginx-debugバイナリを実行する必要があります。あなたがそれをしないと、error_logをデバッグするように設定しても動作しないので、それはうまくいかないでしょう。 WHYは2段階のプロセスであることがわかりましたが、決定が正確に行われた理由はわかりません。

デバッグはたくさんのログ、fd情報などを吐き出すので、すべてのログを書き込む必要があるなど、システムの速度が遅くなる可能性があります。デベロッパーサーバーでは数百から数千のリクエストを持つプロダクションサーバー上でうまくいきますが、そのログによって生成されたディスクI/Oがサーバーの速度を低下させたり、ディスクI/O。また、ディスク容量もすぐに使い尽くされる可能性があります。

また、常にデバッグモードで実行する理由は何ですか?あなたはそれらのログで探している特別なものはありますか?私はあなたがなぜそれを望むのか理解しようとしていると思います。

また、本番環境でデバッグを実行する場合は、少なくともdebug_connectionというディレクティブを使用し、特定のIPだけをログに記録することをお勧めします。

+0

ログレベルが低く設定された状態で 'nginx-debug'を実行すると、これはすべて当てはまりますか(例えば、' error_log /var/log/nginx/error.log error; ')?標準的なドッカーイメージを使用し、より多くのログが必要なときに構成を変更するだけです。 'nginx-debug'を実行すると、避けるのが便利なドッカーをミックスに投げ込むときにいくつかのステップが必要になります。 –

+1

通常のerror_logレベルでnginx-debugを実行すると、うまく動作し、オーバーヘッドを追加しません。ログはnginxと同じになります。 – Raul

+0

クール、それは私が望んでいたものでした。私はまだconfigオプションが既にその機能を提供しているときに、なぜnginxを実行する別の方法を気にするのだろうと思っています。 –

関連する問題