Назад | Перейти на главную страницу

При многократном запросе к Squid отправьте один запрос бэкэнду и поставьте в очередь другие запросы при отсутствии

Я хотел бы защитить внутренний сервер, отправив Squid один запрос на сервер, когда есть промах в кеше для ресурса. Во время выборки другие запросы следует приостановить до тех пор, пока не вернутся отдельные запросы.

Заголовок stale-while-revalidate почти делает то, что хочу, однако, когда оба раза max-age и stale-while-revalidate прошло, нет устаревшего ответа, и на серверную часть будет отправлено несколько запросов.

Директива collapsed_forwarding кажется, именно то, что я ищу. Но я не могу заставить это работать, как ожидалось, все еще вижу несколько запросов к бэкэнду в течение периода максимального возраста. Я тестирую это с помощью SoapUI 5.2.1 Simple Load Test с 40 потоками.

Моя текущая конфигурация для Squid (3.5.19) - это конфигурация по умолчанию со следующими изменениями:

#Queue incomming requests when a request is send to the backend. I.E. collapse request into a single backend request.
collapsed_forwarding on

# Squid normally listens to port 3128
http_port 3128 accel no-vhost defaultsite=localhost ignore-cc

#Backend requires basic auth
cache_peer 127.0.0.1 parent 53142 0 no-query originserver name=myAccel login=username:password

#Allow caching of files that have a ttl of 1 seconds
minimum_expiry_time 1 seconds

acl our_sites dstdomain localhost
http_access allow our_sites
cache_peer_access myAccel allow our_sites
cache_peer_access myAccel deny all

Запросить URI: /rest/information/bridge/Test?isrs=AB12345

Заголовок ответа Cache-Control no-transform, max-age=2

На данный момент кажется невозможным достичь желаемого эффекта collapsed_rowarding для обратного проксирования. Я задал этот вопрос в списке рассылки squid, в котором был ответ (после отправки некоторого журнала):

Свернутая пересылка пока не применяется к запросам на повторную проверку кеша. Factory работает над реализацией свернутых повторных проверок (в некоторых средах), но я не могу обещать конкретную дату доставки или то, что ваша конкретная среда будет покрыта.

Для получения более подробной информации проверьте список рассылки: http://lists.squid-cache.org/pipermail/squid-users/2016-June/011021.html