Saya menjalankan Django, FastCGI, dan Nginx. Saya membuat semacam api di mana seseorang dapat mengirim beberapa data melalui XML yang akan saya proses dan kemudian mengembalikan beberapa kode status untuk setiap node yang dikirim.
Masalahnya adalah bahwa Nginx akan membuang 504 Gateway Time-out jika saya membutuhkan waktu terlalu lama untuk memproses XML - saya pikir lebih lama dari 60 detik.
Jadi saya ingin mengatur Nginx sehingga jika ada permintaan yang cocok dengan lokasi / api tidak akan habis selama 120 detik. Pengaturan apa yang akan mencapai itu.
Sejauh ini yang saya miliki adalah:
# Handles all api calls
location ^~ /api/ {
proxy_read_timeout 120;
proxy_connect_timeout 120;
fastcgi_pass 127.0.0.1:8080;
}
Sunting: Apa yang saya miliki tidak berfungsi :)
configuration
nginx
fastcgi
heats
sumber
sumber
Jawaban:
Waktu tunggu proxy baik, untuk proxy, bukan untuk FastCGI ...
Arahan yang mempengaruhi waktu tunggu FastCGI adalah
client_header_timeout
,client_body_timeout
dansend_timeout
.Sunting : Mempertimbangkan apa yang ditemukan di nginx wiki, arahan send_timeout bertanggung jawab untuk mengatur batas waktu tanggapan secara umum (yang agak menyesatkan). Untuk FastCGI ada
fastcgi_read_timeout
yang mempengaruhi batas waktu respons proses fastcgi .HTH.
sumber
Bagi mereka yang menggunakan nginx dengan unicorn dan rails, kemungkinan besar timeout ada di Anda
unicorn.rb
filemenempatkan batas waktu besar di unicorn.rb
jika Anda masih menghadapi masalah, coba fail_timeout = 0 di hulu Anda di nginx dan lihat apakah ini memperbaiki masalah Anda. Ini untuk keperluan debugging dan mungkin berbahaya di lingkungan produksi.
sumber
Di
http
bagian nginx (/etc/nginx/nginx.conf) tambahkan atau modifikasi:Di
server
bagian nginx (/etc/nginx/sites-available/your-config-file.com) tambahkan baris ini:Dalam
php
file dalam kasus 127.0.0.1:9000 (/etc/php/7.X/fpm/pool.d/www.conf) ubah:Saya harap membantu Anda.
sumber
Jika Anda menggunakan unicorn.
Lihat di
top
server Anda. Unicorn kemungkinan menggunakan 100% CPU sekarang. Ada beberapa alasan masalah ini.Anda harus memeriksa permintaan HTTP Anda, beberapa di antaranya bisa sangat sulit.
Periksa versi unicorn. Mungkin Anda baru saja memperbaruinya, dan ada yang rusak.
sumber
Di server proxy diatur seperti itu
Di server php diatur seperti itu
sumber