Apakah ada cara untuk memiliki proses master log ke STDOUT STDERR daripada ke file?
Tampaknya Anda hanya bisa meneruskan file ke arahan access_log:
access_log /var/log/nginx/access.log
Dan hal yang sama berlaku untuk error_log:
error_log /var/log/nginx/error.log
Saya mengerti bahwa ini mungkin bukan fitur nginx, saya akan tertarik pada solusi ringkas yang menggunakan ekor, misalnya. Lebih disukai meskipun itu berasal dari proses master karena saya menjalankan nginx di latar depan.
Jawaban:
Sunting: tampaknya nginx sekarang mendukung
error_log stderr;
seperti yang disebutkan dalam jawaban Anon .Anda dapat mengirim log ke
/dev/stdout
. Dinginx.conf
:sunting: Mungkin perlu menjalankan ln -sf / proc / self / fd / dev / jika menggunakan kontainer docker tertentu, kemudian gunakan
/dev/fd/1
atau/dev/fd/2
sumber
ENXIO
ketika stdout terbuka ke soket daripada file. Ada tiket kernel upstream yang menunjukkan bahwa ini disengaja dan dengan niat: bugzilla.kernel.org/show_bug.cgi?id=1360 - jadi, sementara jawaban ini cukup dalam beberapa kasus, itu tidak sepenuhnya mencakup berbagai kemungkinan kegagalan.stderr
sesuai dengan dokumen)Jika pertanyaannya terkait dengan buruh pelabuhan ... gambar nginx docker resmi melakukan ini dengan membuat softlink menuju stdout / stderr
RUN ln -sf /dev/stdout /var/log/nginx/access.log && ln -sf /dev/stderr /var/log/nginx/error.log
REF: https://microbadger.com/images/nginx
sumber
FROM nginx:alpine RUN ln -sf /dev/stdout /var/log/nginx/access.log \ && ln -sf /dev/stderr /var/log/nginx/error.log CMD ["nginx-debug", "-g", "daemon off;"]
http://nginx.org/en/docs/ngx_core_module.html#error_log
Jangan gunakan:
/dev/stderr
Ini akan merusak pengaturan Anda jika Anda akan menggunakan systemd-nspawn.sumber
Saat menjalankan Nginx dalam wadah Docker, ketahuilah bahwa volume yang dipasang di atas dir log mengalahkan tujuan membuat softlink antara file log dan stdout / stderr di Dockerfile Anda, seperti dijelaskan dalam jawaban @Boeboe .
Dalam hal ini Anda dapat membuat softlink di titik masuk Anda (dijalankan setelah volume di-mount) atau tidak menggunakan volume sama sekali (misalnya ketika log sudah dikumpulkan oleh sistem logging pusat).
sumber
Pada gambar buruh pelabuhan dari PHP-FPM, saya telah melihat pendekatan seperti itu:
sumber
Untuk tujuan debug:
Untuk tujuan klasik
Memerlukan
Di bawah braket server pada file konfigurasi
sumber