Назад | Перейти на главную страницу

Должен ли я включать KeepAlive на серверной части Apache с Varnish в качестве интерфейса?

Я использую Varnish в качестве внешнего интерфейса с Apache 2 в качестве внутреннего интерфейса на моем веб-сервере. Какие плюсы и минусы у Apache KeepAlive в этой обстановке?

Сейчас Apache и Varnish работают на одном сервере, но в будущем я мог бы разместить их на разных серверах.

Pro:

  • Рукопожатие TCP между Varnish и Apache не требуется для каждого отдельного запроса, что снижает накладные расходы.

Против:

  • Если ваша служба Varnish хотела DoS-атаку на вашу службу Apache с исчерпанием соединения, ей было бы проще сделать это ..?

Не могли бы вы пояснить, что вызывает этот вопрос? Сохранение активности HTTP-соединения подразумевается в HTTP 1.1 и включено по умолчанию на всех основных веб-серверах по уважительной причине; это улучшение производительности (хотя оно будет очень маленьким, без задержки между сервисами), с парой оговорок, связанных с отказом в обслуживании, которые не применимы, когда единственным клиентом Apache является Varnish.

Я бы даже рекомендовал увеличить Apache KeepAliveTimeout выше, чем значение по умолчанию, равное 5 секундам, чтобы Varnish продолжал повторно использовать тот же пул соединений.