2012-01-03 3 views
2

При использовании django с apache, который является лучшим вариантом конфигурации сервера? Должен ли я использовать mod_wsgi?Django с Python - webserver

На этом этапе конфигурация не завершена. У меня есть только код приложения, который был протестирован с использованием локального сервера разработки, встроенного в django.

Можно ли рекомендовать использовать другое приложение веб-сервера, такое как nginx?

+1

Nginx, Lighttpd довольно хорошие альтернативы .. Использование Apache да 'd использовать mod_wsgi, поэтому mod_python кажется довольно устаревшим –

+0

После небольшого поиска на сайте django указано, что mod_python будет устаревшим после версии 1.5 –

+0

Есть ли большая часть выигрыша/потери производительности при использовании nginx над apache –

ответ

2

Схема с Apache медленнее, чем следующая. Используйте uwsgi (читай следующий пожалуйста): http://www.jeremybowers.com/blog/post/5/django-nginx-and-uwsgi-production-serving-millions-page-views/

+1

Пожалуйста, перефразируйте свой ответ. «вы не можете использовать Apache», немного звучит для меня. OP действительно может использовать Apache + mod_wsgi, и это будет разумная настройка. Если вы считаете, что это лучше, пожалуйста, укажите преимущества и т. Д. –

+0

Хорошо, я сделал это. – sergzach

+0

www.jeremybowers.com в настоящее время состоит из простой «Добро пожаловать в nginx!». сообщение. Не доверяйте мне там :) –

2

Django docs состояние:

Если вы новичок в развертывании Django и/или Python, мы рекомендуем вам попробовать mod_wsgi первым. В большинстве случаев это будет самый простой, быстрый и наиболее стабильный вариант развертывания.

На данный момент я бы выбрал Apache + wsgi.

Большую часть времени настраиваемой Django на Apache сводится к этой линии:

WSGIScriptAlias//path/to/project/bin/django.wsgi 

И django.wsgi это что-то вроде этого:

#!/usr/bin/python 
import djangorecipe.wsgi 
application = djangorecipe.wsgi.main('project.settings', logfile='') 

Я также буду рекомендовать Nginx + FastCGI, а Я предпочитаю nginx lighttpd (он лучше поддерживается, или, по крайней мере, это было моим восприятием последние несколько лет). Но это не распространяется на документы Django, и документация на сайте nginx не так хороша. Я бы придерживался Apache + wsgi, если у вас нет оснований для этого (у вас уже есть nginx или lighttpd, или у вас есть веские основания полагать, что разница в производительности с использованием fastcgi может быть значимой для вашего сайта). В этом случае here являются two howtos. Суть ее в том, что вы запускаете сервер FastCGI с Django:

python manage.py runfcgi host=127.0.0.1 port=8080 --settings=settings 

, а затем настроить Nginx отправлять запросы к ним:

location/{ 
    # host and port to fastcgi server 
    fastcgi_pass 127.0.0.1:8080; 
    # (...) 
Смежные вопросы