Почему Django / mod_wsgi дает сбой при определенной длине URL? - PullRequest
1 голос
/ 20 сентября 2010

У меня здесь странная проблема: я получаю код ошибки 500 от Apache, обслуживающего приложение Django 1.1, когда длина части пути URL, заданного для Apache, указана в [23..26,30. +0,33]. Например, http://server/012345678901234567890123 приводит к ошибке 500, а http://server/012345678901234567 - нет.

Каждая ошибка 500 также приводит к «Не удалось проверить источник запроса». сообщение об ошибке от mod_wsgi в логах. Ошибка не возникает в URL-адресах только для Apache, таких как изображения, она возникает только в Django.

Есть идеи, почему это может происходить?

Ответы [ 2 ]

1 голос
/ 21 сентября 2010

Перейдите к соответствующему списку mod_wsgi в группах Google и подробно опишите, какие версии Apache, Python и mod_wsgi вы используете. Также укажите, какой Apache MPM вы используете, и любые другие нестандартные модули Apache, которые вы используете. Может быть, стоит указать, использовать ли 32-битные или 64-битные приложения.

Эта ошибка относится только к режиму демона и возникает еще до того, как он попадет в ваше приложение WSGI. Честно говоря, ошибка никогда не должна возникать, если не происходит мера повреждения памяти или какая-то очень тонкая ошибка, которая по какой-то причине никогда не возникала при огромном количестве существующих пользователей.

Недавно об этом сообщил еще один человек. Тем не менее, вы, похоже, смогли привязать его к определенной длине URL, что ранее не предлагалось и, по крайней мере, является подсказкой.

Заметь, собираюсь в отпуск. У меня меньше 8 часов, чтобы я мог еще раз серьезно взглянуть на это, и после этого будет очень тяжело, пока я не вернусь.

0 голосов
/ 20 сентября 2010

Возможно ли, что это ошибка где-то в коде вашего приложения?

Измените настройки apache для сайта, чтобы WSGI создал свой собственный журнал ошибок

LogLevel info
ErrorLog /tmp/error_log

Затем запустите

tail -f /tmp/error_log

И попробуйте загрузить один из ваших длинных URL.Надеемся, что сообщение об ошибке появится в файле журнала.По крайней мере, он должен точно определить реальную ошибку.

...