В некоторых настройках я видел, как кто-то поместил haproxy / varinish за nginx и перенаправил запросы на бэкэнд (например, Passenger)
например
Nginx <---> HaProxy / Varinish <----> Пассажир / Apache
Никогда не понимаю, почему бы не поставить HaProxy / Varinish напрямую на край, какие плюсы?
Возможно, они сделали это для обработки SSL-трафика. Это кажется маловероятным, и были бы более эффективные методы, такие как stunnel.
Другой вариант - обрабатывать статический контент перед переходом к динамическому бэкэнду.
nGinx управляется событиями, а Varnish использует потоки, поэтому первый должен лучше масштабироваться (теоретически). Вы можете использовать Varnish для обработки более сложных случаев кеширования, а nGinx обрабатывать простые вещи.