Подтвердить что ты не робот

Какой веб-сервер использовать с Django? (обновлено для использования в 2011 году)

Я задаю этот вопрос, потому что я новичок, и я прочитал почти 90% статей о Django, но проблема в том, что: Django был создан и имел проблемы для развертывания, это python, а python - не PHP! При чтении уроков Django у начинающего есть большая проблема, потому что он может найти учебник "устаревший", например, если вы возьмете учебник, сделанный в 2008 году, вы увидите, что они говорят так:

для развертывания django, использования apache и не забудьте использовать другой сервер для статических файлов, например nginx в качестве обратного прокси!

Но теперь я нашел несколько статей, говорящих о том, что создание второго сервера бесполезно, потому что в прошлом Django обслуживался с помощью mod_python, который использует много ресурсов! Итак, вот мой вопрос:

  • Какой из них лучше всего подходит для VPS, Apache или Nginx, используя последнюю версию курса! Пожалуйста, не говорите: используйте lighty или cherokee...
  • Если, например, ответ был: используйте Ngnix, то лучше ли использовать один сервер или два, так как в прошлом лучше было создать два веб-сервера?
  • Когда я проверил свой мозг, я обнаружил, что доступно только немного свободного пространства, поэтому я не хочу изучать что-то еще, так что вы думаете, что 100% -ное решение pythonic будет в порядке? CherryPy - это идеальное решение, означающее, что CherryPy + Django и basta! нет Apache, нет Nginx, не больше, чем язык python!
  • Из того, что я прочитал, Django и асинхронные серверы не являются "хорошими друзьями", поэтому действительно ли получается хороший выбор для использования Nginx?

Обновлено: добавлено (4) о Django и асинхронном.

4b9b3361

Ответ 1

1 - тот, который лучше всего подходит для VPS, Apache или Nginx, используя последние релиз конечно! пожалуйста, не говорите: используйте lighty или cherokee...

Либо все будет работать нормально.

2 - если, например, ответ был: используйте ngnix, тогда лучше ли используйте один сервер или два, так как в прошлом было лучше сделать два вебсервер?

Основной момент, который заключается в том, что Django/Python не должен обслуживать ваши статические ресурсы. "Два сервера" могут быть разными физическими серверами или экземплярами или виртуальными серверами. Здесь приведен пример настройки nginx для непосредственного обслуживания статических файлов, а затем передачи динамических запросов на Python:

Из https://code.djangoproject.com/wiki/DjangoAndNginx:

server {
    listen 80;
    server_name localhost;
    location /site_media  {
        root /media/; # Notice this is the /media folder that we create above
    }
    location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|mov) {
        access_log   off;
        expires      30d; 
    }
    location / {
        # host and port to fastcgi server
        fastcgi_pass 127.0.0.1:8080;
        fastcgi_param PATH_INFO $fastcgi_script_name;
        fastcgi_param REQUEST_METHOD $request_method;
        fastcgi_param QUERY_STRING $query_string;
        fastcgi_param CONTENT_TYPE $content_type;
        fastcgi_param CONTENT_LENGTH $content_length;
        fastcgi_pass_header Authorization;
        fastcgi_intercept_errors off;
        }
}

3 - когда я проверил свой мозг, я обнаружил, что свободных пространство, поэтому я не хочу изучать что-то еще, так что вы думаете 100% -ное решение для питонов будет в порядке? CherryPy - это прекрасно решение, среднее, CherryPy + Django и basta! нет Apache, нет Nginx, нет больше обучения, чем язык python!

IMO, настройка Apache или nginx довольно проста, и есть много ресурсов. Вам не нужно много узнавать о них, чтобы настроить что-то простое.