ホームページ  >  に質問  >  本文

Nginx はどのようにログ ファイルを書き込むのでしょうか?

Nginx ログ ファイルの切り取りを行っているときに、奇妙な問題を発見しました。 Nginx ログ ファイルを別の場所に手動で移動する場合、構成ファイルをリロードしないと、Nginx は別のディレクトリに移動されたログ ファイルを書き込み続けます。
Nginxはログを書き込むときにファイルパスを使用しませんか?
移動した後もログ ファイルに書き込むことができるのはなぜですか?

天蓬老师天蓬老师2712日前726

全員に返信(3)返信します

  • PHP中文网

    PHP中文网2017-05-16 17:32:10

    これはファイル システムの機能であり、変数のライフ サイクルを管理するプログラミング言語の参照カウントに似ています。ファイルを移動したり、ファイルを削除したりしても、ファイルがプロセスによって開かれている限り、ファイルには引き続きアクセスできます。ただし、ファイル名、ハード リンク、ファイル ハンドル (プログラムによって開かれなくなった) などのすべての「参照」が失われると、そのファイルへの次の参照が影響を受け、「ファイルが見つかりません」と表示されます。 。

    返事
    0
  • PHP中文网

    PHP中文网2017-05-16 17:32:10

    その理由は、nginx がログ ファイルを開いた後、実際にはファイルを移動しても i ノード番号が変更されないため、ファイルの書き込みが継続されるためだと思います。

    返事
    0
  • 滿天的星座

    滿天的星座2017-05-16 17:32:10

    nginx は通常、高速化のためにファイルの i ノードをキャッシュします。

    返事
    0
  • キャンセル返事