Kami menggunakan kombinasi format log di nginx dan lmon untuk menangkap hal-hal seperti ini. Format log NGINX seperti:
log_format main '$ status: $ request_time: $ upstream_response_time: $ pipe: $ body_bytes_sent $ connection $ remote_addr $ host $ remote_user [$ time_lfer] "$ request" "$ http_referer" "$ http_user_agent" "$ http_x_forwarded_ untuk $ upstream_status_ upst_studst_studst_stent dalam: $ http_cookie "'
Akan menangkap banyak informasi diagnostik yang bermanfaat, seperti server upstream yang menangani permintaan, serta menempatkan status di depan sehingga mudah dibaca bahkan jika log bergulir dengan sangat cepat.
Kami menggunakan LMON untuk menonton log ini dan kemudian memberi tahu kami (pager / email) jika ada kesalahan, seperti 500, 503, 400, dalam log:
http://www.bsdconsulting.no/tools/lmon-README
Ini dapat membantu Anda diberitahu tentang masalah ketika itu terjadi yang merupakan waktu termudah untuk men-debug itu.
Hal lain yang mungkin harus Anda pertimbangkan jika Anda belum melakukannya adalah bahwa secara default nginx menganggap 500 sebagai kondisi yang fatal dan tidak mencoba hulu yang lain. Jika Anda memiliki beberapa upstreams, Anda dapat mengonfigurasinya untuk menggunakan yang lain jika mendapat 500, semoga mengaburkan kegagalan dari pengguna:
http://wiki.nginx.org/NginxHttpProxyModule#proxy_next_upstream
error_log
. Posting juga file konfigurasi Anda.