Що найкраще для Джанго? Lighttpd або Nginx? А може, щось інше? [зачинено]


18

Які з Lighttpd та Nginx, виходячи зі свого досвіду, краще підходять для Django? Я використовував і те, і навряд чи помітив будь-яку різницю, вони просто прекрасно працюють ... Чи є випадки використання, коли один з них діє набагато краще, ніж інший? При відповіді будь ласка, враховуйте як простоту конфігурації, так і ефективність.

Моя звичайна установка полягає в тому, щоб запустити окремий процес Django FCGI (наприклад, в ./manage.py runfcgi daemonize=false port=8098 host=127.0.0.1) через daemontools або init.dсценарій та lighty / nginx, що виступає як зворотний проксі.

О, і якщо ви відчуваєте, що якийсь інший сервер http набагато кращий для Django, ніж Lighty та Nginx, будь ласка, не соромтеся поділитися своїми думками.


Якщо служба швидкого обслуговування вмирає, нагляд за програмою daemontools перезапустить її протягом п’яти секунд, тому послуга буде резервна. Але у вас все ще крихітний відставання від простою. Під час мого розгортання я виявив, що fastcgi є крихким, несподівано зупиняючись під слабким тиском. Після декількох простоїв і декількох незручних телефонних дзвінків від клієнтів, я переключив Nginx на зворотний проксі на Apache mod_wsgi і з тих пір все просто гуде.

Відповіді:


14

І Nginx, і Lighttpd є кращими варіантами, ніж апаш, коли мова заходить про їх використання в якості зворотного проксі для Django, Rails тощо. Обидва підтримують FastCGI та Http проксі. Обидва пропонують єдину модель на базі вибору () (або краще) для ефективного використання ресурсів.

Однак мій голос іде за Nginx, він має дуже активну базу користувачів (на даний момент це улюбленець набору Ruby on Rails) і зараз активно розвивається. Lighttpd може бути помилковим, що він мертвий, 2+ років, і ми все ще чекаємо бета-версії 1,5.


7

mod_wsgi - це рекомендований спосіб отримати додаток Django у виробництво. Mod_wsgi Apache набагато краще, ніж nginx. Ви не можете знайти офіційний пакет (у поточних дистрибутивах Linux) для mod_wsgi nginx, і вам потрібно скомпілювати його самостійно. Мені подобається nginx, але якщо ви хочете грати в безпеку, пограйте з Apache mod_wsgi.


2
Nginx mod_wsgi - це не те, що ви хочете використовувати. Nginx найкраще обслуговувати статичний контент та зворотні проксі до Apache mod_wsgi для створення динаміки. Ви не хочете використовувати асинхронний веб-сервер як для створення динамічних сторінок, так і для подання статичного контенту. Apache mod_wsgi самостійно теж не має великого сенсу. Ви не хочете, щоб цей звір був зайнятий розпиленням статичних файлів, в той час як він повинен робити важкий підйом. Детальніше читайте тут b-list.org/weblog/2008/jun/23/media

5

mod-wsgi - це найкращий спосіб запустити програми django у виробництві, менш спритно, ніж fastcgi та не має проблем із часом запуску тощо.

Справжній mod-wsgi призначений для apache, але є інший mod-wsgi для nginx. Apache один геніальний, я не можу коментувати nginx.

Особисто я б тримався подалі від lighttpd. Він не має стабільності nginx, я ще не бачив випадку lighttpd, який не має витоку пам'яті.

В основному, моїм першим вибором буде apache 2.2, другий вибір - nginx.

Не вірте галасуванню щодо часу реакції та масштабованості. Правда, це просто не має значення. (Google використовує Apache).


Google використовує GWS ( en.wikipedia.org/wiki/Google_Web_Server ), а не Apache. Yahoo використовує Apache, але це старовинна вилка 1,3.
Дейв Чейні

YouTube використовує або принаймні використовує lighttpd, тому я не думаю, що це так погано. Дивіться сторінку highscalability.com/youtube-architecture .
Крістіан Цюпіту

Так, але поки GWS є секретним проектом, відомо, що він базується на Apache.

те, що YT не говорить, - це те, що вони мають свої легкі вилки. У справжнього легкого є добре відома проблема витоку пам'яті. Я вважаю, що вони, можливо, це вже виправили, але представник зберігається.
Абхішек Дуджарі

2

Також розгляньте можливість використання Google App Engine. Ви можете безкоштовно розмістити там свій проект Django і не турбуватися про підтримку серверної інфраструктури.


8
Django в GAE має суттєві обмеження, як-от не підтримує жодної з дат баз даних / ORM. Якщо він підтримує те, що вам потрібно, чудово - але перевіряйте уважно!

Я вважаю, що MySQL зараз підтримується GAE, тому я припускаю, що також буде ORM. Хоча це правда, але я не маю досвіду її випробувати. Джанго без ОРМ - це як порно без торрентів.
Абхішек Духарі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.