on / var/log/nginx /アクセスログとエラーログがあります。 。logエラーがあるものと、。gzがあるものがあります。
私は許可をめちゃくちゃにしたと思います。一部のファイルはroot/rootによって作成され、他のファイルはnginx.confで構成されたユーザーを使用して作成されます。
/ var/log/nginx /にあるファイルでは、ルールは(少なくとも私の経験では)時間とともに変化しました。まだデータがなければ、私は決定的な提案をするのは快適ではありません。でもやってみます。
NGINX自体は「ルート」として実行されますNGINXプロセスは/etc/nginx/nginx.confで指定されたユーザーとして実行されます。これは通常「www-data」です(ハングアップして読み続けます)
このコマンドを使用して、NGINXの実行方法を確認できます。
ps -eo "%U %G %a" | grep nginx
出力は次のようになります。
root root nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
www-data www-data nginx: worker process
あなたが言わなかったことは、なぜあなたがこの質問をしているのかということです。仮に、ELSECスタックでOSSECを実行しているとしましょう。また、Ubuntu 16.04を使用している場合、2番目の問題は、プロセスがファイルの読み取りと書き込みを行えることです。 logrotateを使用している場合は、logrotateファイルを編集し、ログフォルダーのアクセス許可を変更する必要があります。
手順1-logrotateでnginxファイルを更新します。
nano /etc/logrotate.d/nginx
そのファイルでは、nginxとubuntuの最近のバージョンで、所有権の行を次のように変更すると機能することがわかりました。これは/ etc/logrotate/nginxのファイルにあり、ファイルがローテーションされるときにファイルのアクセス権を設定します。
create 0640 nginx nginx
または代わりに:
create 0640 www-data www-data
ただし、実際にはnginx:nginxはより一貫して機能しており、nginx Webプロセスにログファイルへのアクセス許可を与えることと、ログファイルをrootに設定することのバランスです。
続行するには、レガシーログファイル(たとえば、logstashによって読み取られる)の場合、アクセス許可をリセットすることをお勧めします(ほとんどの人が実際には使用していないことがわかっているデフォルトのファイルの場所を想定しています)。
chmod nginx:nginx /var/log/nginx/*
または(再び)または
chown www-data:www-data /var/log/nginx/*
うまくいけば、これが役立ちます。ログに関しては、nginxの適切な権限に関するデータが混乱を招くだけであることがわかりました。これは、AMAZINGソフトウェアの進化によるものです。そして、私は私の返信についてフィードバックを提供することをもっと知っている他の人を歓迎します。
提供された情報で理解できる限り:
サーバーのログファイルはlogrotateデーモンによって管理されています(ログのアーカイブエンジンとして参照)
これは、いくつかのファイルが.tar.gz形式で表示される理由を説明しています
私はそれらのファイルが所有者rootとして持っているものであるに違いない(詳細はここをチェック http://linuxcommand.org/man_pages/logrotate8.html )。これは、ログローテーションプロセスに指定されたユーザーによって異なります。
その他のファイルは、それらに対するrw権限を持つnginxが所有しています
その場合は、すべてが大丈夫です