memc_send_timeout
Устанавливает таймаут отправки команд на сервер memcached в NGINX.
Описание
Директива memc_send_timeout задаёт длительность ожидания NGINX при отправке команды на сервер memcached. Этот таймаут имеет ключевое значение для определения того, как долго NGINX будет пытаться отправить запрос, если сервер memcached не отвечает или отвечает медленно. Настроив этот таймаут, администраторы серверов могут гарантировать, что их приложение не зависнет бесконечно при отказе или перегрузке backend-сервера memcached.
Данная директива принимает один аргумент, определяющий период ожидания. Если указанный интервал истечёт без ответа от сервера memcached, NGINX прекратит попытку установки соединения для этой команды. Продолжительность таймаута можно задавать в стандартном формате времени, например секунды (s), минуты (m) и т.д. Установка подходящего таймаута поможет поддерживать производительность приложения, особенно при нагрузке, когда memcached может испытывать задержки.
Контекст, в котором можно использовать memc_send_timeout, включает http, server и location, что позволяет гибко применять таймауты по всей конфигурации NGINX. По умолчанию, если значение явно не задано, NGINX может не накладывать таймаут на отправку команд. Поэтому рекомендуется явно установить это значение в соответствии с требованиями вашего приложения и окружения сервера.
Пример конфига
location /cache {
set $memc_key $arg_key;
memc_pass 127.0.0.1:11211;
memc_send_timeout 30s;
}Установка очень короткого timeout может привести к преждевременному завершению запросов, вызывая непредвиденное поведение в приложении.
Если задан memc_send_timeout, но ответ сервера занимает больше времени, чем ожидалось, клиенты могут столкнуться с замедленными ответами или ошибками.
Убедитесь, что значение, заданное для memc_send_timeout, имеет корректный формат времени, поскольку неправильные форматы могут привести к ошибкам в конфигурации.