Nginx と Logrotate とプロセス・ファイルユーザーまわり on ウェブサービス

Published: 2020/4/11


nginx も logrotate も、大体のサーバーにおいては root 権限で動いている。 nginx は 80 ポートを listen するために root であるべきだし、 logrotate はあらゆるログの rotation を管理する、という構造になっているので、 root じゃないと困る。

nginx は、 access_log などを作成するときには、それを root:root で作成する。 パッとドキュメントを読んだ感じ、それは不可避的である様子。 logrotate は、 rotate した際のファイルの owner は、任意に指定できるようになっている。

であるならば、例えばもしウェブアプリをデプロイしていて、そのアプリケーションの実行ユーザーが個別に作成されているのならば、

  1. nginx はそのアプリケーションの動的ファイル置き場に access_log などを設定し、
  2. logrotate でもってアプリケーションユーザーの owner に変更していく

のが妥当そうだ。


Tags: nginxlogrotate

関連記事