2024年8月9日
dockerコンテナ内のnginxにログを開き直させる方法(logrotate)
たぶん、logrotate と組み合わせるときに必要な情報と思いますが、Docker Hubで配布されているnginxの公式dockerイメージ(alpine版)で、nginx にログを開き直させる方法を調べたので、書いておきます。
$ docker kill -s USR1 コンテナ名
または、次の方法でも行けるでしょう。
$ docker kill -s HUP コンテナ名
もちろん、こんな方法でも開き直せます。
$ docker exec nginx-container nginx -s reopen
つか、docker kill なんてコマンドがあるんですね。知らなかった…。
最近、コンテナ内のnginxが吐くログの logrotate でつまづいていたんですが、どうも、手動で logrotate をデバッグすると動くけど、自動でログローテートするとエラーになるという事で困ってまして。
色々と試したところ、次のコードで動くことが確認できました。(docker 側から /var/log/nginx を volume マウント済みの場合)
/var/log/nginx/*log { daily rotate 10 missingok notifempty sharedscripts compress delaycompress postrotate docker kill -s USR1 コンテナ名 >/dev/null 2>&1 endscript }
関連記事
- nginx用のログローテートを手動で設定する(ログのreopenについて)
- nginxの公式Dockerイメージってalpine版だけopensslのバージョンが違うのね
- nginx+W3 Total Cache+gzipでのVaryヘッダー嵌りどころメモ【WordPress・Brotli】
- W3 Total Cache+AMPプラグインでnginxが起動しない件を対処【WordPress】
- 【Android】URLを別のブラウザで開き直す方法と便利なアプリ「OpenInBrowser」
- 【WordPress】HTTP/3環境で「Undefined array key "HTTP_HOST"」エラーが出る場合の対応