2012-02-28 8 views
2

私は、nginxのaccess_logのログファイルとして名前付きパイプを使用しています。パイプを削除して再作成するときに、nginxで内部的に何が起こるかを知りたいと思います。私が注意しているのは、nginxは動作し続けますが、ロギングを停止します。名前付きパイプをログファイルとして使用してパイプを削除して再作成すると、nginxはどうなりますか?

パイプを再作成しなくても、nginxはログ用の通常のファイルを作成しようとしませんでした。

ログを失いたくないのですが、唯一の選択肢はnginxを再起動することです。ログファイルを再度確認するようにnginxを強制できますか?

エラーログのみこれはパイプが存在しないか、パイプが再作成されていても、こう述べています。

2012/02/27 22:45:13 [alert] 24537#0: *1097 write() to "/tmp/access.log.fifo" failed (32: Broken pipe) while logging request, client: 127.0.0.1, server: , request: "GET/HTTP/1.1", upstream: "http://127.0.0.1:8000/", host: "localhost:8002" 

感謝。

答えて

3

AFIAK、ログファイルを再度開くように指示するには、nginxにUSR1信号を送信する必要があります。基本的には、nginxは古いファイルのファイル記述子に書き込もうとしています(そのため、Broken Pipeエラーが表示されます)。詳細はこちら

http://wiki.nginx.org/LogRotation(このページの下部にある他のリンクもクリックしてください)

hth

関連する問題