Програмне забезпечення кешування
Squid є широко використовуваною системою кеширування з відкритим вихідним кодом, яка працює на великій кількості платформ, включаючи Unix, Solaris, Linux, FreeBSD, NetBSD і OS/2. Іншими популярними системами, що кешують, є NetApp [NetaJ, Inktomi [Ink] і Novell Bordermanager [Nov]. Крім HTTP, Squid здатний працювати з іншими протоколами (включаючи FTP, SSL, Gopher і WAIS). Він є кешем, що настроюється: Можна визначити, але яким правилам повинен оброблятися кешована відповідь (наприклад, тип змісту, тривалість кешування і т.д.). Для більш повного уявлення про Squid можна ознайомитися з посібником користувача Squid [Pea97].
Як і для будь-якого іншого проксі-сервера, для Squid необхідне налаштування на стороні клієнта. Браузери повинні бути налаштовані на використання ірокси-серверу для будь-якого протоколу, який підтримується Squid (як це обговорювалося в розділі 2, розділ 2.4.2). Наприклад, номер порту для HTTP встановлюється 3128, оскільки саме його Squid використовує для взаємодії з Web-клієнтами за замовчуванням.
Squid може спілкуватися з іншими кешами на даному рівні ієрархії протоколу ICP. Взаємодія з іншими кешами здійснюється за протоколом UDP через порт 3130 за умовчанням, хоча взаємодії може використовуватися і HTTP.
Ієрархічні відносини між кешами визначаються з допомогою конфігураційних файлів, ієрархія то, можливо локальної, регіональної, національної і навіть міжнародної. Умовне кешування можна настроїти через межі доменів. Наприклад, один Squid може використовуватися для кешування низки національних доменів, таких як .fr і .au. Для кешування певного сайга, проксі-сервери, розташовані поблизу нього,мають бути зареєстровані у центральній базі даних.
Squid контактує з набором кешів на даному рівні ієрархії, використовуючи UDP і припускаючи, що кеш, який першим повідомляє наявність ресурсу, так само швидко зможе видати і відповідь. Іншими словами, Squid збирає інформацію щодо завантаження мережі, засновану на часі відповіді. Відповідь, але отриманий від кешу на тому ж рівні ієрархії не повинен кешуватися на запитує кеші. Натомість запитуючий кеш може нросто дозволити кешу на тому ж рівні ієрархії служити кешем для цього об'єкта, якщо кеш знаходиться в тій же високошвидкісній мережі з малим тимчасовим очікуванням. Якщо кешованої копії запитуваного ресурсу немає ні на поточному рівні ієрархії, в батьківському кеші, то Sqid направляє запит вихідному серверу. Відповідь сервера може бути записана в кеш перед надсиланням його клієнту.
acl dumb dstdomain notbright.com nitwit.com http_access deny dumb
Його буде запобігати запитам будь-якого з цих двох доменів від клієнтів, що знаходяться позаду Squid.
acl safe dstdomain safe1.com safe2.com http_access deny !safe
дозволяє зробити доступними лише сервери safel.com та safe2.com. Проксі-сервер, що кеширує, видаватиме відмову при запиті будь-якого іншого домену.
Подібно до багатьох інших проксі-серверів, що кешують, Squid при записі ресурсу в кеш використовує модель закінчення терміну придатності. Останні версії Squid використовують різні моделі, що базуються на частотах оновлення ресурсів. Замість очікування закінчення терміну придатності ресурсу актуалиюсгь об'єкта перевіряється лише за необхідності. Закінчення терміну придатності ресурсу перевіряється під час запиту, якщо об'єкт застаріває, він оновлюється з вихідного сервера. За потреби в результаті оновлення записується повія версіяресурсу. Squid підтримує заголовки Cache-Control та Expires, які можуть бути присутніми у заголовках запитів та відповідей. Перевага віддається заголовку запиту клієнта (наприклад, Cache-Control: max-age), а не заголовку Expires відповіді сервера. Можна налаштувати Squid так, що він змінюватиме термін придатності, зазначений у заголовку Expires відповіді.
Останні версії Squid також підтримують дайджести кешів. Нова версія здатна використовувати особливості НТТР/1.1, включаючи довготривалі з'єднання та автентифікацію ірокси-сервера. Squid підтримує багатопоточне виконання, якщо його підтримує операційна система. У разі перехоплюючих проксі-серверів, пакети, отримані на один порт, перенаправляються на інший, а Squid діє як одержувач перенаправлених пакетів. Squid також підтримує протокол WCCP (обговорений у розділі 11.9.4).
Джерело: Web-протоколи. Теорія та практика. - M.: ЗАТ «Видавництво БІНОМ», 2002 р. - 592 c.: Іл.