Две строки cache_peer не означают «сначала пройди через первый прокси, затем через второй». Они определяют peer, которые Squid может выбирать. Запросы с круговым распределением могут чередоваться между родителями, никогда не проходя через оба.

Последовательный маршрут распределён между экземплярами:

client → A → B → C → origin
  • A выбирает B в качестве следующего перехода.
  • B выбирает C.
  • C открывает соединение с источником.

Каждый получатель должен авторизовать своего непосредственного нижестоящего peer. Каждому экземпляру также нужна совместимая политика прямого доступа, если пропуск его следующего перехода запрещён.

В версиях, которые их поддерживают, cache_peer определяет peer, cache_peer_access ограничивает выбор, а never_direct запрещает прямую пересылку для выбранного трафика. Одно лишь определение peer не устанавливает ни одну из двух других политик.

Проверяйте решение на каждом переходе. Журнал A, выбирающего B, не может доказать, что B выбрал C. Попадание в локальный кэш может полностью избежать нового соединения вверх по цепочке, поэтому отсутствие родительского трафика для одного запроса не является достаточным доказательством разорванной цепочки.

Похожие статьи