Я написал веб-приложение на Django, которое я размещаю под Apache 2.4, используя mod_wsgi.
На первый взгляд все работает нормально. Однако, когда процесс Apache работает некоторое время, веб-приложение начинает отвечать с ошибкой 503. Иногда можно пройти после долгого нажатия F5.
Раздражает то, что У меня нет ничего, связанного с этим в моем журнале ошибок Apache., поэтому я не знаю, с чего начать отладку. Моя единственная подсказка - это ошибка, отображаемая в браузере: 503 Service Unavailable
.
Другие веб-сайты (PHP) не затронуты. Перезапуск сервера Apache немедленно решает проблему.
Моя конфигурация Apache для этого веб-приложения:
WSGIDaemonProcess app python-path=/opt/app home=/opt/app
WSGIProcessGroup app
WSGIScriptAlias /app /opt/app/wsgi.py
я нашел этот но я не думаю, что это проблема, потому что сокеты уже помещены в /var/run/apache2/
в моем случае (не «каталог журналов apache»). Этот каталог доступен для чтения другим. Сами розетки имеют режим 700
, но у вас есть правильный владелец (www-data
).
Любые идеи?
РЕДАКТИРОВАТЬ:
Я заметил, что когда возникает проблема и я перезапускаю Apache, чтобы исправить ее, Apache выходит довольно долго. В журнале ошибок я обнаружил такие сообщения:
[Sun Jun 25 14:14:18.935566 2017] [core:warn] [pid 374:tid 140587055682752] AH00045: child process 21761 still did not exit, sending a SIGTERM
[Sun Jun 25 14:14:18.935637 2017] [core:warn] [pid 374:tid 140587055682752] AH00045: child process 21812 still did not exit, sending a SIGTERM
[Sun Jun 25 14:14:20.937578 2017] [core:warn] [pid 374:tid 140587055682752] AH00045: child process 21761 still did not exit, sending a SIGTERM
[Sun Jun 25 14:14:20.937640 2017] [core:warn] [pid 374:tid 140587055682752] AH00045: child process 21812 still did not exit, sending a SIGTERM
[Sun Jun 25 14:14:22.939827 2017] [core:warn] [pid 374:tid 140587055682752] AH00045: child process 21761 still did not exit, sending a SIGTERM
[Sun Jun 25 14:14:22.939893 2017] [core:warn] [pid 374:tid 140587055682752] AH00045: child process 21812 still did not exit, sending a SIGTERM
[Sun Jun 25 14:14:24.942034 2017] [core:error] [pid 374:tid 140587055682752] AH00046: child process 21761 still did not exit, sending a SIGKILL
[Sun Jun 25 14:14:24.942176 2017] [core:error] [pid 374:tid 140587055682752] AH00046: child process 21812 still did not exit, sending a SIGKILL
Так что, судя по всему, проблема может быть вызвана (WSGI?) Зависшими потоками? Как мне приступить к отладке этого?