Я установил новый магазин Satchmo на дистрибутив Linux Debian 6. Стандартный сервер разработки Django работает отлично, но в рабочем режиме с nginx + FastCGI через некоторое время (или похоже на то, что какой-то лимит памяти будет переполнен) nginx выдает ошибку «502 Bad gateway».
В файлах журнала я нашел эти строки:
2011/12/02 02:38:57 [ошибка] 29894#0: *91439 recv() не удалось (104: соединение сброшено узлом) при чтении заголовка ответа от восходящего потока, клиент: 2.95.158.164, сервер: my-secret- host.com, запрос: "GET / HTTP/1.1", восходящий поток: "fastcgi://unix:/var/run/www/file.sock:", хост: "my-secret-host.com"
Я много искал в Интернете и обнаружил, что nginx не может получить правильный ответ от моего сервера django fastcgi. Я пробовал разные настройки сервера django (maxchildren, maxrequests), но ошибка все еще здесь (вывод: более высокие значения - дольше жизнь без ошибок). При настройках maxchildren=3 maxrequests=10 ошибка случайным образом появляется после 5-10 обновлений страницы, а после 15 обновлений появляется всегда.
Я также обнаружил, что когда я прокомментировал некоторые строки исходного кода satchmo, ошибка исчезла. Это очень странно, потому что это очень важные строки для правильной работы магазина. Я думаю, что это может быть ключом к причине проблемы. Разница находится здесь: http://dpaste.com/hold/664978/
Проблема исчезнет, если я:
- закомментируйте
PAYMENT_PROCESSOR=True
строку в моем единственном платежном модуле. - закомментировать
config_register(MultipleStringValue(SHIPPING_GROUP, ...)
вshipping/config.py
Я думаю, что эти строки ведут к реальным причинам сбоя моего рабочего сервера. Как я могу решить эту проблему полностью? Есть предложения по моему расследованию?
ОБНОВЛЕНИЕ:
После включения ведения журнала satchmo я нашел это сообщение:
Пн, 05 дек. 2011 13:26:37 ОШИБКА конфигурации Проблема с поиском настроек SHOP.SHOW_SITE, сервер неожиданно закрыл соединение Это, вероятно, означает аварийное завершение работы сервера до или во время обработки запроса.
Вероятно, это можно решить с помощью рецепта отсюда https://groups.google.com/group/satchmo-users/browse_thread/thread/506b3ad77e7a766e?hl=es&pli=1. Я попробую это немного позже.