Я вижу много разговоров об использовании nginx с Varnish и не понимаю почему. Разве nginx недостаточно?
Nginx имеет SSI, имеет кеш обратного прокси, легкий, имеет SSL, может работать с cgi, fpm и т. Д.
В Varnish есть то же самое, но без поддержки ssl и cgi.
Во-первых, поясню: Nginx - это веб-сервер со всеми вытекающими из этого функциями и сложностью. Он также имеет возможность кэширования, но это не основная цель его разработки.
Лак не веб-сервер. Он не может выполнять эту роль (во всяком случае, без действительно злого VCL). Его роль - кэшировать контент, предоставленный другим сервером. При необходимости он может изменить запрос или ответ.
Если nginx может обрабатывать ваш трафик, этого достаточно. Если nginx не успевает за ним, то один из способов увеличить его емкость - разместить перед ним кеш и обработать кеш-память как можно больше запросов.
В качестве примера мы используем Apache для запуска ряда относительно сложных веб-сайтов PHP из кластера веб-серверов. Когда мы начали испытывать проблемы с емкостью, мы разместили пару серверов Varnish перед кластером Apache. Хосты Varnish теперь обрабатывают 85% всех входящих запросов, не беспокоя бэкэнд Apache.
Я обнаружил, что varnish на ~ 5% быстрее для небольших статических файлов, чем nginx - лак перед apache или лак перед сервером веб-приложений был бы большим преимуществом; но перед nginx выгода довольно незначительна (особенно с учетом накладных расходов и дополнительной сложности)