вторник, 4 января 2011 г.

Статика и девелоперский сервер на большом Django-проекте


Что есть девелоперский сервер?
Хотел бы поделиться одним своим наблюдением насчет работы со статикой сервера django, который из коробки, и, собственно, не рекомендуемый для использования в production-среде. Для простоты использования статических файлов, то бишь всяких там стилей, картинок и клиентских скриптов, разработчики django-фреймворка втулили некое представление:
django.views.static.serve
Наверное большиство django-программистов используют эту вещь в работе, как и девелоперский сервер:
python ./manage.py runserver :
Более того, по статистике djangosites 1.2% пользователей не заморачиваются со всякими там инжиниксами, и апачами, и публикуют свои приложение таким вот нехитрым способом.

Проблемка
При этом всем, наверное, немногие сталкивались с тем, даже в довольно крупных проектах, что девелоперский сервер зависает на каждом втором-третьем запросе, что не просто раздражает, а делает разработку практически невозможной. С одной из причин такого зависания я недавно столкнулся. А дело было в статических ресурсах, которые должны были отдаваться клиенту, но по объективным причинам не отдавалий, то есть на каждый запрос по требованию картинки, скрипта, и т.д. приходил ответ 404. Так вот, если таких ресурсов накопится 20-30, сервер виснет уже на 2-3 запросе.

Вместо заключения
Причина этого кроется в том, что над такими проблемами с сервером никто не заморачивается, так как для работы в production-среде он не предназначен, и уж тем более для обслуживания статики.

Комментариев нет:

Отправить комментарий

В этом гаджете обнаружена ошибка