我想將nginx訪問日誌重定向到stdout
以便能夠通過journalctl
(systemd)分析它們。Nginx登錄到stderr
還有與批准的答案相同的問題。 Have nginx access_log and error_log log to STDOUT and STDERR of master process 但它不適合我。用/dev/stderr
我得到open() "/dev/stderr" failed (6: No such device or address)
。與/dev/stdout
我得到journalctl -u nginx
沒有訪問日誌。
nginx.conf
daemon off;
http {
access_log /dev/stdout;
error_log /dev/stdout;
...
}
...
sitename.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.
,並沒有訪問日誌:(
標準錯誤,我沒有工作,但這個配置沒有。謝謝! – cortopy 2016-03-07 20:48:29