Я запускаю приложение django на скручивание, используя скрипты django-on-twisted от этого сайта.
Все запросы обслуживаются сервером nginx, который обращает прокси соответствующие запросы на скрученные. У меня есть установка url для API, которая в основном просто получает запросы на получение и выполняет некоторую обработку параметров get перед отправкой ответа. Однако, когда конкретный клиент нажимает api, скрученный сервер просто выключается. Вставка ниже - журнал Nginx:
the.ip.of.client - - [21/Apr/2012:11:30:36 -0400] "GET /api/url/?get=params&more=params HTTP/1.1" 499 0 "-" "Java/1.6.0_24"
Скрученные журналы не показывают ничего, кроме скрученных остановок, работающих в этой точке. По коду ошибки 499, я предполагаю, что клиент неожиданно закрыл соединение, с которым у меня нет проблем. Получает ли клиент ответ или нет, для меня это не важно. Вот соответствующий вид django:
def api_url(request):
if request.GET:
get_param = request.GET.get('get', [''])[0]
more_param = request.GET.get('more', [''])[0]
#some processing here based on the get params
return HttpResponse('OK')
else:
raise Http404
Запрос от клиента является действительным запросом и не влияет на обработку неблагоприятным образом. Я тестировал его из оболочки. Когда я попробовал это на сервере разработки django, он разбился так же, не оставив следов получения запроса. Все работает отлично, проверяя его в браузере. Кроме того, скрученный сервер хорошо работает для всех обычных случаев использования. Это первый раз, когда я столкнулся с проблемой. Любая помощь или указатели будут оценены.