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

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

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

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

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

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

1 Ответ

6 голосов
/ 20 августа 2011

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

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

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 и Баста! нет Apache, нет Nginx, нет больше изучения, чем язык Python!

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...