(systemd)stdoutを介して分析できるように、nginx アクセス ログをリダイレクトしたいと考えています。journalctl
承認された回答を持つ同じ質問があります。
nginx の access_log と error_log をマスター プロセスの STDOUT と STDERR に記録しますが、うまくいき
ません。と/dev/stderr私は得るopen() "/dev/stderr" failed (6: No such device or address)。/dev/stdoutI get no access logs inでjournalctl -u nginx。
nginx.conf
daemon off;
http {
access_log /dev/stdout;
error_log /dev/stdout;
...
}
...
サイト名.conf
server {
server_name sitename.com;
root /home/username/sitename.com;
location / {
proxy_pass http://localhost:3000/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
access_log on;
}
}
nginx.service
[Service]
Type=forking
PIDFile=/run/nginx.pid
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nginx
ExecStartPre=/usr/sbin/nginx -t -q -g 'master_process on;'
ExecStart=/usr/sbin/nginx -g 'master_process on;'
ExecReload=/usr/sbin/nginx -g 'master_process on;' -s reload
ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid
TimeoutStopSec=5
上記のコードで可能なすべてのパラメーターを変更し、異なるnginxバージョン(1.2、1.6)で回避するために最善を尽くしましたが、成功しませんでした。
これを機能させる方法に非常に興味があるので、以前の回答が間違っている、投機的、または環境固有であると考えているため、別のスレッドでこの質問を再度提起します。
$ journalctl -u nginx
次のような行のみが含まれています
Feb 08 13:05:23 Username systemd[1]: Started A high performance web server and a reverse proxy server.
アクセスログの兆候はありません:(