Является ли Varnish с nginx лучше, чем просто использование nginx? [закрыто]

22

Я вижу много разговоров об использовании nginx с Varnish, и я не понимаю, почему. Разве nginx не достаточно?

Nginx имеет SSI, имеет кеш обратного прокси, легок, имеет SSL, может работать с cgi, fpm и т. Д.

Лак имеет то же самое, но не ssl и не поддерживает cgi.

Богдан Космин
источник
«Лучше» действительно субъективно. Это зависит от ваших вариантов использования ...
voretaq7
7
Иногда простые вопросы делают работу лучше, чем сложные. Я очень обеспокоен подобными действиями людей, которые закрыли этот вопрос, полагая, что «оригинальный формат вопросов и ответов» бесполезен. Я ищу эту тему, и мне было очень интересно увидеть результаты этой дискуссии.
Роджер
У лака есть мощная конфигурация vcl, чистка, обратный прокси-кеш, ESI nginx может работать с FCGI, обратный прокси-кеш, ssi, без очистки (возможно, есть модуль), производительность они почти одинаковы для статических файлов, кеширование ... если у вас есть вопросы, которые я могу помочь
Богдан Космин

Ответы:

14

Я обнаружил, что лак на 5% быстрее для небольших статических файлов, чем nginx - лак перед сервером apache или лак перед сервером веб-приложений был бы большим преимуществом; но перед nginx выгода весьма незначительна (особенно с учетом накладных расходов и дополнительной сложности)

Шиш
источник
Можете ли вы предоставить некоторые результаты испытаний, чтобы поддержать это? Что делать, если я уже использую nginx + opcache. Есть ли польза от использования лака?
Серьезное
23

Во-первых, чтобы уточнить: Nginx - это веб-сервер со всеми необходимыми функциями и сложностями. Он также имеет возможность кэширования, но это не является его основной целью при разработке.

Лак не является веб-сервером. Он не может выполнять эту роль (во всяком случае, без действительно злого VCL). Его роль заключается в кэшировании контента, предоставленного другим сервером. При необходимости он может изменить запрос или ответ.

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

Например, мы используем Apache для запуска нескольких относительно сложных веб-сайтов PHP из кластера веб-серверов. Когда мы начали испытывать проблемы с пропускной способностью, мы разместили пару серверов Varnish перед кластером Apache. Хосты Varnish теперь обрабатывают 85% всех входящих запросов, не беспокоясь о серверной части Apache.

Insyte
источник
Итак, Varnish кэширует динамический контент, сгенерированный PHP? Или просто другие вещи?
Аликс Аксель
Лак кеширует все, что вы говорите, для кеширования. Он может кэшировать только вывод PHP, только статические файлы, оба или ни того, ни другого. Это очень мощный инструмент.
Insyte
Я спрашивал о вашем конкретном примере. Меня сбивает с толку, как можно кэшировать динамический контент, не портя динамическое приложение (PHP-сессии для начинающих). Кэширование статического контента мне кажется немного излишним.
Аликс Аксель
3
Это зависит от динамического контента. Скажем, например, что страница - это пост в блоге с комментариями. Генерация цепочки комментариев может быть очень дорогой, но вполне приемлемо кэшировать ее в течение 5 минут. С другой стороны, кэширование динамического содержимого, возвращаемого приложением веб-почты, было бы явно проблематичным. Вы даже можете создать смешанный случай: кэшировать полный вывод приложения электронной коммерции, но приказать лаку перезвонить на сервер, чтобы заполнить индикатор корзины покупок.
Insyte