2009-08-19 3 views
1

Я только что заметил раздражающий фактор: Django требует либо перезагрузки сервера, либо CGI доступ к работе. Первый вариант невозможен, если у вас нет доступа к серверному процессу Apache. Второе, насколько мне известно, вредно для производительности, и в целом идея запуска CGI делает меня неудобным.Django: мне нужно перезапустить Apache при развертывании?

Я также недавно увидел презентацию под названием «почему я ненавижу Django». Хотя я действительно не разделял большинство голосов (парень Flickr), этот факт повторного запуска сервера звучал очень раздражающе.

Я хотел бы узнать ваш мотивированный опыт в этом отношении. Должен ли я продолжить работу с Django и использовать его как CGI или использовать другую инфраструктуру Python? Является ли параметр CGI плохим, и я должен быть обеспокоен этим, или это жизнеспособный вариант (для производительности и масштабируемости)?

+2

Обратите внимание, что разговор Кэл Хендерсона о том, почему он ненавидит Джанго, был * лейтмотивом в DjangoCon *, поэтому он явно не ненавидит все это. Многие из его «ненавистников» были саркастичны или, по крайней мере, имели в виду «могли бы сделать лучше». –

+1

Это все еще лучше, чем веб-разработка Java. Вы должны перезапустить сервер и подождать намного дольше. –

+0

@ Даниэль: да, но некоторые его моменты были хорошими, некоторые другие были саркастическими до предела неуместности. Я понимаю, что он парень с масштабируемостью, но жалуется на пробелы и вкладки, а материал, который идет на проводе, немного чрезмерен ... если вы достигнете такого уровня сарказма, ваша аудитория начнет задаваться вопросом, насколько саркастическим или реальным все остальное , –

ответ

6

Используйте стандарт WSGI, через mod_wsgi. Вам не нужно перезапускать Apache, просто обновляйте mtime в файле .wsgi.

+0

Предполагается, что сервер использует этот модуль apache, я думаю. –

+0

Как еще вы могли бы подключить Django к Apache? Вы используете что-то сумасшедшее, как mod_python? –

+0

да, я. Пожалуйста, не бить меня: D –

0

Обычно я не перезапускаю сервер, а перезагружаю конфигурацию. На сервере Ubuntu Hardy, то есть

sudo /etc/init.d/apache2 force-reload 

и все делается почти сразу.

0

О том, как иметь дело с исходным кодом перезарядка при использовании Apache/mod_wsgi читать:

http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode

http://blog.dscpl.com.au/2008/12/using-modwsgi-when-developing-django.html

http://blog.dscpl.com.au/2009/02/source-code-reloading-with-modwsgi-on.html

Документация является более полезным при чтении. ;-)

+0

Если у вас есть время, подумайте об исправлении сообщения, включив соответствующую информацию в сам ответ и ссылку на ссылочный сайт. Ответные ссылки будут недействительными при изменении связанной страницы. – Unihedron

Смежные вопросы