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