Спасибо! Я решил это. Проблема была в атрибуте «простоя» балансировщика нагрузки amazon. Было установлено 5 секунд. Я не понимал, что проблема может быть там, пока вы не упомянули балансировщик нагрузки.
я есть установка сДжанго-Nginx-gunicorn-супервизора PostgreSQL, В админке Django у меня есть 504, если загрузка представления занимает более 5 секунд.
Например, если я отфильтрую представление списка изменений по множеству записей и займет больше времени, появится 504. То же представление с меньшим количеством записей работает, если это занимает меньше времени.
Я также заметил, что некоторые представления все еще работают в фоновом режиме, даже после 504, потому что я вижу изменения, которые они вносят в базу данных после их завершения.
Я пытался увеличить все найденные таймауты (nginx, gunicorn), но ни один из них не был настроен на 5 секунд.Любое предположение о том, что может быть неправильно настроено? Или где может быть тайм-аут, который поднимает 504?
Спасибо
Таймауты, которые я настроил:
В / etc / nginx / sites-enabled / mysite
proxy_connect_timeout 60;
proxy_read_timeout 90;
proxy_send_timeout 90;
send_timeout 90;
fastcgi_read_timeout 300;
В /etc/nginx/nginx.conf
send_timeout 300;
keepalive_timeout 65;
proxy_connect_timeout 300;
proxy_read_timeout 300;
proxy_send_timeout 300;
В файле gunicorn_start (запускается супервизором)
exec gunicorn -c ${CONF_FILE} ${DJANGO_WSGI_MODULE}:application \
--name ${NAME} \
--user=${USER} --group=${GROUP} \
--log-level=debug \
--timeout=90
В файле gunicorn.conf (предыдущий $ {CONF_FILE})
timeout = 90
graceful_timeout = 30
keepalive = 3