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

Альтернативный обратный прокси-сервер, поддерживающий HTTP 1.1, SSL и keep-alive?

В настоящее время мы используем nginx, но нам нужно прокси-сервер для haproxy с использованием HTTP 1.1, который не поддерживает модуль прокси nginx.

Есть ли надежная, управляемая событиями альтернатива nginx, которая поддерживает HTTP 1.1, SSL и проверку активности на стороне клиента?

Благодаря нестандартной реализации SSL от Microsoft (есть Google для «Microsoft SSL close-notify») Keep-alive и SSL не являются удачным сочетанием при использовании браузера MSIE. Но есть некоторые указания что MS может стать лучше в более поздних версиях.

В случае mod_ssl вы можете настроить различное поведение на основе пользовательского агента. Это необходимо сделать в том месте, где прерывается SSL - поскольку ему необходимо декодировать SSL, чтобы найти пользовательский агент, - а затем решить, разрешать ли сохранение активности. Поскольку stunnel ничего не знает о HTTP, вы не можете разрешить это на прокси.

Таким образом, вы можете попробовать просто зайти в stunnel (но он не будет кэшировать) и надеяться на лучшее (keep-alives настроены на веб-сервере).

Без дополнительных исследований для меня не имеет большого смысла включать поддержку активности с использованием прокси без кеширования и запускать серверы за ha-proxy - все, что последний будет делать, это базовая балансировка нагрузки - вы Подрываем отказоустойчивость.

Хотя в HTTP / 1.1 советуют ограничить количество подключений на имя сервера до 2, большинство разработчиков браузеров упираются в тот факт, что это никак не ограничивает нагрузку на серверы - единственный эффект заключается в замедлении работы клиента на принуждение к последовательным запросам. Так что теперь меньше причин использовать keep-alive, чем раньше.

Поэтому, если вам нужен выборочный контроль над keep-alive, я думаю, что единственным вариантом будет apache + mod_ssl + mod_proxy.

Можешь попробовать лак или, может быть фунт.

Вам действительно нужен http / 1.1 на стороне сервера или вы хотите сохранить активность? 1.1 не приносит многого, в основном только фрагментированное кодирование и "expect: 100-continue". Кодирование по частям удобно, когда сервер выполняет сжатие, но это не всегда так. Теперь, если вы думаете, что вам нужен keep-alive, просто подумайте о задержке в сети между вашим nginx и haproxy. Если оба находятся в одной локальной сети, вам вообще не нужно поддерживать активность, так как стоимость установления соединения чрезвычайно мала. Многие люди связывают nginx и haproxy вместе без каких-либо проблем, поэтому я думаю, что вы действительно могли бы сохранить свой nginx.

В качестве альтернативы вы можете использовать stunnel перед haproxy для обработки только SSL. Тогда вы получите поддержку активности на стороне клиента и HTTP / 1.1 прямо из haproxy.