У меня есть приложение для приложения Django, и мне было интересно, можно ли nginx распространять прервать/закрыть uwsgi/Django.Пропаганда http abort/close from nginx to uwsgi/Django
В основном я знаю, что nginx знает о преждевременном прерывании/закрытии, поскольку по умолчанию он равен uwsgi_ignore_client_abort
, и вы получаете ошибки nginx 499 в ваших журналах nginx, когда запросы прерываются/закрываются до отправки ответа. Как только uwsgi завершает обработку запроса, он выдает «IO Error», когда он возвращается, чтобы вернуть ответ nginx.
Включение uwsgi_ignore_client_abort
в положение "on" только заставляет nginx не знать о прерывании/закрытии и удаляет uwsgi "IO Errors", потому что uwsgi все равно может записать обратно в nginx.
Мой вариант использования: у меня есть приложение, в котором люди просматривают некоторые результаты ajax очень быстро, и поэтому, если быстрая страница через я прерываю ожидающий запрос ajax для страницы, которую они пропустили, это позволяет клиенту быть чистым и эффективным , Но это ничего не делает для серверной части (uwsgi/Django), потому что они все равно должны обрабатывать каждый отдельный запрос, даже если ничего не ждет ответа.
Теперь очевидно, что могут быть определенные страницы, где я не хочу, чтобы запрос был преждевременно прерван по какой-либо причине. Но я использую сельдерей для длительных запросов, которые могут попасть в эту категорию.
Это возможно? uwsgi's
Настройки hariakari заставляют меня думать, что это на каком-то уровне .... просто не могу понять, как это сделать.
Почему бы не спросить списки рассылки uWSGI и NGINX? – silpol
Да, неплохая идея. Я пробовал IRC-канал uWSGI, но я не думаю, что я очень хорошо объяснил себя. Я думаю, может быть, я снова смогу попробовать, возможно, связавшись с этим вопросом. – byoungb
Любопытно, что uwsgi имеет функцию is_connected. В случаях, когда вы завершили соединение, возвращает ли эта функция False? Похоже, что проблема действительно на стороне uwsgi, так как в документах Nginx указано, что настройки proxy_ignore_client_abort и uwsgi_ignore_client_abort оба отключены глухотой. – jaywhy13