Как настроить сервер squid для поддержки ошибки 503 icap (служба перегружена)
У меня есть настройка, которая содержит следующие устройства:
1. file server
2. squid proxy server
3. clients
4. icap server.
Клиентские запросы на загрузку файлов с файлового сервера будут проходить через прокси-сервер, и он может решить отправить запрошенный файл на сервер icap для анализа, прежде чем пересылать их обратно клиенту.
Однако скорость сканирования сервера icap меньше пропускной способности сети, поэтому в случае интенсивного трафика она может быть перегружена.
По этой причине icap RFC 3507 определил ответ 503, чтобы уведомить squid о повторной попытке сканирования файла, поскольку он временно перегружен. Вот точное определение:
503 - Сервис перегружен. Сервер ICAP превысил максимальный предел соединения, связанный с этой услугой; клиент ICAP не должен превышать этот лимит в будущем.
Моя реализация icap использует python socketServer
основанный на ThreadingMixIn
класс для обработки каждого входящего соединения. Я хотел бы предотвратить новое соединение в случае, если количество активных потоков превысило предопределенный maxval.
Однако, глядя на логи squid, кажется, что он не знает, как обработать этот запрос, и не пытается повторить сканирование (ICAP_ERR_OTHER/503
).
Есть ли способ настроить сервер Squid для распознавания этого типа ошибки?