У меня есть установка, которая содержит следующие устройства:
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 для распознавания этого типа ошибки?