Apache или lighttpd

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

Вот вопросы:

  • Какие сильные стороны у одного над другим?
  • Будет ли мне выгодно использовать lighthttpd в моих настройках разработчика?
  • Что не так с использованием обоих? В статье на Linux.com рассказывается об использовании lighttpd с Apache.

person imjoevasquez    schedule 05.10.2008    source источник
comment
Хороший вопрос, который меня тоже беспокоил! Из того, что я слышал, lighttpd лучше для обслуживания статических файлов, но затем вы говорите, что установка MT использует его, и я знаю множество сайтов PHP, которые его используют. Надеюсь, кто-нибудь объяснит!   -  person roryf    schedule 05.10.2008


Ответы (5)


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

Этот вопрос и его ответы также обсуждают другие параметры веб-сервера.

Меня не беспокоят проблемы совместимости с клиентским программным обеспечением (см. комментарий MarkR). У меня не было таких проблем при обслуживании Django с использованием lighttpd и FastCGI. Я хотел бы видеть разнообразную экосистему как серверного, так и клиентского программного обеспечения. Наличие хорошего стандарта лучше, чем продукт де-факто от одного поставщика.

person akaihola    schedule 06.10.2008

Преимущество обоих: Apache более мощный и расширяемый (бесполезный, если вам не нужна эта мощность, но в любом случае...), а lighttpd быстрее работает со статическим контентом. Идея состоит в том, чтобы разделить ваш сайт на статический контент (css, js, изображения и т. д.) и динамический код, который проходит через Apache.

Я не говорю, что вы ничего не можете сделать с lighttpd самостоятельно. Вы можете, и люди делают.

Если вы используете lighttpd исключительно на своем рабочем сервере, я бы серьезно подумал о том, чтобы отразить это на ваших серверах разработки и промежуточных серверах, чтобы вы точно знали, чего ожидать, прежде чем развертывать.

person Oli    schedule 05.10.2008
comment
Хороший вопрос, я считал само собой разумеющимся, что могут быть различия в выводе. - person imjoevasquez; 05.10.2008

Для чисто статических веб-страниц (.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? По наследственным причинам.

person yogman    schedule 09.10.2008

Ответ зависит от целей вашего проекта. Если это будет крупномасштабный сайт, где время безотказной работы имеет решающее значение, а нагрузка высока, используйте lighttpd; он масштабируется удивительно. Единственным недостатком является то, что вы должны быть более активными на начальном этапе. Большинство хостов не поддерживают это, и действительно полезно знать, что вы делаете с lighttpd.

Если это сайт для вашей матери, который будет получать несколько тысяч посетителей в месяц, apache будет работать лучше. Ей будет намного легче переехать к новому хозяину, и легче будет найти поддержку.

person Eric Lamb    schedule 06.10.2008

Используйте стандартный веб-сервер. Apache используется на 50% веб-сайтов (Netcraft) , поэтому, если вы используете Apache, веб-браузеры, поисковые роботы, прокси-серверы и т. д. практически гарантированно будут работать с вашим сайтом (во всяком случае, с его веб-сервером).

Lighthttpd используется на 1,5% веб-сайтов (Netcraft) , поэтому вероятность того, что люди будут тестировать свои приложения с его помощью, гораздо меньше.

Любая разница в производительности, скорее всего, не будет иметь значения в производстве; сервер Apache, вероятно, может обслуживать статические запросы с гораздо большей пропускной способностью, чем у вас, на самом медленном оборудовании, которое вы, вероятно, развернете в производстве.

person MarkR    schedule 05.10.2008
comment
Да, но эти 1,5% веб-сайтов включают YouTube, поэтому я думаю, что Lighttpd достаточно надежен. - person Justin Voss; 20.10.2008
comment
Это совершенно бессмысленное сравнение. Все веб-серверы обслуживают страницы одинаково, и их внутренняя работа прозрачна для конечного пользователя. Никаких настроек сервер-браузер не требуется, когда сервер соответствует стандартам (и то, и другое). - person WhyNotHugo; 16.06.2009