Pada mesin pengembangan lokal, saya memiliki proxy reverse nginx seperti:
server {
listen 80;
server_name myvirtualhost1.local;
location / {
proxy_pass http://127.0.0.1:8080;
}
server {
listen 80;
server_name myvirtualhost2.local;
location / {
proxy_pass http://127.0.0.1:9090;
}
Namun jika saya men-debug aplikasi saya, responsnya mungkin tertunda untuk waktu yang tidak terbatas, namun setelah 30 detik saya mendapatkan:
504 Gateway Time-out
sebagai tanggapan.
Bagaimana saya bisa menonaktifkan batas waktu dan meminta proxy reverse saya menunggu selamanya? Dan saya suka pengaturannya menjadi global, sehingga saya tidak perlu mengaturnya untuk setiap proxy.
nginx
configuration
timeout
k0pernikus
sumber
sumber
Jawaban:
Mungkin tidak mungkin untuk menonaktifkannya sama sekali, namun solusi yang layak adalah meningkatkan waktu eksekusi. Di situs tutorial nginx , ditulis:
dan memuat ulang konfigurasi nginx ':
Saya telah menggunakan nilai yang agak besar yang tidak mungkin terjadi, yaitu
999999
atau menggunakan satuan waktu , hingga satu hari lewat1d
.Berhati-hatilah bahwa pengaturan nilai
0
akan segera menyebabkan kesalahan batas waktu gerbang.sumber
0
tidak berfungsi! Perhatikan bahwa Anda dapat menentukan satuan waktu dengan sufiks yang dapat dibaca , sehingga Anda dapat menggunakan nilai seperti1d
.proxy_connect_timeout 600;
ke file nginx.conf, tetapi batas waktunya masih menyala 60 detik. Ada lagi yang harus saya coba?Jika Anda menggunakan AWS, dan Load Balancer, Anda harus mengedit batas waktu idle. Saya pikir default adalah 60 detik
sumber
Saya telah berjuang dengan kesalahan batas waktu nginx 502 dan tidak bisa menyelesaikan masalah. Namun, itu terjadi karena gunicorn yang menyebabkan kesalahan batas waktu. Jadi, Anda mungkin juga perlu memeriksa pengaturan fastcgi Anda.
Untuk gunicorn:
sumber