У меня есть 3 узла в кластере веб-серверов. На каждом узле работает Squid на интерфейсе LAN и Apache на интерфейсе localhost. Squid кеширует правильно для каждого сервера индивидуально, но я не верю, что правильно настроил одноранговые узлы кеша.
cache_peer 127.0.0.1 parent 80 0 no-query originserver name=Server1
cache_peer Server2 sibling 80 3130 proxy-only
cache_peer Server3 sibling 80 3130 proxy-only
cache_peer_access Server1 allow MYDOMAIN
Каждый сервер имеет аналогичные настройки cache_peer, за исключением того, что каждый является собственным родительским и использует два других сервера как братьев и сестер. Моя цель - максимально повысить процент попаданий, но я не знаю, правильно ли я понимаю логику одноранговых узлов кеша.
Я хочу, чтобы Squid попытался найти http://www.example.com/mypage/ в его локальном кеше, и если он не запрашивает братьев и сестер, пока не найдет его. Если он не может его найти, ТОГДА он должен ударить Apache.
Я правильно это делаю?
Squid пытается запросить каждого однорангового узла через ICP, измеряет время ответа, а затем решает, какой родитель использовать. Есть общие проблемы:
Ответ есть в ваших журналах доступа. так что попробуйте это и дайте нам пример: tail -f /var/log/squid/access.log
Итак, в этом примере у вас есть squid, который слушает ваш внешний IP-адрес на порту 80, а apache привязан к localhost: 80 на каждом сервере?
Одна вещь, которую нужно проверить, - убедиться, что у вас есть icp_port 3130
если вы используете squid 3.0 или выше; в версиях 2.x 3130 он был по умолчанию, но в 3.x теперь 0 (отключен).