Инфраструктура нашего веб-сайта использует HAProxy для балансировки нагрузки, кластер Squid для кэширования, а данные приложений находятся в кластере IIS.
Мы загружаем балансировку HAProxy с помощью URI, чтобы оптимизировать скорость попадания Squid, но мы знаем, что Squid хранит разные копии каждой страницы на основе заголовка Accept-Encoding, переданного ему браузером, и поэтому IE (gzip, deflate) будет иметь копия кешированной страницы, отличная от Firefox (gzip, deflate) или Chrome (gzip, deflate, sdch).
Мы хотим нормализовать заголовки Accept-Encoding, и я думаю, что лучше всего это сделать в HAProxy. Я был бы признателен, если бы кто-нибудь мог предложить некоторые идеи о том, как добиться этого, не нарушая поддержки клиентов без поддержки gzip или deflate.
Что ж, может быть, вы просто хотите заменить «gzip, deflate, что-нибудь» на «gzip, deflate»?
Сделать это можно так:
reqirep ^Accept-Encoding:\ gzip,[\ ]*deflate,.* Accept-Encoding:\ gzip,\ deflate
Кроме того, если вы используете большую ферму кальмаров, вас может заинтересовать согласованное хеширование haproxy 1.4. Это позволяет избежать повторной балансировки всех при добавлении или удалении сервера, поэтому переходы между серверами будут более плавными.