Kami memiliki server aplikasi yang terkadang hang. Kami menduga itu karena permintaan yang buruk dari klien.
Bisakah nginx mencatat permintaan / respons lengkap (seperti tangkapan fiddler) ke file, sehingga kita dapat melihat permintaan yang dikirim sebelum hang?
(Kita mungkin perlu menghindari pcap dan pendekatan itu dan melakukan semuanya di nginx)
Jika nginx bukan alat yang tepat untuk ini, apa (selain penganalisa jaringan) yang mungkin?
Jawaban:
Untuk mendapatkan badan permintaan yang dikirim oleh pengunjung, gunakan
client_body_in_file_only on;
dan catat file "sementara" yang ditulisnya dalam log dengan menambahkan var$request_body_file
ke format log. File "Sementara" akan ditempatkan di direktori client_temp secara default.Anda juga dapat mencatat tajuk permintaan
$http_<header>
dan mengirim tajuk$sent_http_<header>
.Jika Anda memiliki badan dan tajuk permintaan, Anda harus dapat memutar ulang dan mendapatkan respons yang dimiliki pengunjung Anda.
Juga sesuatu seperti gor harus sangat dipertimbangkan sehingga Anda dapat memutar ulang lalu lintas di lingkungan lain di mana Anda dapat membiarkan nginx menulis file sementara ini tanpa menyebabkan masalah IO dalam produksi (nginx tidak akan membersihkannya dengan
on
nilai karena itu bukan "sementara" pada kasus ini).sumber
client_body_in_file_only
dan$http_<header>
akan dibutuhkan. Saya mengerti sekarang.mitmproxy tampaknya menjadi alat yang tepat untuk melakukan apa yang Anda minta.
Mode reverse proxy akan memungkinkan Anda menangkap permintaan dan respons seperti yang dilakukan Fiddler.
sumber