Apache mod_wsgi django: отправка ответа по умолчанию для отложенного запроса

#django #timeout #mod-wsgi #apache2.4

#django #тайм-аут #mod-wsgi #apache2.4

Вопрос:

Я запускаю веб-сервер с использованием Apache 2.4, mod_wsgi и Django. Сервер иногда перегружается из-за высокого трафика. Я хочу настроить сервер таким образом, чтобы он отвечал заранее определенным ответом по умолчанию на отложенные запросы (т. Е. Запросы, Которые ожидали в очереди в течение определенного времени ожидания). Каков наилучший способ сделать это? Кроме того, я хочу сохранить соединение после отправки ответа по умолчанию.

Любая помощь очень ценится.

Ответ №1:

Вы можете настроить mod_wsgi с коротким таймаутом, а затем настроить ошибку таймаута в Apache. Например, если вы хотите, чтобы это произошло через десять секунд, вы можете установить request-timeout=10 в качестве параметра WSGIDaemonProcess директивы.

Затем вы можете настроить Apache для отображения пользовательского сообщения об ошибке для тайм-аутов: ErrorDocument 504 "We're too busy right now, the hamsters are exhausted!" Вы также можете настроить пользовательскую HTML-страницу или URL: https://httpd.apache.org/docs/2.4/custom-error.html

Сделайте все это в пределах a VirtualHost , и он будет ограничен локально. Удачи!