2014-02-12 4 views
4

У меня есть Django + mod_wsgi + сервер Apache. Мне нужно изменить тайм-аут HTTP-соединения по умолчанию. Существует директива Timeout в конфигурации apache, но она не работает.Django http connection timeout

Как я могу настроить это?

+0

для выхода из системы вы можете использовать: 'SESSION_COOKIE_AGE' –

+0

Вам нужно будет объяснить, что оригинальная проблема заключается в том, что у вас есть, поэтому мы можем вывести то, что нужно. Сейчас кажется, что вы догадались о решении и пытаетесь понять, как это сделать, но, не зная проблему, которую вы пытаетесь решить, не имеет большого смысла. –

+0

Когда я выдаю HTTP GET Request на сервер после 60-х, есть тайм-аут (504 Gateway Timeout). Мне нужен способ изменить это на другое значение, то есть на 120 секунд. Существует директива Timeout по настройкам Apache, но это не работает. Я не знаю, это настройки django или mod_wsgi или apache, которые мне нужно изменить. – bradojevic

ответ

0

Существует несколько вариантов тайма-аута в mod_wsgi WSGIDaemonProcess директивы (я думаю, что пассивность тайм-аут может помочь):

пассивности таймаута = SSS (2.0+)

Определяет максимальное количество секунд разрешено пройти до того, как процесс демона завершает работу и перезапускается, когда процесс демона имеет , вступил в состояние ожидания. Для целей этой опции простаивание означает, что не принимаются новые запросы или нет попыток в текущем запросах на считывание содержимого запроса или создание содержимого ответа для заданного периода . Эта опция существует, чтобы разрешить редко используемые приложения, запущенные в процессе демона, для перезапуска, таким образом, , позволяя использовать память для восстановления, при уменьшении размера процесса до первоначального размера запуска до того, как какое-либо приложение было загружено или обработано запросов.

взаимоблокировка тайм-аут = SSS (2.0+)

Определяет максимальное количество секунд разрешено пройти, прежде чем процесс демона выключение и перезапуск после того, как потенциальный тупик на Питон Жиль был обнаружен. Значение по умолчанию - 300 секунд. Этот вариант существует для борьбы с проблемой замораживания процесса daemon как результат использования модуля расширения Python C, который неправильно освобождает Python GIL при вводе в блокировку или длительный период работы .

отключение тайм-аута = SSS

Определяет максимальное количество секунд разрешено проходить при ожидании процесса демона корректно выключения в результате максимального числа запросов или неактивности быть достигнуто, или когда пользователь инициировал сигнал SIGINT, отправляется процессу демона. Когда этот тайм-аут был достигнут, процесс процесса будет принудительно завершен, даже если еще есть активные запросы или он все еще работает с выходами Python . Если эта опция не определена, то время ожидания выключения будет установлено на 5 секунд. Обратите внимание, что эта опция не изменяет тайм-аут завершения работы , применяемый к процессам демона, когда сам Apache остановлен или перезапущен. Это значение тайм-аута определяется внутри для Apache как 3 секунды и не может быть переопределено.

Docs о WSGIDaemonProcess:

Using mod_wsgi daemon mode
Defining Process Groups

+0

Я думаю, что это убьет соединение по таймауту. Я не хочу этого. Мне нужно, чтобы соединение было открыто до тех пор, пока обработка обработки django завершена. – bradojevic

+0

@ ADRENALIN mm, не понял, что вы имеете в виду. Что вы хотите на стороне сервера, когда время обработки запроса превышает время установления тайм-аута? – ndpu

+0

Я просто хочу увеличить время ожидания сервера от 60 до 120 секунд. После 120-х это нормально для тайм-аута. – bradojevic

1

Я решил эту проблему с:

питон manage.py runserver --http_timeout 120

+0

Этот ответ не имеет никакого отношения к вопросу. Они не использовали сервер разработки Django. Они использовали Apache/mod_wsgi. –