Для разработки я использую локальный стек LAMP, для производства я использую Контейнер Django от MediaTemple (который мне нравится, кстати). Контейнер MT использует lighthttpd. Честно говоря, у меня никогда не было другого опыта с этим. Я всегда использовал Apache. Я читал:
Вот вопросы:





Преимущество обоих: Apache более мощный и расширяемый (бесполезен, если вам не нужна эта мощность, но в любом случае ...), а lighttpd быстрее обрабатывает статический контент. Идея состоит в том, чтобы разделить ваш сайт на статический контент (css, js, изображения и т. д.) И динамический код, который проходит через Apache.
Я не говорю, что вы не можете многое сделать с помощью lighttpd самостоятельно. Можно, и люди делают.
Если вы используете lighttpd исключительно на своем производственном сервере, я бы серьезно подумал о том, чтобы отразить его на ваших серверах разработки и промежуточных серверов, чтобы вы точно знали, чего ожидать перед развертыванием.
Хороший момент, я считал само собой разумеющимся, что могут быть различия в «выводе».
Используйте стандартный веб-сервер. Apache используется на 50% веб-сайтов (Netcraft), поэтому, если вы используете Apache, пользовательские веб-браузеры, пауки, прокси-серверы и т. д. В значительной степени гарантированно будут работать с вашим сайтом (его веб-сервером в любом случае).
Lighthttpd используется 1,5% веб-сайтов (Netcraft), поэтому вероятность того, что люди будут тестировать свои приложения с его помощью, гораздо ниже.
Любая разница в производительности, скорее всего, не будет иметь значения в производственной среде; сервер Apache, вероятно, может обслуживать статические запросы с гораздо большей пропускной способностью, чем у вас, на самом медленном оборудовании, которое вы, вероятно, развернете в производственной среде.
Да, но эти 1,5% веб-сайтов включают YouTube, поэтому я считаю Lighttpd довольно надежным.
Это довольно бессмысленное сравнение. Все веб-серверы обслуживают страницы одинаково, и их внутренняя работа прозрачна для конечного пользователя. Никаких настроек сервер-браузер не требуется, если сервер соответствует стандартам (а они оба соответствуют).
Ответ зависит от целей вашего проекта. Если это будет крупномасштабный сайт, где время безотказной работы критично, а нагрузка высока, используйте lighttpd; он потрясающе масштабируется. Единственный недостаток заключается в том, что вам нужно иметь больше рук на начальном этапе. Большинство хостов не поддерживают это, и действительно стоит знать, что вы делаете с lighttpd.
Если это сайт вашей матери, который будет получать несколько тысяч посетителей в месяц, apache будет работать лучше. Ей будет намного проще переехать к новому хозяину, и ей будет легче найти поддержку.
Способ взаимодействия между веб-сервером и Django может иметь даже большее влияние на производительность, чем выбор программного обеспечения веб-сервера. Например, известно, что mod_python сильно загружает оперативную память.
Этот вопрос и его ответы также обсуждают другие параметры веб-сервера.
Меня бы не беспокоили проблемы совместимости с клиентским программным обеспечением (см. Комментарий MarkR). У меня не было таких проблем при обслуживании Django с использованием lighttpd и FastCGI. Я хотел бы видеть разнообразную экосистему как серверного, так и клиентского программного обеспечения. Лучше иметь хороший стандарт, чем продукт де-факто от одного поставщика.
Для чисто статических веб-страниц (.gif, .css и т. д.) С n HTTP-запросами с разных IP-адресов: 1. Apache: запускает n процессов (с mod_perl, mod_php в памяти) 2. lighttpd: запускает 1 процесс и 1 поток (вы можете назначить m потоков перед его запуском)
Для чисто динамических веб-страниц (.php, .pl) с n HTTP-запросами с разных IP-адресов: 1. Apache: запускает n процессов (с mod_perl, mod_php в памяти) 2. lighttpd: запускает 1 процесс lighttpd благодаря асинхронному вводу-выводу и запускает m процессов fast-cgi для каждого языка сценариев.
Lighttpd потребляет гораздо меньше памяти. YouTube был большим пользователем lighttpd, пока его не приобрела Google. Посетите его домашнюю страницу для получения дополнительной информации.
P.S. В моей предыдущей компании мы использовали их вместе с балансировщиком нагрузки для распределения HTTP-трафика в соответствии с его суффиксами URL-адресов. Почему не полностью лайттпд? По устаревшим причинам.
Хороший вопрос, который меня тоже беспокоил! Из того, что я слышал, lighttpd лучше подходит для обслуживания статических файлов, но тогда вы говорите, что установка MT использует его, и я знаю множество сайтов PHP, которые его используют. Надеюсь, кто-нибудь сможет объяснить!