этот вопрос, возможно, задавался здесь, но я не смог найти ни одного, который бы действительно соответствовал моему вопросу. Слышал, что производительность nginx весьма впечатляет, но у Apache есть больше документации, сообщества (читай: эксперт), чтобы получить помощь
Теперь то, что я хочу знать, как сравниваются оба веб-сервера с точки зрения производительности, простоты настройки, уровня настройки и т. Д. КАК ОБРАТНЫЙ ПРОКСИ-сервер в среде vps ??
Я все еще взвешиваю два из них для веб-приложения ruby (не ROR), обслуживаемого thin (одним из веб-серверов ruby).
Конкретный ответ будет высоко ценится. Общий ответ, не касающийся рубиновой части, в порядке. Я все еще нуб в администрировании веб-сервера.
Ответы:
Я хотел поместить это в комментарии, так как я согласен с наиболее важным моментом ответа webdestroyas, но он стал слишком длинным.
Вы находитесь в среде VPS, это означает, что вам, скорее всего, будет недостаточно оперативной памяти. Только по этой причине вам понадобится Nginx, так как его объем памяти меньше, чем у Apache.
Также я не согласен с некоторыми из упомянутых аргументов.
Простота настройки:
Nginx не сложнее, чем Apache. Это другое. Если вы привыкли к Apache, то изменить всегда будет сложнее, это не значит, что сам стиль конфигурации сложнее. Я полностью перешел с Apache на Nginx более года назад, и сегодня мне будет сложно настроить сервер Apache, тогда как Nginx будет чрезвычайно прост в настройке.
Для Ruby:
Nginx имеет Passenger, однако я обычно вижу его описанным как низший метод подключения к Ruby. Я не программист на Ruby, поэтому я не могу это проверить, но я часто вижу, что Unicorn и Thin упоминаются как лучшие альтернативы.
В заключение:
Nginx был создан, чтобы быть обратным прокси. Изначально все, что он делал, - это обслуживал статические файлы и обратный прокси-сервер к внутреннему серверу через HTTP / 1.0. С тех пор были добавлены fastcgi, балансировка нагрузки и различные другие функции, но первоначальной целью проекта было предоставление статических файлов и обратного прокси-сервера. И это делает это действительно хорошо.
Apache, напротив, является веб-сервером общего назначения. Я не сомневаюсь, что он может полностью изменить прокси, но он не был спроектирован так, чтобы иметь минимальный объем памяти, и в результате он требует больше ресурсов, чем Nginx, что означает, что мой начальный аргумент среды VPS вступает в игру.
источник
Производительность:
NGinX. Этот сервер, как известно, является одним из самых эффективных веб-серверов и используется многими различными компаниями (Notable, MediaTemple)
Простота настройки:
Apache. Конфигурация Apache действительно проста и действительно мощна. Nginx мощен, но его очень сложно понять, так как он больше похож на язык программирования, чем на файл конфигурации.
Уровень настройки:
Apache. Для Apache написано множество модов и других плагинов. Хотя в Nginx все еще есть плагины для него, я думаю, что у Apache гораздо больше, чем у Nginx.
Для Ruby:
я знаю, что Nginx можно использовать как мощный балансировщик нагрузки с Mongrel / Webrick. Однако у Apache есть Phusion / Passenger, что делает интеграцию более приятной.
Победитель обратного прокси:
NGinX
источник
Nginx основан на событиях, а apache - на процессах. Под высокой нагрузкой это имеет значение в мире ... Apache должен разветвлять или запускать новый поток для каждого соединения, а nginx - нет. Эта разница проявляется в основном в использовании памяти, но также во времени отклика пользователя и других показателях производительности. Nginx может обрабатывать десятки тысяч одновременных соединений поддержки активности HTTP на современном оборудовании. Apache будет использовать 1-2 МБ стека для каждого соединения, поэтому, выполняя вычисления, вы видите, что вы можете обрабатывать только несколько сотен или, может быть, тысячу соединений одновременно, не начав менять местами.
Мы используем nginx перед Apache и IIS в нашей среде в качестве прокси-сервера для балансировки нагрузки и кэширования, и не могли быть счастливее. Вместо пары очень дорогих арендуемых устройств F5 мы используем два небольших nginx-бокса, и наши сайты работают намного быстрее как по ощущениям, так и по измеренному времени отклика.
источник
Я был в той же дилемме, что и ты, две недели назад.
Чтобы дать Вам действительно краткий ответ: Из моих исследований nginx действительно быстр и дружествен к ресурсам, но было решено только отменить прокси-статические файлы. Остальное зависит от решений, которые Вы должны настроить или составить сценарий.
AFAIK nginx не имеет файлов htaccess, поэтому вам нужно найти способ обойти это, если зависит от этой функции.
AFAIK все необходимое работает, и я видел учебники.
Я пойду с nginx с моими настройками тестирования и профилирования. У меня есть типичное приложение LAMP.
Я читал, что есть люди, которые обращаются через прокси и обслуживают статические файлы из nginx и передают все остальное, как PHP, работающему экземпляру Apache. Они требуют хорошего компромисса. У меня нет данных об этом, но вы можете знать.
источник
У меня были серьезные проблемы с Apache mod_proxy на различных платформах в разных средах за последние пару лет. Время от времени он просто перестает работать, и, похоже, единственное лекарство - перезапуск сервера Apache.
Лично я бы не спрашивал «nginx vs Apache», а «nginx vs lighttpd» - и это гораздо более сложный вызов!
источник