Основные новшества Squid 3.2:
- Поддержка одновременного запуска нескольких рабочих процессов Squid, что позволяет в полной мере задействовать ресурсы многоядерных систем. По умолчанию нагрузка при обработке запросов распределяется между всеми рабочими процессами, т.е. работа такой системы выглядит как единое целое, в том числе ведётся единый лог и используется общий кэш. Дополнительно предусмотрены средства для тонкой настройки поведения каждого процесса в отдельности. Управление производится через новую директиву "workers" в squid.conf;
- Добавление средств для ограничения пропускной способности для трафика между прокси и клиентом. Ограничения могут задаваться для индивидуальных пользователей на основании IP-адресов и подсетей. Конфигурация пулов ограничений трафика на стороне клиентов выполняется по аналогиями с ранее доступными пулами на стороне сервера. Для настройки добавлены директивы client_delay_pools, client_delay_initial_bucket_level, client_delay_parameters и client_delay_access;
- Новый хелпер Multiplexer, позволяющий мультиплексировать запросы к медленным хелперам. Multiplexer выступает в роли промежуточного звена между Squid и хелперами, и позволяет организовать обращение к хелперам в параллельном режиме, минимизировав таким образом задержки из-за ожидания своей очереди при последовательной отправке запросов к медленным хелперам;
- Поддержка запуска хелперов по необходимости. Если ранее число запускаемых хелперов жёстко определялось в конфигурации, теперь возможен адаптивный запуск только нужного числа хелперов, в зависимости от нагрузки. В конфигурации теперь можно задать число изначально запускаемых хелперов, максимальное число хелперов и таймаут неактивности, после которого экземпляр хелпера будет завершён;
- Произведено переименование большинства хелперов с целью унификации имён хелперов, более ясного определения выполняемых задач и явного различия поставляемых в составе Squid и внешних хелперов. Например, ncsa_auth переименован в basic_ncsa_auth, squid_radius_auth в basic_radius_auth, digest_pw_auth в digest_file_auth, squid_ldap_group в ext_ldap_group_acl, ntlm_auth в ntlm_smb_lm_auth и т.п.
- Для Solaris 10 обеспечена поддержка и автоматическое определение многопоточной библиотеки pthreads. При использовании pthreads в Solaris 10 наблюдается заметное ускорение работы с кэшем AUFS;
- Поддержка расширений протокола HTTP - Surrogate/1.0, позволяющих сайтам через установку HTTP-заголовков Surrogate-Capabilities, Security Considerations и Surrogate-Control явно управлять кэшированием страниц при использовании Squid в роли reverse-прокси;
- Обновление инфраструктуры ведения логов, добавление возможности использования дополнительных модулей для хранения лога. Модули позволяют обеспечить хранение логов как в локальной ФС, так и на внешних лог-серверах. Кроме того, модули можно использовать для подключения своих обработчиков, разбирающих логи в режиме реального времени;
- Улучшенная поддержка eCAP. В состав включена библиотека libecap 0.2.0 в которой расширены возможности по обработке тела ответа и ведения логов;
- Расширение способов доступа к Squid Cache Manager. В дополнение к схеме cache_object:// запросы теперь можно отправлять из обычного браузера с использованием схем http:// и https:// в сочетании с заданием пути /squid-internal-mgr/, без необходимости использования промежуточного скрипта cachemgr.cgi;
- Добавлена защита от атак по обходу ограничений same-origin, реализуемых при работе в режиме прозрачного прокси или NAT-перехвата (squid при запросе подменяет оригинальный IP, что может быть использовано для загрузки внешнего flash-кода или java-апплетов в контексте чужого домена). Для защиты реализованы дополнительные средства проверки параметров заголовка Host, активируемые через директиву host_verify_strict, которая включает режим строгой проверки соответствия имени хоста, указанного через Host, и доменного имени;
- Устранены ограничения на длину пароля в реализации алгоритма хэширования DES (ранее учитывались только первые 8 символов), используемого в NCSA-хелпере аутентификации.