Является ли 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.


Итак, Varnish кэширует динамический контент, сгенерированный PHP? Или просто другие вещи?
— Аликс Аксель

Лак кеширует все, что вы говорите, для кеширования. Он может кэшировать только вывод PHP, только статические файлы, оба или ни того, ни другого. Это очень мощный инструмент.
— Insyte

Я спрашивал о вашем конкретном примере. Меня сбивает с толку, как можно кэшировать динамический контент, не портя динамическое приложение (PHP-сессии для начинающих). Кэширование статического контента мне кажется немного излишним.
— Аликс Аксель

3
Это зависит от динамического контента. Скажем, например, что страница - это пост в блоге с комментариями. Генерация цепочки комментариев может быть очень дорогой, но вполне приемлемо кэшировать ее в течение 5 минут. С другой стороны, кэширование динамического содержимого, возвращаемого приложением веб-почты, было бы явно проблематичным. Вы даже можете создать смешанный случай: кэшировать полный вывод приложения электронной коммерции, но приказать лаку перезвонить на сервер, чтобы заполнить индикатор корзины покупок.
— Insyte
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.