Назад | Перейти на главную страницу

Как устранить ошибку тайм-аута критического рабочего стола?

Я использовал nginx и gunicorn для размещения своего сайта на двух серверах,

Оба сервера имеют одинаковые версии пакетов, и веб-сайт успешно размещен,

Но на одном из моих серверов Gunicorn всегда получает тайм-аут, и я получаю ошибку

[CRITICAL]Worker Timeout
Booting worker with pid
Worker cannot boot with pid

И после этого я получаю ошибку 502 Badgateway на веб-странице. Мне нужно перезапустить процесс стрельбы, чтобы открыть веб-сайт.

Ниже приводится журнал ошибок:

2014-02-16 14:29:53 [1267] [CRITICAL] WORKER TIMEOUT (pid:4994)
2014-02-16 14:29:53 [1267] [CRITICAL] WORKER TIMEOUT (pid:4994)   
2014-02-16 14:29:53 [22140] [INFO] Booting worker with pid: 22140

И я получаю такую ​​ошибку:

2014-02-16 14:29:53 [22140] [DEBUG] Ignoring EPIPE
Ignoring EPIPE
2014-02-16 14:29:53 [22140] [DEBUG] Ignoring EPIPE
Ignoring EPIPE
2014-02-16 14:29:57 [22140] [DEBUG] Ignoring EPIPE
Ignoring EPIPE

И снова рабочий запускается,

2014-02-16 14:32:44 [1267] [CRITICAL] WORKER TIMEOUT (pid:4993)
2014-02-16 14:32:44 [1267] [CRITICAL] WORKER TIMEOUT (pid:4993)
2014-02-16 14:32:44 [22276] [INFO] Booting worker with pid: 22276

Снова игнорирую ошибку EPIPE, и это продолжается до тех пор, пока я не перезапущу пулемет. И когда я получаю эту ошибку, я получаю ошибку шлюза 504 от nginx

Чтобы исправить это, увеличьте флаг тайм-аута в Nginx,

В Nginx увеличение proxy_connect_timeout и proxy_read_timeout, вы можете добавить следующее в файл nginx.conf под http директива. По умолчанию они равны 60-м.

proxy_connect_timeout 300 с;

proxy_read_timeout 300 с;

Перезагрузите сервер Nginx. Видеть Документы nginx по таймаутам.

Если вышеуказанное исправление не работает, увеличьте флаг тайм-аута Gunicorn в конфигурации Gunicorn, таймаут Gunicorn по умолчанию составляет 30 секунд.

- тайм-аут 90

Документация Gunicorn о тайм-ауте

-t INT, --timeout INT 30 Рабочие, молчащие дольше указанного количества секунд, будут убиты и перезапущены.

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

Документы Gunicorn о тайм-аутах рабочих

Надеюсь, это решит проблему.